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

在 ubuntu server 14 安裝流程css

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

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

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

mkdir ~/nginx
cd ~/nginx

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

wget http://nginx.org/download/nginx-1.9.9.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

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

sudo apt-get install unzip

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

tar -zxvf nginx-1.9.9.tar.gz
unzip master.zip

6. 切換到 nginx-目錄服務器

cd nginx-1.9.9

7.添加 nginx-rtmp 模板編譯到 nginxapp

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

8.編譯安裝 less

make
sudo make install

9. 安裝nginx init 腳本ide

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的視頻播放。

<!DOCTYPE html>
<html>
<head>
  <title>Video.js | HTML5 Video Player</title>

  <!-- Chang URLs to wherever Video.js files will be hosted -->
  <link href="video-js.css" rel="stylesheet" type="text/css">
  <!-- video.js must be in the <head> for older IEs to work. -->
  <script src="video.js"></script>

  <!-- Unless using the CDN hosted version, update the URL to the Flash SWF -->
  <script>
    videojs.options.flash.swf = "video-js.swf";
  </script>
</head>
<body>
  <video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"
      poster="oceans-clip.png"
      data-setup="{}">
   <source src="rtmp://e.5iwf.cn:1935/myapp/video5" type="rtmp/flv">
    <!-- 若是上面的rtmp流沒法播放,就播放hls流 -->
    <source src="http://e.5iwf.cn:9999/hls/video5.m3u8" type='application/x-mpegURL'>
  </video>
</body>
</html>
相關文章
相關標籤/搜索