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