HLS,AWS弹性编码器和自适应流媒体

我目前正在使用主要使用AWS技术的简单的基于VOD浏览器的服务。 HLS将被用作流式协议,它由Elastic Transcoder支持。HLS,AWS弹性编码器和自适应流媒体

目前,源材料是720p(1280x720),这也是我想向所有可以处理它的设备展示的分辨率。我希望这些视频可以在台式机,iPad和大多数智能手机上使用。作为播放器,我正在使用ViBlast和videojs。

我有以下问题:

  • 的M3U8播放列表允许指定多个流。每个解决方案应该拥有自己的播放列表(不同比特率的不同源流),还是我可以将所有内容放在一个播放列表中(因此一个播放列表可以提供不同的分辨率和比特率)。
  • 似乎台式机和最新的平板电脑可以显示1280x720,我认为可以使用相同的播放列表。我只需要指定比特率。但是,手机的最佳分辨率是多少?似乎每个设备都有其他尺寸(在这里查看Android)。
  • 我应该为每个设备使用哪一比特率?我正在做一些研究,但似乎每篇文章对“最佳”设置都有不同的建议,但从未解释他们如何得到这些数字。
  • 如果我使用包含不同分辨率的不同来源的播放列表,播放列表中的顺序是否重要?我读过最低比特率应该首先列出的地方,但这是否也适用于分辨率?或者播放器是否自动选择最符合屏幕的流?

我正在寻找一个“足够好”的解决方案,以适应大多数设备。

回答:

希望这会有所帮助。

m3u8播放列表允许指定多个流。每个 分辨率是否都有自己的播放列表(不同比特率的不同码流),或者我可以将所有内容放在一个播放列表中(因此一个 播放列表可以提供不同的分辨率和比特率)。

作为参考,这里是苹果的'技术说明TN2224'在这个主题上,这是一个很好的指导下面的信息。 https://developer.apple.com/library/content/technotes/tn2224/_index.html

简答:每个分辨率应该有它自己的变体播放列表。

通常有一个主播放列表引用变体播放列表(aka renditions)。变体播放列表是同一视频的不同质量流,其比特率和分辨率各不相同。但是每个变体只包含一个比特率级别。样本主播放列表:

#EXTM3U 

#EXT-X-VERSION:3

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4648000,RESOLUTION=3840x2160

4648k/stream.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2670000,RESOLUTION=1920x1080

2670k/stream.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1823000,RESOLUTION=1280x720

1823k/stream.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=975000,RESOLUTION=854x480

975k/stream.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=491000,RESOLUTION=640x360

491k/stream.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=186000,RESOLUTION=256x144

186k/stream.m3u8

(TN2224) “的比特率在使用BANDWIDTH属性的EXT-X-STREAM-INF标签中指定”。并且每个下行带宽(比特率)级别都具有相应的较低分辨率,因为可用数据较少,通常预计可在较小的移动屏幕上查看。

似乎台式机和最新的平板电脑可以显示1280x720,我假设 可以使用相同的播放列表。我只需要指定比特率。 但是,手机的最佳分辨率是多少?似乎每个 设备有其他维度(在这里看Android)。

分辨率和比特率放在一起。以186K比特率编码的流(非常低)没有足够的数据填充1280x720屏幕。但是单元网络上的移动设备可能无法下载高比特率。所以你需要几个变体选项,每个都有适当的分辨率和比特率。

不要专注于特定的设备,否则你永远不会完成。使用常见的16:9宽高比构建比特率/分辨率变体的阶梯。例如。 1280x720,1024x576,640x360,...

虽然有几件事情需要考虑。比特率,你已经在考虑分辨率。但是这些视频是使用H.264编码的吗?如果是这样,你应该考虑简介水平。这里有一篇关于这个话题的好文章:http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=94216&PageNum=1。

我应该使用哪种码率为每个设备?我正在做一些研究, ,但它似乎每篇文章都有不同的建议,为 “最佳”设置,但从来没有解释他们如何得到这些数字。

与分辨率相同的答案。不要关注实际的设备。建立比特率/分辨率变体的梯子,其允许设备来选择最合适的基于可用带宽,电池寿命,处理能力等

如果使用含有具有不同分辨率 不同来源的播放列表,播放列表中的顺序是否重要?我已阅读 某处最低比特率应该首先列出,但是这种 也适用于分辨率?或者播放器是否自动选取最符合屏幕的 流?

每个发布商或制造商都可能以不同的方式构建他们的播放器。但这是苹果在TN2224推荐的。 “

”第一个比特率应该是大多数客户端可以承受的比特率 主播放列表中的第一个条目将在流初始化时播放,并用作测试的一部分以确定哪个流最适合。其他流的顺序是无关紧要的,因此,播放列表中的第一个比特率应该是大多数客户端可以承受的比特率。“

希望有所帮助。

Ian

以上是 HLS,AWS弹性编码器和自适应流媒体 的全部内容, 来源链接: utcz.com/qa/259783.html

回到顶部