windows 下 hls 的點播和直播

Apple的動態碼率自適應技術。主要用於PC和Apple終端的音視頻服務。包括一個m3u(8)的索引文件,TS媒體分片文件和key加密串文件(可選)。

經常使用的流媒體協議主要有 HTTP 漸進下載和基於 RTSP/RTP 的實時流媒體協議,這兩種基本是徹底不一樣的東西,目前比較方便又好用的是用 HTTP 漸進下載方法。在這個中 apple 公司的 HTTP Live Streaming 是這個方面的表明。它最初是蘋果公司針對iPhone、iPod、iTouch和iPad等移動設備而開發的流.如今見到在桌面也有不少應用了,HTML5 是直接支持這個。 html

這裏介紹hls協議的點播和直播。環境爲windows7系統,使用nginx搭建http服務器,使用ffmpeg處理視頻和流,使用VLC軟件發出流,使用iphone5手機觀看直播視頻。 nginx

工做流程

點播:準備好視頻文件MP4,使用ffmpeg將其轉成TS格式文件,而後繼續使用ffmpeg將其切片並生成播放列表M3U8文件,將所得TS分片與M3U8文件放到nginx服務器目錄下,開啓http服務器後,同一局域網內用手機輸入網絡地址可查看點播視頻。 
直播:使用VLC軟件將視頻以UDP流的形式發出,使用ffmpeg接收這個UDP流並實時切割到http服務器下,開啓服務器後,同一局域網內用手機輸入網絡地址可查看直播視頻。 windows

環境搭建

使用nginx搭建http服務器

官網下載windows版Nginx 
打開配置文件nginx\conf\mime.types,爲了支持hls協議,須要修改內容: 瀏覽器

在 application/zip zip; 這一行後面增長2行: 
application/x-mpegURL m3u8; 
application/vnd.apple.mpegurl m3u8; 服務器

在 video/x-msvideo avi;行後,增長1行: 
video/MP2T ts; 網絡

具體操做

點播:

(1)開啓http服務器:雙擊nginx.exe 
(2)使用ffmpeg將mp4格式文件轉成TS格式文件: app

ffmpeg -y -i input.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output.ts iphone

(3)使用ffmpeg將TS文件切成ts分片併產生m3u8文件: ide

ffmpeg -i file.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 2 output%03d.ts 加密

(4)將所得的ts分片和m3u8文件放到nginx\html 目錄下 
(5)手機瀏覽器輸入[ http://192.168.1.110:80/playlist.m3u8 ]便可看到點播視頻 
注:192.168.1.110是本機的局域網ip,也即http服務器的ip

直播:

(1)開啓http服務器:雙擊nginx.exe 
(2)將視頻以udp流的形式從vlc上發出來(具體方法請自查) 
(3)使用ffmpeg接收udp流並自動實時切片到http服務器下:

ffmpeg -i udp://127.0.0.1:1234 -c copy -f hls -hls_time 2.0 -hls_list_size 5 -hls_wrap 5 G:\nginx\html\test.m3u8

(4)手機瀏覽器輸入[ http://192.168.1.110:80/playlist.m3u8 ]便可看到直播視頻

相關文章
相關標籤/搜索