我正在尝试构建一个应用程序,它可以从视频中剪切出特定的小片段。更准确地说,它会根据字幕中的时间戳剪切出人们所说的内容。使用以下命令进行剪切
ffmpeg -ss 346 -i input.avi -t 5 -c copy -y output.mp4
速度非常快,而且足够准确,但由于 MP4 执行“伪造”,我不确定它是否节省内存。我还尝试使用以下命令进行剪切:
ffmpeg -i input.avi -ss 346 -t 5 -c copy output.mp4
在这种情况下,ffmpeg 可以在非关键帧处剪切,因此视频通常无法在开始时正常播放,这对我来说至关重要。
我试图避免解码和编码,因为我的应用程序必须一次处理多个视频,所以这种方式可能会太慢。我已经考虑过强制 ffmpeg 在所需部分的开头制作一个关键帧,然后使用第一个命令,但我不确定这样做是否很快。就我而言,制作关键帧不是一件容易的事。我的首要任务是时间效率和相对准确性。所以现在我不知道这些选项中的哪一个最适合我的情况。我将不胜感激任何帮助。
答案1
我只有一点时间,然后就要离开了,所以我会尽快写完(如果有必要,稍后再进行编辑)。
我会采取这种方法 - 我的“哲学”。对于任何给定的问题,首先要寻找一个能给出所需结果的解决方案。它可能不是最有效或最干净的解决方案,但如果它能给出所需结果,那么从定义上讲它就是一个好的解决方案。
你几乎回答了自己的问题。请允许我引用你的话:
我的首要任务是时间效率和相对准确性。
我很高兴你知道自己的优先事项!那么,话虽如此,你愿意牺牲一点文件大小来满足这些优先事项吗?如果愿意,那就从你的第一个例子开始吧。正如你所说,它非常快,足够准确,唯一的代价就是牺牲一点文件大小。
希望这有帮助:-) M