天天看點

rtsp轉rtmp服務linux,ubuntu安裝流媒體伺服器(nginx+rtmp,rtsp轉rtmp,rtsp轉m3u8)

在 ubuntu server 14 安裝流程

1.先下載下傳安裝  nginx 和 nginx-rtmp 編譯依賴工具

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

2. 建立一個nginx目錄,并切換到nginx目錄

mkdir ~/nginx

cd ~/nginx

3. 下載下傳 nginx 和 nginx-rtmp源碼

wget http://nginx.org/download/nginx-1.9.9.tar.gz

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

4. 安裝unzip工具,解壓下載下傳的安裝包

sudo apt-get install unzip

5.解壓 nginx 和 nginx-rtmp安裝包

tar -zxvf nginx-1.9.9.tar.gz

unzip master.zip

6. 切換到 nginx-目錄

cd nginx-1.9.9

7.添加 nginx-rtmp 模闆編譯到 nginx

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

8.編譯安裝

make

sudo make install

9. 安裝nginx init 腳本

sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx

sudo chmod +x /etc/init.d/nginx

sudo update-rc.d nginx defaults

10. 啟動和停止nginx 服務,生成配置檔案

sudo service nginx start

sudo service nginx stop

11. 安裝 FFmpeg

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

sudo apt-get update

sudo apt-get install ffmpeg

12. 配置 nginx-rtmp 伺服器

打開 /usr/local/nginx/conf/nginx.conf

添加location

location /hls {

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

root ~/nginx/www;

expires -1;

add_header Cache-Control no-cache;

}

檔案末尾添加rtmp配置

rtmp {

server {

listen 1935;

publish_time_fix on;

application myapp {

live on; #stream on live allow

allow publish all; # control access privilege

allow play all; # control access privilege

}

application hls {

live on;

hls on; #這個參數把直播伺服器改造成實時回放伺服器。

hls_path ~/nginx/www/hls;        #切片視訊檔案存放位置。

wait_key on; #對視訊切片進行保護,這樣就不會産生馬賽克了。

hls_fragment 10s; #每個視訊切片的時長。

hls_playlist_length 60s; #總共可以回看的事件,這裡設定的是1分鐘。

hls_continuous on; #連續模式。

hls_cleanup on; #對多餘的切片進行删除。

hls_nested on; #嵌套模式。

}

}

}

13. 儲存上面配置檔案,然後重新啟動nginx服務

sudo service nginx restart

14. ffmpeg将rtsp轉碼為rtmp

(後面的rtmp在其他地方的通路位址為:rtmp://ip:1935/myapp/stream-name,可用VLC media player打開)

ffmpeg -i "rtsp://xxxx" -f flv -r 15 -s 1280x960 -an "rtmp://localhost:1935/myapp/stream-name"

15. ffmpeg将rtsp轉碼為m3u8:

(m3u8的通路位址為:http://ip:port/hls/stream-name.m3u8,port為nginx的通路端口号)

ffmpeg -i "rtsp://xxxx" -strict -2 -c:v libx264 -c:a aac -f hls ~/nginx/www/hls/stream-name.m3u8

16. html中使用video.js通路流媒體伺服器:

國人處理好的videojs包為:http://pan.baidu.com/s/1kVuU3PX,此包已經支援IE8的視訊播放。

Video.js | HTML5 Video Player

videojs.options.flash.swf = "video-js.swf";

poster="oceans-clip.png"

data-setup="{}">