利用ffmpeg工具基於nginx-rtmp-module模塊搭建HLS


FFMPEG:A complete, cross-platform solution to record, convert and stream audio and video.

HLS:HTTP Live Streaming Apple 動態碼率自適應技術,主要用於PC和Apple端的音視頻服務.包括一個m3u(8)的索引文件,ts分片文件和key加密串文件.

Nginx: 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。

nginx-rtmp-module:基於nginx的媒體流服務模塊

1.ubuntu環境准備,sudo apt-get update && sudo apt-get install libpcre3 libpcre3-dev
2.下載nginx-rtmp-module模塊,sudo git clone https://github.com/arut/nginx-rtmp-module.git
3.安裝nginx-rtmp-module模塊
  sudo ./configure --add-module=/home/liangf/nginx-rtmp-module --with-http_ssl_module

  sudo make

       sudo make install 
4.配置nginx的conf文件(nginx.conf),增加rtmp模塊配置及hls Server,所增加的主要內容如下:
#=============================================================================
#nginx-rtmp-module config 該模塊配置於http模塊同級
rtmp {
  server {
    listen 1935;
    chunk_size 4000;
    application hls {
      live on;
      hls on;
      hls_path /path/to/hls/m3u8;
      hls_fragment 5s;
    }
  }
}
#=============================================================================
#rtsp server 該配置為http模塊下的服務,可獨立創建實例server,亦可放置於某個server配置中,注意區別
#rtsp server
server { #所為實例配置時需要
  listen 7010;#所為實例配置時需要
  server_name localhost;#所為實例配置時需要
  #hls server path
  location /hls {
    #Server HLS fragements
    types {
      application/vnd.apple.mpegurl m3u8;
      video/mp2t ts;
    }
    alias /path/to/hls/m3u8/;
    add_header Cache-Control no-cache;
  }
}

5.通過ffmpeg工具推流,其中流有兩種類型的源頭:一類是已有文件(如mp4文件等);另一類是設備(攝像頭及麥克風采集)
  針對第一種方式:
  ffmpeg -re -i /path/to/hls/test.mp4 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/hls/real,該命令將在rtmp模塊所配置的路徑下生成real.m3u8文件.注:基於媒體文件,必須用re來標識native frame rate,來約定照播放的幀率.
  針對第二種方式:
  ffmpeg -f dshow -i video="USB2.0 Camera" -vcodec libx264 -pix_fmt yuv420p -f flv rtmp://localhost:1935/hls/real.注:dshow是基於windows上的,編碼用x264,圖像用420p.
6.客戶端訪問,兩種訪問方式:1)基於播放器(vcl)訪問:http://localhost:7010/hls/real.m3u8 ;2)基於h5網頁訪問:
<!DOCTYPE html>
<html>
<head>
<title>HLS Player</title>
</head>
<body>
  <video height="270" width="480" controls>
    <source src="http://server-ip-address:8080/hls/real.m3u8" type="application/vnd.apple.mpegurl" />
    <p class="warning">Your browser does not support HTML5 video.</p>
  </video>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM