video | 您所在的位置:网站首页 › ffmpeg分割出0文件 › video |
这是我可以开始工作的解决方案: 正如 av501 和 d33pika 所建议的,我使用 ffprobe 来查找关键帧的位置。因为 ffprobe 非常冗长,可能需要几秒钟甚至几分钟才能输出所有关键帧,并且无法从冗长的视频中确定我们想要的帧范围,所以我分为 5 个步骤: 从原始文件中导出一个视频块,大约是所需块大小的两倍。 ffmpeg -i source.wmv -ss 00:00:00 -t 00:00:06 -acodec copy -vcodec copy -async 1 -y 0001.wmv使用 ffprobe 查找关键帧的位置。在所需的块大小之后选择最近的关键帧。 ffprobe -show_frames -select_streams v -print_format json=c=1 0001.wmv从 ffprobe 的输出中获取该pkt_dts_time关键帧之前的帧。 ffmpeg 在步骤 1 的导出块上,指定相同的输入和输出文件,并指定-ss 00:00:00和-t[在步骤 3 中找到的值]。 ffmpeg -i 0001.wmv -ss 00:00:00 -t 00:00:03.1350000 -acodec copy -vcodec copy -async 1 -y 0001.wmv在步骤 1 重新开始,使用-ss[在步骤 3 中通过迭代找到的值的累积总和]。 以这种方式进行,我能够有一种有效且强大的方法来在关键帧处分割视频。 |
CopyRight 2018-2019 实验室设备网 版权所有 |