当前位置: 首页 > 知识库问答 >
问题:

创建MPEG-DASH初始化段

谢运良
2023-03-14

我希望转换之间的HLS和MPEG破折号。我不能访问原始的完全串联的视频文件,只有个别的HLS段。

在进行到MPEG破折号的转换时,我需要为破折号manifest.mpd文件提供一个初始化段。

我的问题是:

    null

非常感谢。

更新:使用原始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>

共有1个答案

丁豪
2023-03-14

一个破折号视频初始化段的结构是什么?

对于ISO BMFF(通常称为mp4),这包括moov框(在ISO/IEC 14496-12中指定)。对于MPEG-TS,通常没有初始化段。当存在时,它包含在PES中携带初始化数据的几个包。

我如何在不需要原始完整文件的情况下生成/创建一个?

如果您的目标播放器支持所需的特性,那么将HLS转换为MPEG-DASH将非常简单。首先,您需要一个支持MPEG-TS的播放器。那么实际上并不需要初始化段,因为初始化数据包含在每个HLS段中。要将and HLS播放列表转换为MPEG-DASH mpd,必须创建段列表段模板。下面是一个例子:

#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。

 类似资料:
  • 我使用FFMPEG-segment对桌面上的视频捕获进行分段,并通过网络发送它们,以便提供给客户,并使用dash.js播放。问题是播放器正在搜索初始化段,而我似乎不知道如何创建它。 我使用以下ffmpeg命令创建段: 我为流创建的清单如下所示: 播放机调试模式打印以下内容: 如何为生成的段创建初始化段?我似乎无法让它起作用。

  • 我知道使用,我们可以创建MPEG-DASH就绪文件,包括段和. mpd清单文件。例如,我正在尝试这个有效的命令: 但我不想分割视频,所以我们有一个更简单的版本,整个视频有多个版本,没有块。MPEG-DASH允许吗?如果是这样的话,我如何使用在不创建块的情况下完成它?

  • 我正在尝试使用MP4Box创建带有TS配置文件的mpeg dash文件。我尝试了以下命令: 它会生成清单文件中选中的完整配置文件。MP4Box是否支持TS段创建?

  • 我正在尝试创建MPEG-DASH内容。我找到了可以组合的代码。mp4parser中的m4s文件。请有人引导我去创造这样的。m4s文件和。mpd文件。

  • 我一直在尝试学习MP4Box和Dash,我正在取得一些进展,但我似乎无法让我的视频正常工作。我按照将播放器添加到一个简单的html页面的说明进行了操作,并用它测试了Dash测试页面中的已知MPD,并且播放器的一切都很完美,所以我缩小了MPD文件的范围。 我通过Dash验证器运行了我的MPD文件,但它失败了。我得到以下错误: 我正在使用MP4Box来分割mp4,所以这可能是一个错误的命令。我用的是这

  • 我正在尝试实施Android应用程序来播放受小程序保护的视频。我在Exoplayer上构建我的应用程序,但我对有问题。 我有这个异常。我发现这个异常被抛出在这行代码中: 方法的所有参数都设置正确,但调用此方法失败,并引发上述异常。 你知道我该怎么解决吗?谢谢你的帮助。