ffmpeg从文件中读取并立即应用过滤器

ffmpeg从文件中读取并立即应用过滤器,ffmpeg,Ffmpeg,我正在将fls.txt输入ffmpeg-I并应用concat和加速 fls.txt 一次性执行的命令如下所示: 输出非常奇怪,表示未找到类似a流的内容。而且它看起来好像是在试图理解fls.txt本身,而不是作为参数的内容。 我在这里做错了什么?我如何纠正它? 此外,这是一个简化的示例,我无法编写每手3个输入文件路径。我需要从文件中读取它。如果这很重要的话,我会使用Windows10 编辑: 通过执行建议的编辑和扩展-filter\u complex我得到了下面的一个错误 ffmpeg -f co

我正在将
fls.txt
输入
ffmpeg-I
并应用
concat
和加速

fls.txt
一次性执行的命令如下所示: 输出非常奇怪,表示未找到类似
a
流的内容。而且它看起来好像是在试图理解
fls.txt
本身,而不是作为参数的内容。 我在这里做错了什么?我如何纠正它? 此外,这是一个简化的示例,我无法编写每手3个输入文件路径。我需要从文件中读取它。如果这很重要的话,我会使用Windows10

编辑: 通过执行建议的编辑和扩展
-filter\u 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.
filtergraph描述中的流说明符“: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

-i
之前添加
-f concat-safe 0
,我尝试实现这些更改,并添加了具有多个输出的原始想法,但得到了一个奇怪的错误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,asetptps=N/SR/TB[a1];[a1]atempo=2,asetptps=N/SR/TB[a2]“\-c:v h264\nvenc-map”[v1]“-map”[a1]“x2.mp4 \-c:v h264\nv64-nc-map”[v2]”x4.mp4``错误:``标签为'v1'的输出在任何已定义的筛选器图形中都不存在,或已在其他位置使用```如果你有时间看一看的话,我会跟进这个问题。
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
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