HLS流:是否可以从PHP URL获取块

时间:2017-03-15 13:26:43

标签: php streaming playlist hls

我需要创建一个HLS播放列表,其中应包含PHP URL而不是块名称。在我看来,.m3u8播放列表应如下所示:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:4
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=0
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=1
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=2
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=3
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=4
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=5
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=6
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=7
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=8
#EXTINF:10,
http://localhost/hls/get.php?a=1&b=9
#EXT-X-ENDLIST

我有几个问题:
 1.它可以使它工作吗?
 2.我应该如何在get.php中组织文件发送?例如,如果我将读取本地文件,然后将其发送给请求者。

任何帮助和信息都会有用。

1 个答案:

答案 0 :(得分:1)

HLS的规范是使用" .ts"来提供媒体片段。延期。所有在那里的HLS玩家(Apple和第三方玩家)都支持这一点,因此这是确保成功的方法。

Apple dev页面上提到了这一点"部署HTTP直播流 - 配置Web服务器"
(见https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/HTTPStreamingArchitecture/HTTPStreamingArchitecture.html#//apple_ref/doc/uid/TP40008332-CH101-SW13):

分发系统是一个Web服务器或Web缓存系统,它通过HTTP将媒体文件和索引文件传递给客户端。传送内容不需要自定义服务器模块,并且Web服务器上通常只需要很少的配置。

推荐配置通常仅限于为.M3U8文件和.ts文件指定MIME类型关联

,特别是在" HTTP Streaming Architecture" (请参阅https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/HTTPStreamingArchitecture/HTTPStreamingArchitecture.html#//apple_ref/doc/uid/TP40008332-CH101-SW13)注意文件扩展名" .ts"获取MIME类型"视频/ MP2T"

但要回答你的问题,你至少需要拥有你的" .php"从您的Web服务器提供的文件,其MIME类型类似于" .ts"文件(所以"视频/ MP2T")否则我确定玩家会失败。然后,您应该使用Apple Media Stream验证器检查您的m3u8文件和您的PHP媒体段文件以进行测试,以确定它们是否可以与HLS客户端一起使用(从developer.apple.com获取)。如果Apple Media Stream验证器说您的流是好的,那么您可能会对您的非常规方法感到满意。

那么是什么阻止你使用" .ts"文件?