Ffmpeg 2输入摄像机在单个输出中

问题描述 投票:0回答:1

我有一个应用程序,它可以使用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

但是每次都会为第二台相机抛出错误'没有这样的文件或目录',而我已经确认如果将相机用作单输入,则相机可以正常工作。我想念什么吗?

总体上可以实现吗?

ffmpeg libav
1个回答
0
投票

您的命令中有多个错别字,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
© www.soinside.com 2019 - 2024. All rights reserved.