Http Live Streaming for iPhone以及为什么我们使用.m3u8文件

我已经做了所有这一切,我也做了.ts和m3u8文件。 在本地服务器和现场服务器,我可以播放MP4文件

<video width="320" height="240" controls="controls" autoplay="autoplay"> <source src="movie.mp4" type="video/mp4" /> </object> </video> 

但我有问题,播放.m3u8文件

  <video width="320" height="240" controls="controls" autoplay="autoplay"> <source src="movie.m3u8" type="video/m3u8" /> </object> </video> 

我的mediafilesegmenter创build了两个.ts文件和一个.m3u8。 我的m3u8文件是

  #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:4 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-PLAYLIST-TYPE:VOD #EXT-XI-FRAMES-ONLY #EXTINF:1.0117, #EXT-X-BYTERANGE:8084@376 fileSequence0.ts #EXTINF:1.0117, #EXT-X-BYTERANGE:7332@36096 and so on.... 

那么在mime.types中是否有任何问题,因为我在mime.types中写了所有的混淆,

  application/x-mpegURL m3u8 video/MP2T ts AddType appliction/x-mpegURL m3u8 AddType video/MP2T ts #application/x-mpegURL m3u8 #video/MP2T ts application/x-mpegURL.m3u8 video/MP2T.ts #application/x-mpegURL.m3u8 #video/MP2T.ts #AddType application/x-mpegURL m3u8 #AddType video/MP2T ts #AddType application/x-mpegURL.m3u8 #AddType video/MP2T.ts AddType application/x-mpegURL.m3u8 AddType video/MP2T.ts 

我不能在VLC中播放.m3u8文件,并得到了错误的链接

只要你的conf是

 AddType application/x-mpegURL .m3u8 AddType video/MP2T .ts 

它应该为Apache工作。 我不知道这是你的.ts或.m3u8问题,所以我build议如下:

  • 从Apple下载示例.ts和.m3u8文件并在您的服务器上testing它们
  • 检查索引文件中是否有空行,就像这个问题一样

video标签源typesvideo/m3u8在iOS平台上无效。 我build议你简单地省略声明source属性,这是不需要的。

如果你真的想指定源types,即允许不兼容的客户端select另一个源,我已经发现audio/x-mpegurl工作。

您正在使用的m3u8只是为了寻找而生成的。 请参阅此处所述的EXT-XI-FRAMES-ONLY : https : //developer.apple.com/library/ios/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-I_FRAME_PLAYLIST