ffmpeg припиняє трансляцію через 900 секунд з камери осі до FLV RTMP


1

Аудіо та відео працює 900 секунд, а потім ffmpegзупиняється на:

video:1889kB audio:1825kB global headers:0kB muxing overhead 2.162866%

Я передаю IP-камеру AXIS через ffmpegnginx.

ffmpeg -v verbose -i rtsp://root:pass@192.168.0.106/axis-media/media.amp -itsoffset 00:00:05 -acodec copy -ac 1 -ab 64k -ar 16000 -f flv -r 5 -qscale 1 -b 128kB rtmp://192.168.0.107/myapp/test

Я перевірив багато команд, але ця дала мені найкращі результати.

Вихід консолі:

    ffmpeg -v verbose -i rtsp://root:pass@192.168.0.106/axis-media/media.amp -itsoffset 00:00:05 -acodec copy -ac 1 -ab 64k -ar 16000 -f flv -r 5 -qscale 1 -b 128kB rtmp://192.168.0.107/myapp/test 
ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 30 2013 22:20:06 with gcc 4.7.2
  configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.6-1ubuntu2' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-gnutls --enable-libgsm --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  libavutil    51. 22. 1 / 51. 22. 1
  libavcodec   53. 35. 0 / 53. 35. 0
  libavformat  53. 21. 1 / 53. 21. 1
  libavdevice  53.  2. 0 / 53.  2. 0
  libavfilter   2. 15. 0 /  2. 15. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  52.  0. 0 / 52.  0. 0
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[rtsp @ 0x63fb20] SDP:
v=0
o=- 1376246125522976 1376246125522976 IN IP4 192.168.0.106
s=Media Presentation
e=NONE
b=AS:50064
t=0 0
a=control:*
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:50000
a=framerate:5.0
a=transform:-1,0,0;0,-1,0;0,0,1
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=4D0029; sprop-parameter-sets=Z00AKeKQKD9gLcBAQGkHiRFQ,aO48gA==
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:64
a=control:trackID=2
a=rtpmap:97 mpeg4-generic/16000/1
a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1408; sizeLength=13; indexLength=3; indexDeltaLength=3; profile=1; bitrate=64000;

[rtsp @ 0x63fb20] Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 90000.00 (180000/2)
Input #0, rtsp, from 'rtsp://root:pass@192.168.0.106/axis-media/media.amp':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 0.062063, bitrate: N/A
    Stream #0.0: Video: h264 (Main), yuvj420p, 320x240 [PAR 1:1 DAR 4:3], 90k tbr, 90k tbn, 180k tbc
    Stream #0.1: Audio: aac, 16000 Hz, mono, s16
Incompatible pixel format 'yuvj420p' for codec 'flv', auto-selecting format 'yuv420p'
[buffer @ 0x641aa0] w:320 h:240 pixfmt:yuvj420p
[avsink @ 0x6512a0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x645540] w:320 h:240 fmt:yuvj420p -> w:320 h:240 fmt:yuv420p flags:0x4
Output #0, flv, to 'rtmp://192.168.0.107/myapp/test':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf53.21.1
    Stream #0.0: Video: flv, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 1024 kb/s, 1k tbn, 5 tbc
    Stream #0.1: Audio: aac, 16000 Hz, mono
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press ctrl-c to stop encoding
frame= 1185 fps=  5 q=1.0 Lsize=    3794kB time=236.80 bitrate= 131.2kbits/s    
video:1889kB audio:1825kB global headers:0kB muxing overhead 2.162866%

Вибачте, але я не думаю, що я розумію, у чому ваше питання чи конкретна проблема.
slhck

моя проблема - приглушення накладних витрат із потоком ffmpeg. потокова передача працює 900 секунд, ніж ffmpeg зупиняється з помилкою накладних помилок.
AcsChristoph

Надувальний наліт - це нормально і слід очікувати; яка проблема у вас з цим? Вам доведеться компенсувати накладні витрати, якщо у вас є дуже суворі вимоги пропускної здатності, але в іншому випадку не турбуйтеся про це.
slhck

я тестую із суворими налаштуваннями пропускної здатності у ffmpeg, результати є однаковими
AcsChristoph

Підказка: Ваша ffmpegверсія застаріла і містить багато помилок. Будь ласка, не використовуйте ffmpegнадані в пакетах Ubuntu, а завантажте новішу версію, перейшовши на ffmpeg.org/download.html - або компілюйте її з вихідного коду.
slhck

Відповіді:


1

Якщо ffmpegкодування припиняється, більше немає вводу для розбору, або потік закінчився. Це проблема із самим потоком або, можливо, помилка у вашій ffmpegверсії.

Той, який ви використовуєте, - це стара і (як відомо, зламана версія), надана джерелами пакету Ubuntu. Подумайте про оновлення до останньогоffmpeg та повторіть спробу.


Що стосується приглушення накладних витрат:

Щоразу, коли ви берете потоки відео, аудіо чи підзаголовків і розміщуєте їх у форматі контейнера (наприклад, FLV у вашому випадку), контейнеру потрібні додаткові дані, щоб муксувати (мультиплексувати) ці потоки.

Це, в основному, метадані, які обернуті навколо фактичних даних, і ви не можете позбутися від цих витрат . Кожен контейнер буде вводити задушливі накладні витрати, але зазвичай це буде менше кількох відсотків фактичних даних.

Якщо у вас є дуже жорсткі вимоги щодо того, яка пропускна здатність у вас є, вам слід враховувати можливі накладні витрати при кодуванні потоків відео та аудіо. Наприклад, якщо у вас є відео 1500 кбіт / с і аудіо 128 кбіт / с, вся необхідна пропускна здатність перевищує 1628 кбіт / с (наприклад, 1660 кбіт / с).


дякую за повторення ... У мене Alredy зменшує накладні фактори, я працюю з 128kBit / s для Video (h264) та 64 kBit / s для Audio (aac)
AcsChristoph

ffmpeg нова версія свіжої складеної -> WORKS GREAT =) thx
AcsChristoph
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.