如何使用 ffmpeg 并排连接 5 个视频?有人能解释一下这个命令吗?我只知道如何编写 Python,很难理解更复杂的 ffmpeg 命令。例如,下面的这个脚本从左到右、从上到下连接视频,但我如何读取命令?
ffmpeg -i input0 -i input1 -i input2 -i input3 -filter_complex \
"[0:v][1:v]hstack[top]; \
[2:v][3:v]hstack[bottom]; \
[top][bottom]vstack,format=yuv420p[v]; \
[0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \
-map "[v]" -map "[a]" -ac 2 output.mp4
是否[0:v]
意味着第 0 行到第 v-1 行?
hstack
该命令应用于该行的哪些变量[0:v][1:v]hstack[top]
?为什么不呢hstack(input0,input1)
?
答案1
并排显示 5 个视频
ffmpeg -i input0 -i input1 -i input2 -i input3 -i input4 -filter_complex \
"[0:v][1:v][2:v][3:v][4:v]hstack=inputs=5[v]
[0:a][1:a][2:a][3:a][4:a]amix=inputs=5[a]" \
-map "[v]" -map "[a]" output.mp4
问题
是否
[0:v]
意味着第 0 行到第 v-1 行?
[0:v]
指的是[input0:video]
。[3:a]
指的是[input3:audio]
。这就是你告诉过滤器要使用哪些输入和流类型作为输入的方式。提供给 hstack 的输入的顺序决定了它们的排列顺序。[v]
是为 hstack 过滤器的输出指定的任意名称。您几乎可以选择任何名称。 也一样[a]
。-map "[v]"
指示将 hstack 过滤器 ( )ffmpeg
的输出放入。[v]
output.mp4
hstack
该命令应用于该行的哪些变量[0:v][1:v]hstack[top]
?
两个输入([0:v][1:v]
)、过滤器名称(hstack
)和一个输出标签([top]
)。
为什么不呢
hstack(input0,input1)
?
为什么会这样?当前的语法[input0][input1]filer=option0=value0:option1=value1[output]
对我来说更有意义。