Ffmpeg 2 单输出输入相机

Ffmpeg 2 Input cameras in single ouput

我有一个应用程序,它使用 liabv 从相机流式传输到带有预览的文件。 现在需要能够同时从 2 个摄像机流式传输并输出到单个文件。预览将像闭路电视摄像机一样写入单一输出。这可能与 libav 相关吗? 在做任何事情之前,我直接尝试使用 ffmpeg.exe 并发现:

ffmpeg -f dshow -i video="Camera1" -i video="Camera2" -filter_complex "nullsrc=size=640x480 [base];[0:v] setpts=PTS-STARTPTS, scale=640x480 [upperleft];[1:v] setpts=PTS-STARTPTS, scale=640x480 [upperright];[base][upperleft] overlay=shortest=1 [tmp1];[tmp1][upperright] overlay=shortest=1:x=640:y=480 [tmp2];"-c:v libx264 output.mp4

但是每次都会为第二个摄像头抛出错误 'No such file or directory',而如果我将它用作单个输入,我已经验证了摄像头是否正常工作。我错过了什么吗?

总体上有可能实现吗?

您的命令中有几个拼写错误,Camera2 缺少 -f dshow,您的基础太小无法显示两个输入,hstack(或 vstack)更易于使用。尝试:

ffmpeg -f dshow -i video="Camera1" -f dshow -i video="Camera2" -filter_complex "[0:v]setpts=PTS-STARTPTS,scale=640:-2[left];[1:v]setpts=PTS-STARTPTS,scale=640:-2[right];[left][right]hstack=inputs=2:shortest=1,format=yuv420p[v]" -map "[v]" -c:v libx264 -movflags +faststart output.mp4