我想从视频中提取单帧(作为拇指),而无需下载完整的视频文件。我想只读取mp4标题(信息应该在moov原子中),然后下载所需的字节范围。 Afaik是什么浏览器(HTML5视频)跳转到无缓冲的部分时做的
我已经看过:How can HTML5 video's byte-range requests (pseudo-streaming) work?但我无法弄清楚如何将它与ffmpeg一起使用。
非常感谢!
答案 0 :(得分:8)
如果您绝对决定使这种方法有效,那么通用算法可能会如何运作:
moov
原子在前面;确定moov
原子的长度并提出另一个请求来获取原子的其余部分moov
原子,找到视频trak
原子;挖掘该原子以找到以下原子:stsd
,stss
,stco
/ co64
和stsz
stsd
将为您提供输入H.264视频解码器所需的初始化信息stss
原子为您提供所有同步样本(关键帧)的列表;这些可以独立解码,非常适合您的缩略图stss
原子的礼貌,您可以与stco
或co64
原子交叉引用(trak
将有一个或{另一个)为了找到绝对文件位置,以及stsz
原子,它将告诉你帧中究竟有多少字节结合所有这些信息,您应该能够下载和解码(并因此调整大小并重新压缩缩略图)只是MP4视频的关键帧。