2017-09-08 66 views
0

大家好!如何從iOS設備設置HLS實時視頻流

因此,正如標題所示,我正在開發一個具有類似功能的應用程序潛望鏡和Facebook實時視頻流。這是最終的目標是什麼:

  • 廣播設備[用戶]
  • EC2實例[主辦的ffmpeg的轉碼器]
  • 的Cloudfront分佈狀態[CDN]
  • 1到活飼料的n個觀衆

我已經做了很多谷歌搜索和我似乎要弄清楚的是:

當您從廣播公司向服務器發送大塊視頻時,如果您尚未擁有所有視頻塊,您將如何創建 .m3u8播放列表(例如,如何創建 .m3u8播放列表)。 設備發送其第一個5秒的視頻)?

這似乎是一個.m3u8文件從.MP4文件已經完成創建,然後分解成塊......但我發送視頻服務器的塊,怎麼能產生.m3u8文件,當更多的塊仍然來自廣播公司,所以觀衆/客戶可以連續縫合視頻塊?

我很樂意進一步澄清這個問題。謝謝!

+0

[this GitHub](https://gist.github.com/RLovelett/6791bde80575fc412983)鏈接幫助嗎? – ProgrammingEnthusiast

+0

@ProgrammingEnthusiast謝謝,但我已經看到了這個鏈接。該過程分解了一個已經完成的.mp4文件......但由於這將是一個實時流,所以mp4文件將在5秒內完成。感謝壽! – Sean

回答

0

如果您查看segment muxer的文檔,您可以指定要輸出的m3u8,並且還可以告訴它在更新m3u8時將其更新。它可能是這個樣子:

ffmpeg -i infile.mp4 -c:v copy -c:a copy -map 0 -f ssegment -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags +live -segment_time 4 outchunk%07d.ts 

注意segment_list_size是在同一時間在M3U8文件中引用塊的最大數量和segment_list_flags告訴FFmpeg這個實時流。

0

我認爲你的困惑是你試圖發送HLS碎片到他們的服務器。別。通過另一種協議(如RTPM)發送流。然後讓服務器轉換爲HLS。