如何在 ffmpeg 中从指定的开始和结束时间剪辑 50 秒前的电影?

如何在 ffmpeg 中从指定的开始和结束时间剪辑 50 秒前的电影?

我想剪辑一个指定开始和结束时间的电影使用ffmpeg我已经设置了开始时间但我想设置一个结束时间最后,50秒前结束。我不知道如何设置配置。

ffmpeg -i demo.mp4 -ss 00:01:20 -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

答案1

明智的方法是解析 ffmpeg 读取的输入信息以获取持续时间,然后提供一个-tduration - start time - 50s

疯狂的方法是提供两次输入并使用覆盖过滤器:

ffmpeg -ss 2:10 -i demo.mp4 -ss 00:01:20 -i demo.mp4 -filter_complex overlay=shortest=1[v] -map [v] -map 1:a -shortest -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

第一个输入具有一个 ss 值,即开始时间 + 要剪切的视频结束部分的数量。

第二个输入具有您的开始时间的 ss 值。

基本思想是,当最短输入结束时,覆盖过滤器可以终止。第一个输入被设置为 ss 值,这样当达到结束间隔时,覆盖就结束。

相关内容