我正在创建一堆脚本来轻松使用 ffmpeg。
我所有的脚本现在都可以工作了,但是很多价值都是硬编码的,这使得他们想要视频的精确尺寸(854x240,我的测试视频的大小)
一个很好的例子胜过冗长的解释:
ffmpeg -i 0.mp4 -vf "
scale=854/2:-1 [low];
color=c=black@1.0:s=854x240:r=29.97:d=30.0 [bg];
movie=1.mp4, scale=854/2:-1 [high];
[bg][high] overlay=0:0 [bgh];
[bgh][low] overlay=854/2:-1" leftright.mp4
它需要 0.mp4 和 1.mp4 并将它们并排放在同一视频中。但是维度值是硬编码的。但它有效。
我知道我可以使用 iw 和 ih 作为第一个比例过滤器的“输入宽度”和“输入高度”,但是当我尝试将其他任何东西作为颜色背景的尺寸时,它只会给我一个错误:
Unable to parse option value "iw:ih" as image size
Unable to parse option value "iw:240" as image size
Unable to parse option value "860*2:240" as image size
最后我又放了1720x240,这真的很糟糕。
有没有办法绕过这个,或者输入依赖值?
编辑:
从视频 1.mp4 (854x240) 和 2.mp4 (520x520)(示例值)开始,将它们并排放在 out.mp4 中(在这种情况下,尺寸为 max(height)x(2xmax(width)) ,因此在本例中为 854x1040),背景为黑色。
ax
<---->
.____.^
| ||
| 1 ||
| ||ay
| ||
|____|V
bx
<-------->
.________.^
| 2 ||by
|________|V
最终会成为
ay>ax
bx>by
bx bx
<--------><-------->
xx.____.xxxxxxxxxxxx^
xx| |xxxxxxxxxxxx|
xx| 1 |xx.________.|
xx| |xx| 2 ||ay
xx| |xx|________||
xx|____|xxxxxxxxxxxxV