Я использую следующую команду для пересылки видеопотока на другой сервер, но если источник / назначение на мгновение падает, ffmpeg сдается.
ffmpeg \
-i http://source_stream_ip:port \
-reconnect_at_eof 1 \
-reconnect_streamed 1 \
-y \
-shortest \
-c: libx264 \
-crf:v 22 \
-preset:v fast \
-pix_fmt yuv420p \
-x264opts keyint=10:no-scenecut=1 \
-maxrate:v 256k \
-bufsize:v 512k \
-c:a aac \
-ac 2 \
-b:a 96k \
-maxrate:a 96k \
-bufsize:a 192k \
-f flv \
rtmp://destination_stream_ip:port
Я пробовал это как пакетную команду, но это также в конечном итоге сдается.
#!/bin/bash
while :
do
ffmpeg \
-i http://source_stream_ip:port \
-reconnect_at_eof 1 \
-reconnect_streamed 1 \
-y \
-shortest \
-c: libx264 \
-crf:v 22 \
-preset:v fast \
-pix_fmt yuv420p \
-x264opts keyint=10:no-scenecut=1 \
-maxrate:v 256k \
-bufsize:v 512k \
-c:a aac \
-ac 2 \
-b:a 96k \
-maxrate:a 96k \
-bufsize:a 192k \
-f flv \
rtmp://destination_stream_ip:port
done
Может ли кто-нибудь порекомендовать улучшить выполнение этого или даже другого способа сделать это даже без ffmpeg с помощью другого инструмента командной строки? В настоящее время его слишком ненадежно использовать на постоянной основе.