我是多媒体编程的新手,我正在尝试通过单独解析数据包从传输流缓冲区中生成实时 mpeg-dash 内容。
我想创建 .m4s 片段,但我对它们的结构感到困惑。
换句话说,如果我们组合多个片段,我们会产生 mpeg 传输流、mpeg 程序流还是单独的基本流?
答案1
MPEG-2 传输流和MPEG-DASH段是不同的,前者是针对不可靠网络上的视听内容分组传输的规范,而后者是针对可靠 HTTP 上的传输的规范,因此概念上有些不同。
与 MPEG-TS 相比,有不同的方法来准备 MPEG-DASH 传输的媒体。.m4s
文件是一种选择 - 事实上,MPEG-TS 是另一种选择。
.m4s
文件是完整文件的独立媒体片段。它们位于ISO 基础媒体文件 (ISOBMFF) 格式。这个想法是将一个较长的文件(例如,将一部电影视为一个编码.mp4
文件)分割成可以通过 HTTP 独立下载的单个文件。
如果您连接多个.m4s
片段,您将再次获得一个完整的可播放文件——媒体片段本身不能单独播放,因为它们需要先解码第一个初始化片段。请阅读链接的规范以获取更多信息。您还可以找到有关该主题的一些较旧的信息来自GPAC。
您可以选择将视频和音频轨道合并到一个文件中,但通常对于 HTTP 自适应流,音频和视频在单独的流中传输。
在您的具体情况下,如果您有现有的 MPEG-TS 内容并希望将其重新混合到 ISOBMFF 段中,便当4如果你想通过编程来实现这一点,那么它可能是一个很好的框架。此外,dashcast
程序可以接受任何输入并创建实时 DASH 输出流。