ffmpeg在一个输出流失败时退出 - 这可以防止这种情况吗?

时间:2017-11-06 09:50:16

标签: ffmpeg

我负责维护将实时网络摄像头源流式传输到远程中继服务器的设备,同时将该版本的流写入本地磁盘。它通过一个具有两个输出的ffmpeg实例来实现这一点 - 一个到本地磁盘,一个在rtsp到流服务器

我遇到了一个问题,如果流媒体服务器出于任何原因而断开连接,ffmpeg退出。如果现场直播丢失,我并不感到烦恼,但是本地录音丢失也是一个大问题 - 如果无法观看,这对特定的业务流程并不是一个巨大的损害直播,但丢失本地存储的副本是一场灾难

ffmpeg以类似于:

的命令行启动
ffmpeg -thread_queue_size 4096 -async 1 -f v4l2 
  -input_format mjpeg -framerate 30 -video_size 1280x720 
  -i /dev/video0 -thread_queue_size 4096 -async 1 -f alsa 
  -i plughw:CARD=Set,DEV=0 -r 30 -c:a aac -b:a 96k -c:v h264 -b:v 983040 
  -profile:v baseline -preset veryfast -pix_fmt yuv420p 
  -f tee -map 0:v -map 1:a 
    [f=matroska]'/var/recordings/yyyy-mm-dd/backup.mkv'|
    [f=rtsp:rtsp_transport=tcp]rtsp://streamingserver.com:1234/session.sdp`

有没有办法(命令行开关等),如果输出流丢失而不是退出,可以使ffmpeg继续进行?

1 个答案:

答案 0 :(得分:2)

添加onfail选项。

[f=rtsp:onfail=ignore:rtsp_transport=tcp]

确保您的ffmpeg版本是最新版本。