ffmpeg stoppt das Streaming nach 900 Sekunden von Axis Camera zu FLV RTMP

3870
AcsChristoph

Audio und Video funktionieren 900 Sekunden lang und hören dann ffmpegauf mit:

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

Ich streame von einer AXIS IP-Kamera ffmpegüber Nginx.

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 

Ich habe viele Befehle getestet, aber mit diesem Befehl wurden die besten Ergebnisse erzielt.

Konsolenausgabe:

 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% 
0
Es tut mir leid, aber ich glaube nicht, dass ich Ihre Frage oder das konkrete Problem verstehe. slhck vor 10 Jahren 0
Mein Problem ist der Muxing-Overhead mit ffmpeg-Streaming. Das Streaming funktioniert 900 Sekunden lang, bis ffmpeg mit einem Muxing-Overhead-Fehler stoppt. AcsChristoph vor 10 Jahren 0
Muxing-Overhead ist normal und zu erwarten; Was ist das Problem, das du damit hast? Sie müssen den Overhead ausgleichen, wenn Sie sehr hohe Bandbreitenanforderungen haben, sich aber sonst keine Sorgen machen müssen. slhck vor 10 Jahren 0
Wenn ich mit strengen Bandbreiteneinstellungen in ffmpeg testete, sind die Ergebnisse gleich AcsChristoph vor 10 Jahren 0
Hinweis: Ihre `ffmpeg`-Version ist veraltet und enthält viele Fehler. Verwenden Sie nicht das `ffmpeg`, das in den Ubuntu-Paketen enthalten ist, sondern laden Sie eine neuere Version unter http://ffmpeg.org/download.html herunter - oder kompilieren Sie sie aus dem Quellcode. slhck vor 10 Jahren 0

1 Antwort auf die Frage

1
slhck

Wenn ffmpegdie Codierung angehalten wird, gibt es keine weiteren Eingaben für die Analyse oder der Stream ist beendet. Dies ist ein Problem mit dem Stream selbst oder möglicherweise ein Fehler in Ihrer ffmpegVersion.

Die von Ihnen verwendete Version ist eine alte und (bekanntermaßen defekte) Version, die von den Ubuntu-Paketquellen bereitgestellt wird. Erwägen Sie ein Update auf ein aktuellesffmpeg Verzeichnis und versuchen Sie es erneut.


Wie für den Multiplexing-Overhead:

Immer, wenn Sie Video-, Audio- oder Untertitel-Streams aufnehmen und in ein Containerformat (z. B. FLV in Ihrem Fall) einfügen, benötigt der Container einige zusätzliche Daten, um diese Streams zu multiplexen (Multiplex).

Es handelt sich im Wesentlichen um Metadaten, die um die eigentlichen Daten gebunden sind, und Sie können diesen Overhead nicht loswerden . Jeder Container führt einen Multiplexing-Overhead ein, der jedoch in der Regel weniger als einige Prozent der tatsächlichen Daten ausmacht.

Wenn Sie sehr hohe Anforderungen an die verfügbare Bandbreite haben, sollten Sie den möglichen Aufwand für die Kodierung der Video- und Audioströme berücksichtigen. Wenn Sie beispielsweise 1500 kBit / s Video und 128 kBit / s Audio haben, beträgt die gesamte Bandbreite mehr als 1628 kBit / s (z. B. 1660 kBit / s).

Vielen Dank für Ihre Wiederholung ... Ich habe bereits die Overhead-Faktoren reduziert, ich arbeite mit 128 kBit / s für Video (h264) und 64 kBit / s für Audio (aac) AcsChristoph vor 10 Jahren 0
ffmpeg neue Version frisch kompiliert -> WORKS GREAT =) thx AcsChristoph vor 10 Jahren 0