如果一个输出流失败,ffmpeg 就会退出 - 这可以预防吗?

标签 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 在输出流丢失时继续运行,而不是退出?

最佳答案

添加onfail选项。

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

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

关于如果一个输出流失败,ffmpeg 就会退出 - 这可以预防吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134034/

相关文章:

c++ - ffmpeg:音频样本的字节顺序

opengl - 创建视频 com 渲染的 OpenGL 帧

android - 如何使用 FFMPEG 命令

ffmpeg - libavcodec 中的 write_back_intra_pred_mode() 函数有什么作用?

opencv - 如何使用我从 nginx 服务器获得的视频数据流?

ffmpeg - 使用 FFmpeg 将带有 A/52 B 音频(又名 E-AC3)的 MKV 转换为 AAC 的问题

video - 使用 ffmpeg 添加 2 秒的空白/黑色视频

c - FFmpeg C API 文档/教程

c++ - 如何将 ffmpeg 视频帧转换为 YUV444?

c - ffmpeg 获取过滤器日志