创建 MPEG-DASH 初始化片段
Create MPEG-DASH Initialization segment
我希望在 HLS 和 MPEG Dash 之间进行转换。我无法访问原始的完全连接的视频文件,只能访问各个 HLS 片段。
在转换为 MPEG Dash 时,我需要为 Dash 清单 .mpd 文件提供初始化段。
我的问题是:
- Dash 视频初始化段的结构是什么?
- 我怎样才能 generate/create 一个而不需要完整的原始文件?
也许解决方案包括让 MP4Box
将“.ts”HLS 段转换为自初始化的 Dash“.m4s”段,但我不确定如何进行这个这个?
非常感谢任何想法。
非常感谢。
更新:
使用原始 hls 片段流式传输的片段。视频一直播放,但只是黑色。
<Representation width="426" height="238" frameRate="25" id="238p 400kbps" bandwidth="400000">
<SegmentList timescale="25000" duration="112500">
<SegmentURL media="video_0_400000/hls/segment_0.ts"/>
<SegmentURL media="video_0_400000/hls/segment_1.ts"/>
<SegmentURL media="video_0_400000/hls/segment_2.ts"/>
</SegmentList>
</Representation>
</AdaptationSet>
What is the structure of a Dash video initialization segment?
初始化段包含初始化视频解码器所需的信息。初始化段是可选的(参考ISO/IEC23009-1)
对于ISO BMFF (commonly known as mp4) this includes the moov
box (specified in ISO/IEC 14496-12). For MPEG-TS usually there is no initialization segment. When present it contains several packets that carry the initialization data in a PES。
How can I generate/create one without the need for the original full file?
如果您的目标播放器支持所需的功能,将 HLS
转换为 MPEG-DASH
是微不足道的。首先你需要一个支持MPEG-TS的播放器。然后您实际上不需要初始化段,因为初始化数据包含在每个 HLS 段中。要将 HLS 播放列表转换为 MPEG-DASH mpd,您必须创建 segment list
或 segment template
。这是一个例子:
HLS:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,
stream0.ts
#EXTINF:10.0,
stream1.ts
#EXTINF:10.0,
stream2.ts
MPD:
...
<SegmentList duration="10">
<SegmentURL media="stream0.ts"/>
<SegmentURL media="stream1.ts"/>
<SegmentURL media="stream2.ts"/>
</SegmentList>
...
如果您的目标播放器不支持 MPEG-TS 或 SegmentList
,那么您必须使用 MP4Box
等外部工具将 HLS 流转换为 MPEG-DASH .
我希望在 HLS 和 MPEG Dash 之间进行转换。我无法访问原始的完全连接的视频文件,只能访问各个 HLS 片段。
在转换为 MPEG Dash 时,我需要为 Dash 清单 .mpd 文件提供初始化段。
我的问题是:
- Dash 视频初始化段的结构是什么?
- 我怎样才能 generate/create 一个而不需要完整的原始文件?
也许解决方案包括让 MP4Box
将“.ts”HLS 段转换为自初始化的 Dash“.m4s”段,但我不确定如何进行这个这个?
非常感谢任何想法。
非常感谢。
更新: 使用原始 hls 片段流式传输的片段。视频一直播放,但只是黑色。
<Representation width="426" height="238" frameRate="25" id="238p 400kbps" bandwidth="400000">
<SegmentList timescale="25000" duration="112500">
<SegmentURL media="video_0_400000/hls/segment_0.ts"/>
<SegmentURL media="video_0_400000/hls/segment_1.ts"/>
<SegmentURL media="video_0_400000/hls/segment_2.ts"/>
</SegmentList>
</Representation>
</AdaptationSet>
What is the structure of a Dash video initialization segment?
初始化段包含初始化视频解码器所需的信息。初始化段是可选的(参考ISO/IEC23009-1)
对于ISO BMFF (commonly known as mp4) this includes the moov
box (specified in ISO/IEC 14496-12). For MPEG-TS usually there is no initialization segment. When present it contains several packets that carry the initialization data in a PES。
How can I generate/create one without the need for the original full file?
如果您的目标播放器支持所需的功能,将 HLS
转换为 MPEG-DASH
是微不足道的。首先你需要一个支持MPEG-TS的播放器。然后您实际上不需要初始化段,因为初始化数据包含在每个 HLS 段中。要将 HLS 播放列表转换为 MPEG-DASH mpd,您必须创建 segment list
或 segment template
。这是一个例子:
HLS:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,
stream0.ts
#EXTINF:10.0,
stream1.ts
#EXTINF:10.0,
stream2.ts
MPD:
...
<SegmentList duration="10">
<SegmentURL media="stream0.ts"/>
<SegmentURL media="stream1.ts"/>
<SegmentURL media="stream2.ts"/>
</SegmentList>
...
如果您的目标播放器不支持 MPEG-TS 或 SegmentList
,那么您必须使用 MP4Box
等外部工具将 HLS 流转换为 MPEG-DASH .