Mac上搭建直播服務(wù)器 Nginx+HLS
HLS(HTTP Live Streaming)是一個由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。是蘋果公司QuickTime X和iPhone軟件系統(tǒng)的一部分舔稀。它的工作原理是把整個流分成一個個小的基于HTTP的文件來下載,每次只下載一些屠升。當媒體流正在播放時谒所,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源徙菠,允許流媒體會話適應(yīng)不同的數(shù)據(jù)速率缨称。在開始一個流媒體會話時凝果,客戶端會下載一個包含元數(shù)據(jù)的extended M3U (m3u8) playlist文件,用于尋找可用的媒體流睦尽。
Mac 直播服務(wù)器 Nginx+rtmp 見上文Mac上搭建直播服務(wù)器 Nginx+rtmp
下面需要對Nginx服務(wù)器增加對HLS的支持器净。在Nginx增加對HLS支持,修改下配置文件nginx.conf
找到http-->server,在花括號中增加
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#HLS配置開始,這個配置為了`客戶端`能夠以http協(xié)議獲取HLS的拉流
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
add_header Cache-Control no-cache;
}
#HLS配置結(jié)束
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
找到rtmp下的server在花括號中增加
#在http節(jié)點下面(也就是文件的尾部)加上rtmp配置:
rtmp {
server {
listen 1935;
application zbcs {
live on;
record off;
}
#增加對HLS支持開始
application hls {
live on;
hls on;
hls_path /usr/local/var/www/hls;
hls_fragment 5s;
}
#增加對HLS支持結(jié)束
}
}
- live on; 開啟實時
- hls on; 開啟hls
- hls_path; ts文件存放路徑
- hls_fragment 5s; 每個TS文件包含5秒的視頻內(nèi)容
保存配置文件,重新加載nginx配置
$ nginx -s reload
通過ffmepg命令進行推流
ffmpeg推流還是和上一篇的一樣骂删,不過掌动,我們需要推到新配置的hls中,room 關(guān)鍵字可以任何替換
$ ffmpeg -re -i /Users/caolongjian/Desktop/CCVideo.mp4 -vcodec copy -f flv rtmp://localhost:1935/hls/room
然后宁玫,我們在就可以在這個目錄下(這個也是Nginx下html默認配置文件)/usr/local/var/www/hls
看到生成一個個ts的文件粗恢,還會生成一個”你的m3u8的文件名稱.m3u8“的文件
測試拉流
通過上面的配置,我們可以同時通過rtmp和hls兩種播放方式來看到推出來的流欧瘪。注意眷射,如果使用 http 方式,則是監(jiān)聽的 8080 端口佛掖,這個是在配置文件里寫的
(1) 用rtmp (使用VLC驗證播放)
rtmp://localhost/hls/movie
(2) 用hls(播放使用VLC驗證播放)
http://localhost:8080/hls/room.m3u8
(3)我們還可以在Safari瀏覽器里輸入上面的地址直接播放http://localhost:8080/hls/room.m3u8
參考
[toc]