gpt4 book ai didi

ffmpeg 从文件中读取并立即应用 filter_complex

转载 作者:行者123 更新时间:2023-12-04 22:58:39 28 4
gpt4 key购买 nike

我在喂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
输出真的很奇怪,说的是 a找不到流。而且它看起来好像在试图理解 fls.txt本身而不是其内容作为参数。
我在这里做错了什么,我该如何纠正?
此外,这是一个简化的示例,我不能手动编写 3 个输入文件路径。我需要从文件中读取它。如果这很重要,我在 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.

最佳答案

filtergraph 描述中的流说明符 ':a' ... 不匹配任何流。

要启用 concat demuxer,您必须使用 -f concat之前 -i fls.txt .

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

因为您正在尝试使用 concat demuxer不需要 concat filter同样,您可以简化命令。

您可能还需要使用 -safe 0之前 - i您可以在 documentation 中阅读.

后续问题:带有标签“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 从文件中读取并立即应用 filter_complex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com