【问题标题】:Using chunks of MP4 file for thumbnails使用 MP4 文件块作为缩略图
【发布时间】:2014-02-09 00:25:28
【问题描述】:

我想从视频中提取单帧(作为拇指),而无需下载完整的视频文件。我只想阅读 mp4 标头(信息应该在 moov atom 中),然后下载所需的字节范围。 Afaik 这就是您跳到无缓冲部分时浏览器(HTML5 视频)所做的事情

我已经看过:How can HTML5 video's byte-range requests (pseudo-streaming) work?,但我不知道如何将它与 ffmpeg 一起使用。

非常感谢!

【问题讨论】:

    标签: video ffmpeg mp4


    【解决方案1】:

    如果您绝对确定要使这种方法发挥作用,以下是通用算法的运行方式:

    • 下载 MP4 文件的第一千字节
    • 确保moov 原子在前面;确定moov atom 的长度并发出另一个请求以获取 atom 的其余部分
    • 挖掘moov atom 找到视频trak atom;深入该原子以找到以下原子:stsdstssstco/co64stsz
    • stsd 将为您提供输入 H.264 视频解码器所需的初始化信息
    • stss 原子为您提供所有同步样本(关键帧)的列表;这些可以独立解码,非常适合您的缩略图潜在客户
    • 当您知道哪些帧是关键帧时,通过 stss 原子,您可以交叉引用 stcoco64 原子(trak 将有一个或另一个)以找到绝对文件位置,以及 stsz 原子,它将准确告诉您帧中有多少字节

    结合所有这些信息,您应该能够仅下载和解码 MP4 视频的关键帧(从而调整大小并重新压缩以进行缩略图)。

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 2020-03-15
      • 2018-02-02
      • 2011-08-11
      • 2013-01-17
      • 2019-07-10
      • 1970-01-01
      • 2014-09-25
      • 2011-02-24
      相关资源
      最近更新 更多