Ffmpeg 创建MPEG-DASH初始化段
我希望在HLS和MPEG Dash之间转换。我不访问原始的完全连接的视频文件,只访问单个HLS片段 在对MPEG Dash进行转换时,我需要为Dash manifest.mpd文件提供一个初始化段 我的问题是:Ffmpeg 创建MPEG-DASH初始化段,ffmpeg,http-live-streaming,mpeg-dash,adaptive-bitrate,mp4box,Ffmpeg,Http Live Streaming,Mpeg Dash,Adaptive Bitrate,Mp4box,我希望在HLS和MPEG Dash之间转换。我不访问原始的完全连接的视频文件,只访问单个HLS片段 在对MPEG Dash进行转换时,我需要为Dash manifest.mpd文件提供一个初始化段 我的问题是: Dash视频初始化段的结构是什么 如何在不需要原始完整文件的情况下生成/创建一个 也许解决方案包括让MP4Box将“.ts”HLS段转换为自初始化的短划线“.m4s”段,但我不确定如何执行此操作? 任何想法都非常感谢 非常感谢 更新: 要使用原始hls段流式传输的代码段。视频全程播放,但
MP4Box
将“.ts”HLS段转换为自初始化的短划线“.m4s”段,但我不确定如何执行此操作?
任何想法都非常感谢
非常感谢
更新:
要使用原始hls段流式传输的代码段。视频全程播放,但仅为黑色。
Dash视频初始化段的结构是什么
初始化段包含初始化视频解码器所需的信息。初始化段是可选的(参考ISO/IEC 23009-1)
对于(通常称为mp4),这包括moov
框(在ISO/IEC 14496-12中规定)。因为通常没有初始化段。当存在时,它包含多个数据包,这些数据包以相同的方式携带初始化数据
如何在不需要原始完整文件的情况下生成/创建一个
如果您的目标播放机支持所需的功能,则将HLS
转换为MPEG-DASH
非常简单。首先,您需要一个支持MPEG-TS的播放器。然后,您实际上不需要初始化段,因为初始化数据包含在每个HLS段中。要将HLS播放列表转换为MPEG-DASH mpd,您必须创建片段列表
或片段模板
。以下是一个例子:
HLS:
MPD:
。。。
...
如果您的目标播放机不支持MPEG-TS或
SegmentList
,那么您必须使用一些外部工具(如MP4Box
)将HLS流转换为MPEG-DASH。非常感谢,这非常有见地。我不相信我有一个球员,将支持这些HLS部分。您能为我指出将执行此转换的mp4box命令的正确方向吗?对不起,我对mp4box没有太多经验。我已经试过几次了,但我不记得确切的命令。我建议你检查一下。使用上面的分段列表方法,我可以播放视频,但视频始终是黑色的。我已经在原始文章的末尾添加了这个片段。
<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>
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,
stream0.ts
#EXTINF:10.0,
stream1.ts
#EXTINF:10.0,
stream2.ts
...
<SegmentList duration="10">
<SegmentURL media="stream0.ts"/>
<SegmentURL media="stream1.ts"/>
<SegmentURL media="stream2.ts"/>
</SegmentList>
...