HTML5 视频标签可以播放 m3u 文件吗?
Can a HTML5 video tag play m3u files?
我正在使用 HTML5 视频标签实现视频播放器。我收到的视频资产由 Brightcove 托管和交付,它是一个 m3u 文件。是否可以通过 HTML5 视频标签播放此视频?
我认为从 Brighcove 服务器生成的 m3u 文件被设置为支持自适应比特率流。我已经尝试使用母版(其中包含每个演绎版的详细信息)和每个单独的演绎版文件的 m3u 文件。
但是我的视频标签没有任何反应。控制台中没有任何错误,尽管我有点认为会有。我正在使用 Chrome,我在其他地方看到它支持 m3u 播放?
在您的回答中请注意,我对 HTML5 播放完全陌生 - 尤其是 m3u 文件。
这是我的示例代码:
<video controls autoplay="true">
<source src="http://brightcove.com/example/master.m3u?videoid=1234">
</video>
生成的 m3u 文件的内容如下所示(已删除敏感数据):
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=716000,RESOLUTION=336x184
https://brightcove.com/services/rendition.m3u8?assetId=123456
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1325000,RESOLUTION=504x276
https://brightcove.com/services/rendition.m3u8?assetId=123456
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1797000,RESOLUTION=720x394
https://brightcove.com/services/rendition.m3u8?assetId=123456
然后每个演绎的内容看起来像这样:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
etc...
m3u 文件基本上是文本文件:特殊格式的播放列表,其中包含对媒体文件的引用。因此,首先,这取决于包含的媒体文件的类型;但其次,video 元素不适用于播放列表,而仅用于播放单个媒体文件。当前,video
元素支持 3 种格式:mp4、WebM 和 ogg。但是,m3u 文件更适合 audio 播放列表。 HTML5 <audio>
元素目前支持 mp3、ogg 和 wav 文件。不过,这取决于所使用的特定浏览器(通常,您至少需要提供 mp3 和 ogg 文件供浏览器选择)。
回到问题:video
或 audio
元素不支持 m3u。
我正在使用 HTML5 视频标签实现视频播放器。我收到的视频资产由 Brightcove 托管和交付,它是一个 m3u 文件。是否可以通过 HTML5 视频标签播放此视频?
我认为从 Brighcove 服务器生成的 m3u 文件被设置为支持自适应比特率流。我已经尝试使用母版(其中包含每个演绎版的详细信息)和每个单独的演绎版文件的 m3u 文件。
但是我的视频标签没有任何反应。控制台中没有任何错误,尽管我有点认为会有。我正在使用 Chrome,我在其他地方看到它支持 m3u 播放?
在您的回答中请注意,我对 HTML5 播放完全陌生 - 尤其是 m3u 文件。
这是我的示例代码:
<video controls autoplay="true">
<source src="http://brightcove.com/example/master.m3u?videoid=1234">
</video>
生成的 m3u 文件的内容如下所示(已删除敏感数据):
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=716000,RESOLUTION=336x184
https://brightcove.com/services/rendition.m3u8?assetId=123456
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1325000,RESOLUTION=504x276
https://brightcove.com/services/rendition.m3u8?assetId=123456
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1797000,RESOLUTION=720x394
https://brightcove.com/services/rendition.m3u8?assetId=123456
然后每个演绎的内容看起来像这样:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
#EXT-X-KEY:METHOD=AES-128,URI="https://brightcove.com/services/keyfile?assetId=123456
#EXTINF:11,
etc...
m3u 文件基本上是文本文件:特殊格式的播放列表,其中包含对媒体文件的引用。因此,首先,这取决于包含的媒体文件的类型;但其次,video 元素不适用于播放列表,而仅用于播放单个媒体文件。当前,video
元素支持 3 种格式:mp4、WebM 和 ogg。但是,m3u 文件更适合 audio 播放列表。 HTML5 <audio>
元素目前支持 mp3、ogg 和 wav 文件。不过,这取决于所使用的特定浏览器(通常,您至少需要提供 mp3 和 ogg 文件供浏览器选择)。
回到问题:video
或 audio
元素不支持 m3u。