Hi, For a project, I need to secure the continuity of a live stream output. The issue is that ffmpeg pause encoding when any input as no new data. He restart only when the source is reactivated, but the output stream is now broken for the final client here before the cut.
So, simple question : is there a solution to force ffmpeg to continue encoding even if one stream input has no data for a short amount of time (< 5 seconds) ? Black screen, alternate stream, last frame repeated, weird bash pipes... Anything. I can use a buffer, of course. But the general latency increase each time, and I want to keep it under 10 seconds. My only actualy working solution is to have OpenBroadcasterSoftware, a desktop software, reading the stream and encoding it to the front rtmp server. Wich is insane. Gstreamer, VLC, MEncoder... hell, I even tested v4l. All of them also pause when source is down, even if they do overlay/compositing from multi sources. ---- Technical details My source is a mpegts stream via udp, from another ffmpeg instance who convert rtmp to mpegts over udp. When the rtmp source is down, ffmpeg wait the restart (it work). Here, I have a script who launch a "standing by image" to the udp stream. And it switch back to the stream later if RTMP is restarted. The main ffmpeg restart encoding, and everything is good for a new client. But every client here before the cut have now a broken playback. ---- Command lines (I removed a lot of fine tuning, so the second one can fail sometime, just relaunch it.) ffmpeg \ -re -i rtmp://server:1935/live/testlive \ -c copy -bsf:v h264_mp4toannexb -f mpegts udp://127.0.0.1:10000 ffmpeg \ -fflags +genpts -stream_loop -1 \ -r 30 -i udp://127.0.0.1:10000 \ -vcodec libx264 -preset veryfast -crf 22 \ -g 60 -c:a aac -b:a 128k -ar 44100 \ -f flv -rtmp_live live rtmp://192.168.61.108:1935/live/restream ---- Buildonf (also tested with the current git, nothing different, so I stick to the stable version) ffmpeg -buildconf ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --disable-doc --disable-static --enable-shared --enable-ffplay --extra-libs=-ldl --enable-version3 --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxcb --enable-pthreads --enable-gpl --enable-avresample --enable-postproc --enable-nonfree --disable-debug --enable-small --enable-openssl libavutil 55. 34.100 / 55. 34.100 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.100 / 57. 56.100 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libavresample 3. 1. 0 / 3. 1. 0 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --disable-doc --disable-static --enable-shared --enable-ffplay --extra-libs=-ldl --enable-version3 --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxcb --enable-pthreads --enable-gpl --enable-avresample --enable-postproc --enable-nonfree --disable-debug --enable-small --enable-openssl Thank you if you have an answer, i'm losing my mind to solve that specific issue, and it's the last element missing for my project. _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".