ffmpeg - 连接 2 个不同图像大小的多轨视频
问题描述
我尝试连接两个视频(1.mkv 的图像大小为 640:360,2.mkv 的图像大小为 1280:720),两个视频都有 2 个视频轨道和 0 个音轨。我试过这段代码:
ffmpeg -i 1.mkv -i 2.mkv -filter_complex "[0:v:0]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v0];[0:v:1]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v0];[v0][1:v:0][1:v:1]concat=n=2:v=2:a=0[v]" -map "[v]" -c:v "libvpx" 1+2.mkv
但我错了:
Filter pad has an unconnected output
解决方案
您的过滤器标签需要调整,您需要在 concat 过滤器中更改v=2
为:v=1
ffmpeg -i 1.mkv -i 2.mkv -filter_complex "[0:v:0]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v0];[1:v:0]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v1];[v0][v1]concat=n=2:v=1:a=0[v]" -map "[v]" -c:v libvpx 1+2.mkv
由于2.mkv
已经是 1280x720,您可以避免处理该输入:
ffmpeg -i 1.mkv -i 2.mkv -filter_complex "[0:v:0]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v0];[v0][1:v]concat=n=2:v=1:a=0[v]" -map "[v]" -c:v libvpx 1+2.mkv
推荐阅读
- android - AOSP 构建无法在模拟器上启动(黑屏)
- python - 如何在打印函数中将两个整数放在一起而不在 python 中添加它们?
- python - Webscrape 当前的 chrome 选项卡
- docker - 如何停止 Kubernetes 中从 docker 镜像运行的 Confluence 应用程序?
- .htaccess - 如何为 301 重定向创建 htaccess 重写规则
- python - 是否可以绘制出 PySpark 中列之间的依赖关系?
- javascript - Puppeteer - 从框架集中的第 5 级深子页面调用外部 JS 函数
- r - 来自函数的消息被多次重复
- python-3.x - 如何冻结循环中的迭代以打印python
- c++ - 向量 c++ 中的对象