gpt4 book ai didi

ffmpeg - 如何在同一个 ffmpeg 命令中两次使用 concat demuxer

转载 作者:行者123 更新时间:2023-12-04 23:20:50 32 4
gpt4 key购买 nike

对于复杂的 ffmpeg 过滤器,我需要两次相同的输入。为了简单起见,我将使用一个示例,其中我只是将视频与自身叠加。 (在我的实际问题中,过滤器更复杂):

ffmpeg -i vid -i vid -filter_complex '[0:v][1:v]overlay' -c:v libx265 -an result.mkv
这行得通,结果是重新编码的原始视频。
可悲的是,我的输入不是视频文件,而是一个 concat demuxer。这是我天真的方法:
ffmpeg -f concat -i vid_list -f concat -i vid_list -filter_complex '[0:v][1:v]overlay' -c:v libx265 -an result.mkv
它失败了。我收到大量有关丢失帧的错误消息,并且生成的视频完全错误。
如何在同一个 ffmpeg 命令中使用两次 concat demuxer 作为输入?
注意:只加载一次连接,然后使用 split filter doesn't work for me. In combination with my complex filter it consumes all RAM .

最佳答案

根据上面 llogan 的断言,我的想法应该可行,我找到了一个我不是 100% 理解但似乎可行的解决方案....
输入视频并非都具有相同的帧速率。我没想到这很重要,因为我两次使用相同的视频列表,所以无论帧率是多少或 concat demuxer 对它做了什么,两者都应该是相同的。尽管如此,明确设置输入帧速率似乎解决了我的问题。
所以这失败了:

ffmpeg -f concat -safe 0 -i vidlist -f concat -safe 0 -i vidlist ...
但这有效:
ffmpeg -f concat -r 15 -safe 0 -i vidlist -f concat -r 15 -safe 0 -i vidlist ...
如前所述,我不明白为什么...
谢谢大家

关于ffmpeg - 如何在同一个 ffmpeg 命令中两次使用 concat demuxer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66728350/

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