我正在嘗試使用HTTP直播流式(HLS)將視頻傳輸到我的電腦和我的iPhone。在閱讀了Apple的'HTTP Live Streaming Overview'以及'爲iPhone和iPad創建和部署HTTP Live流媒體的最佳實踐'之後,我有點卡住了。使用HTML視頻標籤播放m3u8文件
我把我的源文件(MKV),並使用的ffmpeg該文件的MPEG-TS格式和蘋果推薦的設置和基線3.0配置文件編碼:
ffmpeg -i "example.mkv" -f mpegts -threads:v 4 -sws_flags bicubic -vf "scale=640:352,setdar=16/9,ass=sub.ass" -codec:v libx264 -r 29.970 -b:v 1200k -profile:v baseline -level:v 3.0 -movflags faststart -coder 1 -flags +loop -cmp chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 239 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -direct-pred 1 -fast-pskip 1 -af "aresample=48000" -codec:a libvo_aacenc -b:a 96k -ac 2 -y "output.ts"
不用擔心那裏。我使用pre-compiled segmenting tool來分割視頻並構建.m3u8播放列表。得到的文件是這樣的:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://localhost/media/stream/stream-1.ts
#EXTINF:10,
http://localhost/media/stream/stream-2.ts
#EXTINF:10,
http://localhost/media/stream/stream-3.ts
#EXT-X-ENDLIST
我檢查,對一些Example Playlist Files for use with HTTP Live Streaming,我看不出有什麼問題。我也嘗試在VLC中播放.m3u8文件,它像一個魅力。
我創建一個HTML頁面來播放該文件:
<html lang="en">
<head>
<meta charset=utf-8/>
</head>
<body>
<div id='player'>
<video width="352" height="288" src="stream.m3u8" controls autoplay>
</video>
</div>
</body>
</html>
而這個頁面不會在Chrome,Safari瀏覽器的工作,在我的iPhone。 w3schools上的html5視頻標籤示例在我的電腦上運行良好,上面提到的官方Apple概述給出了一個與我的頁面非常相似的HTML示例。不過,當我訪問我自己的.m3u8頁面時,我的視頻播放器完全沒有反應。
你可以顯示mediastreamvalidator工具的輸出嗎? – vipw
感謝您的回覆!不幸的是,我還沒有分出現金來成爲一個「真正的」蘋果開發者,所以我沒有那個特定的工具。我一直在尋找一個可能的替代品,但沒有多大成功。任何建議你可以在這方面給予歡迎! – drucifer
也許你可以把文件放在公共網絡服務器上。如果您需要免費的網絡服務器,您可以使用微型Amazon EC2實例。然後有人可以使用更多的工具來看看。 其實,這讓我想知道你的web服務器返回的MIME類型......看看這可能有所幫助:http://stackoverflow.com/questions/6438680/http-live-streaming-not-working-on- apache/15696465 – vipw