0

当您的输入来自设备(例如网络摄像头)时,管道命令无法正常工作,因此您无法使用 2 个输出。我需要将网络摄像头流保存在文件 (.mkv) 上,同时将其发布到 rtst 服务器上。我尝试了以下方法:

ffmpeg -y -f dshow -loglevel info -rtbufsize 2147.48M -i "video=my_camera" -vf hflip,rotate=PI ^ -c:v libx264 -preset fast -crf 25 -pix_fmt yuv420p ^ -minrate 2M -maxrate 4M - bufsize 3.5M -s 1920x1080 -f tee "[f=mkv]'C:\test.mkv'|[f=rtsp]rtsp://localhost:8554/mystream]"

4

1 回答 1

0

最后我做到了。使用-flags +global_header ,它与-map 0:v选项相同是强制性的。现在工作完美。

ffmpeg -y -f dshow -loglevel info -rtbufsize 2147.48M -i "video=MY_CAMERA" ^ -flags +global_header -c:v libx264 -preset fast -crf 30 -pix_fmt yuv420p ^ -minrate 2M -maxrate 4M -bufsize 3.5M -s 1920x1080 -f tee -map 0:v "C:\out\test.mkv|[f=rtsp]rtsp://localhost:8554/mystream"

于 2020-11-18T15:51:37.363 回答