如果一个输出流失败,ffmpeg将退出-这可以防止吗?

如果一个输出流失败,ffmpeg将退出-这可以防止吗?,ffmpeg,Ffmpeg,我负责维护一个设备,该设备将实时网络摄像头馈送流到远程中继服务器,同时将流的版本写入本地磁盘。它通过ffmpeg的一个实例实现这一点,该实例有两个输出—一个输出到本地磁盘,另一个通过rtsp输出到流媒体服务器 我遇到了一个问题,如果流媒体服务器由于任何原因中断,ffmpeg将退出。如果直播流丢失,我并不担心,但本地录制也丢失,这是一个大问题——如果无法实时观看,这对特定的业务流程不会造成巨大的损害,但丢失本地存储的副本是一场灾难 ffmpeg使用类似以下命令行启动: ffmpeg -thread

我负责维护一个设备,该设备将实时网络摄像头馈送流到远程中继服务器,同时将流的版本写入本地磁盘。它通过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继续,而不是退出?

添加该选项


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

在我的例子中,我的音频流为空,因此无法对文件进行编码。我必须使用:
ffmpeg-I inputfile.mp4-map“0:v”-map“0:a?”-o outputfile.mp4
来包含音频,前提是可以包含音频而不会出现错误。
[f=rtsp:onfail=ignore:rtsp_transport=tcp]