我知道FFMPEG是可能的,但如果我有一个部分文件(比如没有开头和结尾)该怎么办。是否可以从中提取一些帧?
答案 0 :(得分:77)
命令
ffmpeg -ss 00:00:25 -t 00:00:00.04 -i YOURMOVIE.MP4 -r 25.0 YOURIMAGE%4d.jpg
将提取帧
在应用选项[-r]之前检查电影的帧速率,同样适用于[-t],除非您想要使用自定义速率提取帧。
虽然没有尝试使用裁剪(损坏的?)输入文件。 值得一试。
答案 1 :(得分:2)
这可能非常困难。 MP4文件格式包括一个' moov'原子,它指向音频和视频'样本'。如果您拥有的mp4文件的片段没有moov原子,那么您的工作将会复杂得多。你必须开发逻辑来检查“mdat”。 atom(包含所有音频和视频样本)并使用有根据的猜测来查找音频和视频边界。
更糟糕的是,如果没有moov原子,您将无法获得解码切片所需的SPS和PPS。你必须合成替代品;如果您知道用于创建MP4的编解码器,那么您可以从类似编码的文件中复制SPS和PPS;如果不是,那可能是一个痛苦的尝试和错误过程,因为切片的语法(H.264编码图片)取决于SPS和PPS中指定的值。