Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ffmpeg 创建MPEG-DASH初始化段_Ffmpeg_Http Live Streaming_Mpeg Dash_Adaptive Bitrate_Mp4box - Fatal编程技术网

Ffmpeg 创建MPEG-DASH初始化段

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段流式传输的代码段。视频全程播放,但

我希望在HLS和MPEG Dash之间转换。我不访问原始的完全连接的视频文件,只访问单个HLS片段

在对MPEG Dash进行转换时,我需要为Dash manifest.mpd文件提供一个初始化段

我的问题是:

  • Dash视频初始化段的结构是什么
  • 如何在不需要原始完整文件的情况下生成/创建一个
  • 也许解决方案包括让
    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>
    ...