最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用nginx與ffmpeg搭建流媒體服務(wù)器過程詳解

 更新時間:2017年03月04日 10:17:53   作者:LoyaChen  
這篇文章主要給大家介紹了利用nginx與ffmpeg搭建流媒體服務(wù)器的全過程,文中介紹的很詳細(xì),對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。

需求

本文介紹的是利用nginx和ffmpeg搭建流媒體服務(wù)器的過程。例如這種場景:公司內(nèi)部需要同時觀看在線直播時,如果每個人直接觀看必然給出口帶寬帶來壓力,影響正常訪問外網(wǎng)的同事。所以可以在內(nèi)網(wǎng)通過nginx+ffmpeg拉一路直播流,然后內(nèi)網(wǎng)的用戶訪問內(nèi)網(wǎng)的這臺流媒體服務(wù)器即可。通過nginx+ffmpeg還可以實(shí)現(xiàn)推流、拉流、轉(zhuǎn)推甚至利用FFmpeg實(shí)時切片、視頻處理等,實(shí)現(xiàn)一套直播服務(wù)模型。

環(huán)境

系統(tǒng)環(huán)境:CentOS release 6.7 (Final)

步驟

安裝ffmpeg

安裝過程參考官方文檔:https://trac.ffmpeg.org/wiki/CompilationGuide

安裝Nginx

這里采用了編譯安裝的方式,需要注意的是:一定要添加nginx-rtmp-module模塊

git clone https://github.com/arut/nginx-rtmp-module.git
#編譯的時候添加nginx-rtmp-module模塊
--add-module=path_of_/nginx-rtmp-module

我的nginx編譯參數(shù)

./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre=/opt/software/pcre-8.35 --with-zlib=/opt/software/zlib-1.2.8 --with-openssl=/opt/software/openssl-1.0.1i --add-module=/opt/software/nginx-1.8.1/modules/nginx-rtmp-module

修改nginx配置文件nginx.conf

user nginx;
worker_processes 2;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid  logs/nginx.pid;
events {
 use epoll;
 worker_connections 1024;
}
#切換自動推送(多 worker 直播流)模式。默認(rèn)為 off
rtmp_auto_push on;
#當(dāng) worker 被干掉時設(shè)置自動推送連接超時時間。默認(rèn)為 100 毫秒
rtmp_auto_push_reconnect 1s;
rtmp { 
 server { 
  listen 1935; 
  
  #直播流配置
  application myapp { 
   live on; 
  } 
 
  # hls切片
  application hls { 
   live on; 
   hls on; 
   hls_path /tmp/hls; 
  } 
 
  # 拉流
  application qiniu {
   live on;
   push rtmp://拉流地址;
  }
 
  # 轉(zhuǎn)推
  application pull {
   live on;
   pull rtmp://轉(zhuǎn)推地址;
  }
  
  # rtmp日志設(shè)置
  access_log logs/rtmp_access.log ;
 } 
}
http {
 include  mime.types;
 default_type application/octet-stream;
 
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';
      
 access_log logs/access.log main;
 
 sendfile  on;
 #tcp_nopush  on;
 keepalive_timeout 65;
 gzip on;
 
 server {
  listen  80;
  server_name localhost;
  charset utf-8;
  access_log logs/host.access.log main;
  
  location /stat {
  rtmp_stat all;
   rtmp_stat_stylesheet stat.xsl;
  }
  
  location /stat.xsl {
   root /opt/software/nginx-rtmp-module/;
  }
  
  location / {
   root /opt/www/html;
   index index.html index.htm;
  }
  
  location /hls { 
   types { 
    application/vnd.apple.mpegurl m3u8; 
    video/mp2t ts; 
   } 
   root /tmp; 
   add_header Cache-Control no-cache; 
  } 
  
  #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;
  }
 }
include vhosts/*.conf;
}

這是一個較簡單的配置, rtmp監(jiān)聽1935端口,如果是hls的話用hls on開啟hls,并且為hls設(shè)置一個臨時文件目錄hls_path /tmp/hls; 其它更高級的配置可以參看nginx-rtmp-module的readme,里面有比較詳細(xì)的介紹其它的配置。

重啟Nginx

nginx -t
nginx -s reload

查看Nginx已監(jiān)聽1935端口。

使用ffmpeg推流到nginx

推一個本地的mp4到上面配置的myapp上:

ffmpeg -re -i /tmp/ffmpeg_test.mp4 -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/myapp/test1"

流播放地址為(10.0.0.6是我本地的IP):rtmp://10.0.0.6:1935/myapp/test1

推一個本地的mp4到hls上:

ffmpeg -re -i /tmp/ffmpeg_test.mp4 -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/hls/test2"

流播放地址為: http://10.0.0.6/hls/test2.m3u8

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對腳本之家的支持。

相關(guān)文章

  • Nginx下無法使用中文URL的解決方法

    Nginx下無法使用中文URL的解決方法

    最近發(fā)現(xiàn)有很多的url打不開,后來仔細(xì)觀察后發(fā)現(xiàn)是中文url的問題,所以這篇文章主要給大家介紹了Nginx下無法使用中文URL的解決方法,文中提供了兩種方法供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-05-05
  • 詳解使用ChatGPT解決Nginx反向代理的問題

    詳解使用ChatGPT解決Nginx反向代理的問題

    這篇文章主要為大家介紹了使用ChatGPT解決Nginx反向代理的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Nginx實(shí)現(xiàn)http自動跳轉(zhuǎn)到https

    Nginx實(shí)現(xiàn)http自動跳轉(zhuǎn)到https

    本文主要介紹了Nginx實(shí)現(xiàn)http自動跳轉(zhuǎn)到https,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Nginx訪問慢問題解決辦法(慢1s)

    Nginx訪問慢問題解決辦法(慢1s)

    這篇文章主要給大家介紹了關(guān)于Nginx訪問慢問題解決辦法的相關(guān)資料,訪問速度對網(wǎng)站是極為關(guān)鍵的因素,而服務(wù)器對其影響最為深遠(yuǎn),需要的朋友可以參考下
    2023-08-08
  • Nginx解決history模式下頁面刷新404問題示例

    Nginx解決history模式下頁面刷新404問題示例

    這篇文章主要為大家介紹了Nginx解決history模式下頁面刷新404問題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Nginx中upstream模塊的具體用法

    Nginx中upstream模塊的具體用法

    本文主要介紹了Nginx中upstream模塊的具體用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • nginx 代理域名到另外一個域名的實(shí)現(xiàn)方法

    nginx 代理域名到另外一個域名的實(shí)現(xiàn)方法

    本文主要介紹了nginx 代理域名到另外一個域名的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 使用nginx搭建creates.io鏡像的教程詳解

    使用nginx搭建creates.io鏡像的教程詳解

    在Rust開發(fā)中,經(jīng)常需要使用Cargo從crates.io下載依賴,而國內(nèi)幾乎沒有好用的crates.io鏡像,使用本文就來使用使用nginx搭建creates.io鏡像吧
    2023-12-12
  • Nginx修復(fù)CORS漏洞的實(shí)現(xiàn)方法

    Nginx修復(fù)CORS漏洞的實(shí)現(xiàn)方法

    本文主要介紹了CORS不安全配置漏洞的修復(fù)方法,通過修改Nginx配置,將Access-Control-Allow-Origin設(shè)置為正確的域名,以防止跨域資源共享時的隱私泄露風(fēng)險(xiǎn)
    2024-11-11
  • nginx worker進(jìn)程循環(huán)的實(shí)現(xiàn)

    nginx worker進(jìn)程循環(huán)的實(shí)現(xiàn)

    這篇文章主要介紹了nginx worker進(jìn)程循環(huán)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論

运城市| 黄大仙区| 霞浦县| 雷山县| 巴林右旗| 吴江市| 巴南区| 阿坝县| 米泉市| 邯郸市| 二连浩特市| 乌兰县| 清水县| 河北区| 离岛区| 汉中市| 瑞丽市| 岳阳县| 高青县| 石楼县| 玛纳斯县| 通渭县| 永泰县| 航空| 遂宁市| 始兴县| 奉贤区| 宝清县| 南开区| 临沧市| 将乐县| 墨竹工卡县| 门头沟区| 平湖市| 买车| 乳山市| 咸丰县| 和平区| 太仆寺旗| 凯里市| 南通市|