日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

搭建nginx流媒体服务器(支持HLS)

發(fā)布時(shí)間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建nginx流媒体服务器(支持HLS) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境搭建

(一)下載源代碼

nginx,地址:http://nginx.org/可以選擇需要的版本下載

nginx_mod_h264_streaming-2.2.7.tar.gz ,支持MP4流,具體的說(shuō)明在下面的這個(gè)網(wǎng)頁(yè)

http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Nginx-Version2

m3u8-segmenter: HLS分片工具 ,下載地址,https://github.com/johnf/m3u8-segmenter

ffmpeg:媒體編解碼工具,這里做為HLS 直播流的發(fā)布工具

(二)安裝nginx

tar -zxvf?nginx_mod_h264_streaming-2.2.7.tar.gz

tar -zxvf nginx-1.4.4.tar.gz

cd nginx-1.4.4

./configure ?--prefix=/usr/local/nginx-stream --with-debug ?--with-http_dav_module??--with-http_gzip_static_module ?--with-http_ssl_module ? --with-ipv6?--with-sha1=/usr/include/openssl??--with-md5=/usr/include/openssl ?--add-module=../nginx_mod_h264_streaming-2.2.7??--with-http_flv_module ?--with-http_mp4_module

如果沒(méi)有出現(xiàn)錯(cuò)誤

make

如果出現(xiàn)錯(cuò)誤類似:‘ngx_http_request_t’?沒(méi)有名為?‘zero_in_uri’?的成員,則進(jìn)入?nginx_mod_h264_streaming-2.2.7目錄,進(jìn)入src,修改?ngx_http_streaming_module.c,注釋掉 TODO window32 模塊下的:

if (r->zero_in_uri)?{

return NGX_DECLINED;

}

然后make clean之后重新configure和make

如果出現(xiàn)錯(cuò)誤類似:[objs/addon/src/mp4_reader.o]..進(jìn)入nginx源碼中的obis目錄,修改Makefile,刪除 --wrror

然后重新編譯make

編譯通過(guò)后

sudo make install

(三)安裝?m3u8-segmenter,這個(gè)在下載地址中有安裝步驟。

(四)安裝ffmpeg,在本博客其它日志中有安裝方式。

?

配置

?在server模塊下加入以下內(nèi)容:

?location /hls {

alias /usr/local/media/hls;

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

add_header Cache-Control no-cache;

expires -1;

}

location ~* \.flv$ {

flv;

root /usr/local/media/flv;

}

location ~* \.mp4$ {

mp4;

root /usr/local/media/mp4;

}

然后保存退出,啟動(dòng)nginx服務(wù)器

?

點(diǎn)播flv,mp4視頻

在FLV和MP4的根目錄(usr/local/media/flv,/usr/local/media/mp4)分別放入測(cè)試視頻test.flv和test.mp4

使用ffmpeg中的播放器ffplay測(cè)試,

ffplay http://ip:port/test.flv

ffplay http://ip:port/test.mp4

?

HLS 點(diǎn)播?

使用m3u8-segmenter把視頻切成一系列TS文件同時(shí)生成后綴為m3u8的播放列表,視頻編碼需為H264/AAC 或者H264/MP3。

進(jìn)入??/usr/local/media/hls,放入測(cè)試文件test.ts,然后使用以下命令分割,

m3u8-segmenter -i testvod.ts -d 10 -p test -m testvod.m3u8 -u http://ip:port/hls/

?-i ,輸入文件

-d ,每個(gè)分片的時(shí)長(zhǎng)

-p ,每個(gè)分片的名稱的前綴

-m ,播放列表名稱

-u ,播放列表中url前綴

使用ffplay測(cè)試:

ffplay http://ip:port/hls/test.m3u8

?

HLS直播

使用ffmpeg發(fā)布直播流,這里沒(méi)有用設(shè)備抓取視頻,使用ffmpe 的-re選項(xiàng)來(lái)模擬直播流,re表示依照輸入視頻的幀率

ffmpeg -re -i test.ts -codec copy -hls_time 10 testlive.m3u8

使用ffplay測(cè)試

ffplay http://ip:port/hls/testlive.m3u8

?

注:mp4轉(zhuǎn)ts ,ffmpeg -i test.mp4 -codec copy -vbsf h264_mp4toannexb test.ts

? ? ? ? hls協(xié)議支持自適應(yīng)碼率,可以使用播放列表的嵌套,nginx-rtmp-module對(duì)hls有類似的一些支持

總結(jié)

以上是生活随笔為你收集整理的搭建nginx流媒体服务器(支持HLS)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。