我想剪辑一个指定开始和结束时间的电影使用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 读取的输入信息以获取持续时间,然后提供一个-t
值duration - 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 值,这样当达到结束间隔时,覆盖就结束。