首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将m3u8 (HLS)转换为mpd (MPEG-DASH)

将m3u8 (HLS)转换为mpd (MPEG-DASH)
EN

Stack Overflow用户
提问于 2018-04-12 08:44:48
回答 1查看 6.4K关注 0票数 2

我有HLS 3.stream/playlist.m3u8]的实时流,我想把它转换成MPEG-破折号.

什么是最佳做法?

流已经是h264 aac,因此我知道我不需要重新编码,我只需要转换。

我该用什么?芬伯?mp4box?

备注:

  1. 根据本教程,我使用nginx- RTMP -模块(https://github.com/ut0mt8/nginx-rtmp-module/)来从rtmp流创建破折号:https://isrv.pw/html5-live-streaming-with-mpeg-dash但是nginx模块可以作为输入只获得rtmp流,并且它对我不适用于HLS流。
  2. 我使用ffmpeg来创建来自m3u8的破折号,如下所示: ffmpeg -i https://82-80-192-30.vidnt.com/ipbc_IPBCchannel11LVMRepeat/_definst_/IPBCchannel11LVM_3.stream/playlist.m3u8 -strict -2 -min_seg_duration 2000 -window_size 5 -extra_window_size 5 -use_template 1 -use_timeline 1 -f dash out.mpd

但这是非常有限的。我无法控制片段的持续时间。ffmpeg的min_seg_duration参数对我来说不是很好,它还可以设置最小持续时间,而我希望限制每个段的最大持续时间(段出为10秒,而我需要它在现场播放时是2-4秒)。

EN

回答 1

Stack Overflow用户

发布于 2018-04-24 17:32:28

首先,值得说的是,如果你能避免这样做,你将为自己节省大量的工作!

现在大多数设备和客户端都可以同时播放HLS和DASH流,因此通常的方法是在应用程序或客户端中添加所需的任何额外功能。

如果您确实必须转换服务器端,那么值得注意的是,尽管过去HLS流通常使用TS段,但最近在HLS生态系统中已经出现了对分段MP4的支持。

如果您有TS视频流,那么您将需要按照上面用ffmpeg概述的路线进行转换。

如果您有分段的MP4,那么您应该已经有了正确的格式,并且可能会发现您只需要创建清单文件,这样DASH就可以访问分段的mp4流。

以上所有这些假设您的内容没有加密,或者您不需要支持加密--如果是的话,您可能无法转换媒体,或者您可能还必须对某些流进行不同的加密,因为当前部署的大多数windows和铬设备和浏览器使用的加密方法与Apple设备略有不同(一种不同的AES模式)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49791927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档