【问题标题】:How can I determine the CODECS value for a m3u8 playlist?如何确定 m3u8 播放列表的 CODECS 值?
【发布时间】:2020-12-19 08:20:31
【问题描述】:

我正在创建一个主 m3u8 文件以允许两个流式视频的自适应流式传输。两者都有可读的编解码器名称 MPEG-4 AVC (part 10) (avc1)

如何将其转换为应该出现在我的主 m3u8 播放列表文件中的 CODECS 值,如下例所示:

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1755600,CODECS="avc1.42001f,mp4a.40.2",RESOLUTION=354x240

如何获取替换avc1.42001f,mp4a.40.2的值

Apple 的规范说“有效格式标识符是 RFC 6381 [RFC6381] 定义的 ISO 文件格式名称空间中的那些”,但我不知道如何阅读 RFC 6381 文档。

【问题讨论】:

  • RFC6381 提到了一个注册表:mp4ra.org/#/codecs 在某个地方有一个更具体的列表...如果我能找到它,我会回来并在这里发布。
  • 感谢您的帮助。根据此处的建议,我找到了一个实用程序,可以为我提供所需的信息。

标签: ffmpeg video-streaming http-live-streaming


【解决方案1】:

每个编解码器字符串都是编解码器特定的。对于音频,mp4a 表示它的 mpeg 音频 40 表示它的 mpeg 4.0(我认为),最后一个整数是“音频对象类型”。 AAC-LC 为 2。可在此处找到完整列表。 https://wiki.multimedia.cx/index.php/MPEG-4_Audio#Audio_Object_Types

对于视频,在您的示例中,视频编解码器是 h.264,也称为“高级视频编解码器”,又名 avc1。十六进制字符串是 3 个字节,代表编解码器配置文件、标志和级别。这些可以在 SPS 的前 3 个字节中找到。

其他编解码器不同。

【讨论】:

  • 非常感谢您花时间解释。谢谢。
【解决方案2】:

根据此处评论者的建议,我改进了我的 Google 搜索,最终找到了一篇解释代码构建方式的博文:

对这篇文章的评论将我引向了 mp4box.js 实用程序,它加载文件并提供大量信息,包括 CODECS 值:

【讨论】:

    猜你喜欢
    • 2014-12-18
    • 2010-12-12
    • 1970-01-01
    • 2013-09-09
    • 2013-05-13
    • 2016-05-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    相关资源
    最近更新 更多