ffmpeg - 我应该从 mp4 下载多少才能仅获取它的元数据

标签 ffmpeg

我需要刷新数据库中大型 mp4 文件的元数据,我不想下载孔文件来获取帧速率和分辨率。

通过实验我发现只下载 1MB 就足够了 ffmpeg -i向我展示信息。

你能指出我解释这一点的文档吗?

最佳答案

This答案指出 MP4 文件头的大小实际上取决于许多因素,例如:

  • 轨道数量
  • H.264 编码属性
  • 一些复用器将他们的名字放入剩余的空闲空间(“原子” - 见上面的链接)

  • 如链接答案中所述,您可以预期标题来自 1 到 4 KB 大的。

    由于现在一兆字节是相当少量的数据(仅考虑少量文件-对您来说可能会有所不同),因此如果仅获取第一兆字节(1 MByte = 1024 KByte),您将非常安全。

    如果您可以流式传输您获取的数据并不断检查字节,则可以监听字符序列 mdat ,如链接答案中所述(再次)。它应该表示文件头可能已经结束。

    关于ffmpeg - 我应该从 mp4 下载多少才能仅获取它的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984056/

    相关文章:

    FFmpeg - 缓冲区队列溢出、丢弃 - 组合 2 个视频并使用 concat、hstack 和 trim 时

    c# - 使用 ffmpeg 和 C# 创建转换队列

    php - ffmpeg 设置自动高度

    video - 来自多个文件的 FFmpeg hls

    ffmpeg - 使用 ffmpeg shell 命令转换 mp4 视频并加入动画 mp4 + 音频(wav,mp3)

    python - 从本地驱动器打开视频文件作为缓冲区并将其写入新文件

    android - Android 上的 FFmpeg

    windows - ffmpeg 库不能从路径工作,而是直接工作

    audio - 使用 ffmpeg 将 MP3 文件拆分为多个相同长度的文件

    node.js - NodeJS - 从固定 HTTP 端点流式传输 MP3 音频播放列表