ffmpeg: Почему отключается трансляция из нескольких видео?
Здраствуйте, у нас есть 24/7 трансляция, которая крутит по кругу 5-6 видео, которые по 8 часов Для этой задачи мы взяли ffmpeg, написали простенький bash скрипт
#!/usr/bin/bash
#Standard Options
RESOLUTION="1280x720" #Video resolution
FPS="60"
BITRATE="4500k"
PRESET_LIBX264="veryfast" #Speed libx256
server='rtmp://server.example.com'
vidFile='./videos.txt'
if [[ "$USER" != "root" ]]; then echo -e "\033[31mError user\033[0m"; exit 0; fi
rtmp="$server/keyBlablabla"
if [[ "$1" == "start" ]]; then
screen -S stream -d -m ffmpeg -re -vsync 1 -f concat -safe 0 -i $vidFile -c:v libx264 -preset $PRESET_LIBX264 -b:v $BITRATE -minrate $BITRATE -maxrate $BITRATE -bufsize $BITRATE -s $RESOLUTION -r $FPS -pix_fmt yuv420p -f flv -c copy $rtmp
echo -e "\033[32mСтрим запущен.\033[0m"
exit 0
elif [[ "$1" == "kill" ]]; then
screen -X -S stream kill
echo -e "\033[32mСтрим остановлен\033[0m"
exit 0
elif [[ "$1" == "ls" ]]; then
echo $(screen -ls)
exit 0
fi
Вот собственно ffmpeg команда
ffmpeg -re -vsync 1 -f concat -safe 0 -i ./videos.txt -c:v libx264 -preset veryfast -b:v 4500k -minrate 4500k -maxrate 4500k -bufsize 4500k -s 1280x720 -r 60 -pix_fmt yuv420p -f flv -c copy 'rtmp://server.example.com/keyBlablabla'
Раньше этот код работал, НО, велись некие работы, обновляли ПО и версию ОС У нас Ubuntu 20.04 Версия ffmpeg:
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
И содержимое файла videos.txt:
file '/root/videos/v1.mp4'
file '/root/videos/v2.mp4'
file '/root/videos/v3.mp4'
file '/root/videos/v4.mp4'
НО сейчас, ffmpeg, стал вести себя странно, и после того как видео v1.mp4 заканчивается, он не запускает v2.mp4, а просто падает и выключается.
Для запуска используем команду ./stream.sh start, для выключения ./stream.sh kill, это для удобства использования.
Не подскажете как поправить? Или как это дело можно залогировать, чтоб понять в чём проблема?