ffmpeg 在用户停止之前从流中接收“所有”帧

ffmpeg 在用户停止之前从流中接收“所有”帧

我希望始终可以预览我的网络摄像头,同时允许另一个进程随意从中进行录制。

为此,我在流式传输时ffmpeg使用预览我的网络摄像头sdl

 ffmpeg.exe `
-f dshow `
-i "video=webcam_video:audio=webcam_audio" `
-pix_fmt yuv420p `
-f sdl :0 `
-preset ultrafast `
-vcodec libx264 `
-x264-params keyint=1 `
-r 30 `
-f mpegts 'udp://239.0.0.1:1234'

当我想录制时,我会ffmpeg像这样以客户端身份运行

ffmpeg -y -re -i udp://239.0.0.1:1234 output.mp4;    

当命令执行时output.mp4包含正在被立即记录的内容,这是理想的。

但是,当q按下时,视频被切断(output.mp4缺少最后约 3 秒的录音)。

有没有办法ffmpeg“等待”直到在发出停止信号之前记录的所有帧(在服务器端)都收集完毕,然后再关闭?

相关内容