当段的名称需要添加访问签名时,如何播放HLS流

时间:2017-08-22 13:55:13

标签: azure signature hls m3u8

我正在开发一个播放HLS流的媒体播放器APP。我们的视频片段存储在Azure Blob存储中。现在可以播放像

这样的HLS链接

https://myazure.blob.com/folder/info.m3u8

但问题是我们希望为所有视频容器及其段添加共享访问签名(SAS)以保护它们免受公共访问,因此在访问段时,https链接需要包含SAS。例如,在播放名为“out0000.mp4”的片段时,链接应该类似于

https://myazure.blob.com/folder/out0000.mp4?sv=2016-05-31&sr=c&si=SignaturePublicb0&sig=pUKa1i%2F9GdjAj1VhLe%2FVU5NBNig%3D

可以通过添加SAS来访问info.m3u8,

https://myazure.blob.com/folder/info.m3u8?sv=2016-05-31&sr=c&si=SignaturePublicb0&sig=pUKa1i%2F9GdjAj1VhLe%2FVU5NBNig%3D

但在info.m3u8中,格式类似于

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXTINF:5.100000,
out0000.mp4
#EXTINF:5.000000,
out0001.mp4
#EXTINF:5.000000,
out0002.mp4
#EXTINF:5.000000,
out0003.mp4
...

没有SAS跟随细分的名称。因此,玩家无法访问这些细分并进行游戏。

我不想更改info.m3u8以包含每个细分的SAS。有没有办法解决这个问题?有什么建议?感谢。

顺便说一句,我在Android中使用MediaPlayer,在iOS中使用AVPlayer。

0 个答案:

没有答案