水平并排显示两个视频并导出为一个视频

Posted

技术标签:

【中文标题】水平并排显示两个视频并导出为一个视频【英文标题】:Horizontally show two videos side by side and export to one video 【发布时间】:2013-03-21 12:14:27 【问题描述】:

我想要达到的目标: 以编程方式(使用某种脚本)将两个不同的视频组合成一个视频,其中视频并排显示,两个视频的声音同时播放。

我发现至少有两种方法可以并排显示两个视频,但在每一种方法中,我都有一个不同的问题,因此很难完成该过程:

    Avisyth 和 Avs2Avi: Avisyth 确实让这个过程变得简单。使用这样一个简单的 Avisyth 脚本,您应该能够并排播放两个视频:

    video1=AVISource("d:\file1.avi") video2=AVISource("d:\file2.avi") StackHorizontal(video1,video2) 可以使用 avs2avi 创建新的输出文件。 这里的问题是我什至无法使用avisyth 播放一个avi 文件,因为我收到“AviSource 无法找到fourcc xvid 的解压缩器”消息。我搜索了该问题的解决方案,但没有任何帮助。 GSpot 说我拥有所需的所有编解码器,但我似乎无能为力。因为我无法播放真实视频,所以我不知道最终视频是否会播放两个视频中的声音。 Avisyth 安装正确,我可以运行以下脚本 StackHorizo​​ntal(version ,version)。

    ffmpeg 像两个视频和最终文件的魅力一样工作但我没有从两个视频中得到声音,而只有第一个。我发现从第二个视频中添加声音的解决方案是在命令行中使用 libfaac,如下所示:

ffmpeg.exe -i video1.mp4 -vf "[in] scale=iw/2:ih/2, pad=2*iw:ih [left]; movie=video2.mp4, scale=iw/3:ih/3 [right]; [left][right] overlay=main_w/2:0 [out]" -c:a libfaac -b:v 768k Output.mp4

但我总是收到一个错误,即找不到编码器 libfaac。我下载了 libfaac.dll 但仍然没有结果。

是否有解决这些问题的方法?是否有另一种方法可以通过并排播放的两个视频以编程方式制作一个视频?提前致谢。

【问题讨论】:

libfaac 要求 ffmpeg 使用 --enable-nonfree 编译,这导致它不可再分发:这就是为什么 Zeranoe 和其他提供编译版本的人不能包含 libfaac 支持的原因。相反,您可以使用本机 FFmpeg AAC 编码器(但在中低比特率下质量不是很好):-c:a libfaac -strict experimental -b:a 192k。虽然我不确定您的命令是否还会包含来自第二个输入的音频。 【参考方案1】:

由于使用 Avisynth 对您来说似乎没有问题,您可以只使用另一个源过滤器。 FFMS2 应该非常符合要求 - 它是完全独立的,不依赖于 AviSource 等任何系统解码器。

【讨论】:

以上是关于水平并排显示两个视频并导出为一个视频的主要内容,如果未能解决你的问题,请参考以下文章

并排播放两个视频:视频不显示

使用 JAVA + Java 小程序从多个 USB 摄像头捕获视频并在 UI 中并排显示

iOS 视频编辑 - 是不是可以使用 iOS 4 AVFoundation 类将两个视频文件合并(并排而不是一个接一个)为一个?

如何在立体声的同一窗口中并排显示 2 个网络摄像头视频?

一个文件中的多个并排视频流,无需转码

如何使用FFmpeg将上下三维视频转换为并排的三维视频