ffmpeg 一次从文件读取并应用 filter_complex

3

我正在将 fls.txt 文件输入到 ffmpeg -i 中,并应用 concat 和加速处理。

fls.txt


file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

一次性运行的命令如下:

ffmpeg  -i fls.txt     \
-filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a] concat=n=3:v=1:a=1 [v][a];\
[v]setpts=0.5*PTS[v1];[a]atempo=2,asetpts=N/SR/TB[a1]"     \
-c:v h264_nvenc -map "[v1]" -map "[a1]"  x2.mp4

输出结果非常奇怪,显示出类似于“找不到流”的信息。同时它似乎试图理解 fls.txt 本身,而不是其内容作为参数传入。 我在这里做错了什么,如何纠正错误?由于这只是一个简单的例子,我无法手动编写三个输入文件路径。我需要从文件中读取它们。如果有影响的话,我的操作系统是 Windows 10。
编辑:根据建议进行编辑并扩展 -filter_complex 后,出现了以下错误。
ffmpeg -f concat -safe 0 -i fls.txt     \
-filter_complex "[0:v]setpts=0.5*PTS[v1];[v1]setpts=0.5*PTS[v2];[0:a]atempo=2,asetpts=N/SR/TB[a1];[a1]atempo=2,asetpts=N/SR/TB[a2]"     \
-c:v h264_nvenc -map "[v1]" -map "[a1]" x2.mp4 \
-c:v h264_nvenc -map "[v2]" -map "[a2]" x4.mp4

错误:

Output with label 'v1' does not exist in any defined filter graph, or was already used elsewhere.

1
在“-i”之前添加“-f concat -safe 0”。 - Gyan
1个回答

1

过滤器图描述中的流规范“:a”不匹配任何流。

要启用concat解复用器,您必须在-i fls.txt之前使用-f concat

ffmpeg -f concat -i fls.txt     \
-filter_complex "[0:v]setpts=0.5*PTS[v1];[0:a]atempo=2,asetpts=N/SR/TB[a1]"     \
-c:v h264_nvenc -map "[v1]" -map "[a1]" x2.mp4

因为您正在尝试使用串联复用器,所以也不需要串联滤镜,因此您可以简化命令。
您可能还需要在-i之前使用-safe 0,您可以在文档中了解相关信息。
后续问题:输出标签“v1”不存在于任何已定义的过滤器图中,或已在其他地方使用。
您不能重复使用已消耗的过滤器输出标签,因此此示例避免了这种情况。
ffmpeg -f concat -safe 0 -i fls.txt     \
-filter_complex "[0:v]setpts=0.5*PTS[2xv];[0:v]setpts=PTS/4[4xv];[0:a]atempo=2,asetpts=N/SR/TB[2xa];[0:a]atempo=4,asetpts=N/SR/TB[4xa]"     \
-c:v h264_nvenc -map "[2xv]" -map "[2xa]" x2.mp4 \
-c:v h264_nvenc -map "[4xv]" -map "[4xa]" x4.mp4

我尝试实现更改并添加了多个输出的原始想法,但是出现了奇怪的错误。ffmpeg -f concat -safe 0 -i fls.txt \ -filter_complex "[0:v]setpts=0.5*PTS[v1];[v1]setpts=0.5*PTS[v2];[0:a]atempo=2,asetpts=N/SR/TB[a1];[a1]atempo=2,asetpts=N/SR/TB[a2]" \ -c:v h264_nvenc -map "[v1]" -map "[a1]" x2.mp4 \ -c:v h264_nvenc -map "[v2]" -map "[a2]" x4.mp4错误:标签为“v1”的输出在任何已定义的过滤器图中不存在,或者已在其他地方使用。 - AlexZheda
我有一个关于你是否有时间看一下的后续问题。https://stackoverflow.com/questions/60231770/invalid-dropping-st0-and-non-monotonous-dts-in-output-stream-01-errors-in-ffmp - AlexZheda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接