使用nginx-rtmp搭建視訊直播伺服器
安裝nginx前需要幾樣準備工作
第一個需要C++編譯器,在ubuntu下直接安裝g++即可
sudo apt-get install g++
然後,這個版本的nginx預設需要的是pcre和zlib和openssl,分別去這兩個官方網站下載最新的版本,我下載的是pcre-8.32.tar.gz,zlib-1.2.8.tar.gz,openssl-1.0.2h.tar.gz
tar -xzvf pcre-8.32.tar.gz
tar -xzvf zlib-1.2.8.tar.gz
tar -xzvf openssl-1.0.2h.tar.gz
我將這些包解壓在了/home/robert使用者目錄下,解壓在哪裡無所謂
/home/robert/pcre-8.32
/home/robert/zlib-1.2.8
/home/robert/openssl-1.0.2h
然後解壓nginx, 解壓在了/home/robert使用者目錄下
tar -xzvf nginx-1.10.1.tar.gz
/home/robert/nginx
解壓完後進入解壓出來的目錄
cd /home/robert/nginx
非常重要的rtmp模組:nginx-rtmp-module,使用github下載:
git clone https://github.com/arut/nginx-rtmp-module.git
然後執行configure, 這是比較重要的一步
sudo ./configure --prefix=/usr/local/nginx --add-module=/home/robert/nginx-rtmp-module --with-pcre=/home/robert/pcre-8.32 --with-openssl=/home/robert/openssl-1.0.2h --with-zlib=/home/robert/zlib-1.2.8
prefix指定nginx安裝的目錄,後面兩個是前面的兩個模組,如果不需要安裝這兩個模組可以用–without-http_rewrite_module和–without-http_gzip_module
然後就是執行make和make install,如果沒有報錯的話nginx就安裝完成了
sudo make
sudo make install
看一下/usr/local/nginx目錄
[email protected]:/usr/local/nginx$ ll
total 48
drwxr-xr-x 12 root root 4096 6月 22 11:21 ./
drwxr-xr-x 11 root root 4096 6月 22 11:15 ../
drwx------ 2 nobody root 4096 6月 22 11:21 client_body_temp/
drwxr-xr-x 2 root root 4096 6月 22 17:43 conf/
drwxr-xr-x 2 root root 4096 6月 22 11:19 conf_bak/ <手動備份>
drwx------ 2 nobody root 4096 6月 22 11:21 fastcgi_temp/
drwxr-xr-x 2 root root 4096 6月 22 17:32 html/
drwxr-xr-x 2 root root 4096 6月 22 17:43 logs/
lrwxrwxrwx 1 root root 16 6月 22 11:17 nginx -> /user/sbin/nginx
drwx------ 2 nobody root 4096 6月 22 11:21 proxy_temp/
drwxr-xr-x 2 root root 4096 6月 22 11:15 sbin/
drwx------ 2 nobody root 4096 6月 22 11:21 scgi_temp/
drwx------ 2 nobody root 4096 6月 22 11:21 uwsgi_temp/
進入sbin目錄,執行nginx
sudo ./nginx 啟動nginx
檢視nginx程序
[email protected]:/usr/local/nginx$ ps aux | grep nginx
root 78775 0.0 0.1 32696 4848 ? Ss 6月22 0:00 nginx: master process sbin/nginx -c conf/nginx_rtmp.conf
nobody 78776 0.0 0.2 33256 7648 ? S 6月22 0:00 nginx: worker process
nobody 78777 0.0 0.2 32912 7244 ? S 6月22 0:00 nginx: cache manager process
robert 79477 0.0 0.0 21292 944 pts/9 S+ 09:54 0:00 grep --color=auto nginx
nginx的啟動方法
nginx -c conf/nginx_rtmp.conf 使用指定的配置檔案啟動
nginx -s reload 重啟nginx服務
nginx -s stop 停止nginx服務,強制快速結束
nginx -s quit 停止nginx服務,溫柔的結束
開啟瀏覽器輸入http://ip可看到nginx已經啟動的畫面
http://192.168.2.48
配置nginx-rtmp模組
修改nginx配置檔案,nginx_rtmp.conf
[email protected]:/usr/local/nginx/conf$ cat nginx_rtmp.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application myapp {
live on;
}
application hls {
live on;
hls on;
hls_path /tmp/app;
hls_fragment 5s;
}
}
}
http {
server {
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /home/robert/nginx-rtmp-module;
}
location /control {
rtmp_control all;
}
location /rtmp-publisher {
root /home/robert/nginx-rtmp-module/test;
}
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /tmp/app;
expires -1;
}
location / {
root /home/robert/nginx-rtmp-module/test/rtmp-publisher;
}
}
}
上面配置檔案指定了兩個application, 一個myapp,一個hls。
myapp來處理flash流,hls來處理m3u8檔案,也就是蘋果裝置上的視訊流。
配置好上面的nginx-rtmp-module路徑後,重啟nginx服務。
服務正常啟動後,使用ffmpeg推一個本地視訊流到nginx,注意這個本地視訊的格式必須是
h264+aac格式的,否則不能正常播放。
向兩個application推流:
ffmpeg -re -i s2.mp4 -vcodec copy -acodec copy -f flv rtmp://192.168.2.48/myapp/mystream
ffmpeg -re -i s2.mp4 -vcodec copy -acodec copy -f flv rtmp://192.168.2.48/hls/mystream
hls格式的用於在ios上播放。
修改對應的播放頁面
我們在上面配置檔案指定了根目錄
/home/robert/nginx-rtmp-module/test/rtmp-publisher
檢視一下根目錄的檔案
[email protected]:~/nginx-rtmp-module/test/rtmp-publisher$ ll
total 1664
drwxrwxr-x 2 robert robert 4096 6月 22 17:27 ./
drwxrwxr-x 4 robert robert 4096 6月 22 11:28 ../
-rw-rw-r-- 1 robert robert 618 6月 22 17:18 player.html
-rw-rw-r-- 1 robert robert 313 6月 22 17:00 playhls.html
-rw-rw-r-- 1 robert robert 513 6月 22 17:05 publisher.html
-rw-rw-r-- 1 robert robert 314 6月 22 10:46 README.md
-rw-rw-r-- 1 robert robert 2830 6月 22 10:46 RtmpPlayerLight.mxml
-rw-rw-r-- 1 robert robert 47222 6月 22 10:46 RtmpPlayerLight.swf
-rw-rw-r-- 1 robert robert 2133 6月 22 10:46 RtmpPlayer.mxml
-rw-rw-r-- 1 robert robert 47281 6月 22 10:46 RtmpPlayer.swf
-rw-rw-r-- 1 robert robert 2741 6月 22 10:46 RtmpPublisher.mxml
-rw-rw-r-- 1 robert robert 47496 6月 22 10:46 RtmpPublisher.swf
-rw-rw-r-- 1 robert robert 1507328 6月 22 17:27 s2.mp4
-rw-rw-r-- 1 robert robert 10220 6月 22 10:46 swfobject.js
我們修改一下player.html
<!DOCTYPE html>
<html>
<head>
<title>RTMP Player</title>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashVars = {
streamer: 'rtmp://192.168.2.48/myapp',
file:'mystream'
};
var params = {};
params.allowfullscreen = "false";
var attributes = {};
swfobject.embedSWF("RtmpPlayer.swf", "rtmp-publisher", "640", "480", "9.0.0", null, flashVars, params, attributes);
</script>
</head>
<body>
<div id="rtmp-publisher">
<p>Flash not installed</p>
</div>
</body>
</html>
注意修改檔案中這兩個語句,這是我們使用ffmpeg推送的地址。
這裡把localhost改成了機器ip, 用localhost有不出視訊的情況。
streamer: 'rtmp://192.168.2.48/myapp',
file:'mystream'
播放HLS檔案
HLS檔案對應的Html:
<!DOCTYPE html>
<html>
<head>
<title>HLS Player</title>
</head>
<body>
<video height="270" width="480" controls>
<source src="http://server-ip-address:8080/hls/mystream.m3u8" type="application/vnd.apple.mpegurl" />
<p class="warning">Your browser does not support HTML5 video.</p>
</video>
</body>
</html>
在ipad上播放地址:
http://server-ip-address:8080/hls/mystream.m3u8
開啟對應的網址,可以看到實際的效果:
相關推薦
使用nginx-rtmp搭建視訊直播伺服器
安裝nginx前需要幾樣準備工作 第一個需要C++編譯器,在ubuntu下直接安裝g++即可 sudo apt-get install g++ 然後,這個版本的nginx預設需要的是pcre和zlib和openssl,分別去這兩個官方網站下載最新
openresty +rtmp 搭建視訊直播伺服器
最近搭建了一個rtmp直播伺服器, 因為nginx的rtmp伺服器本身需要一些http的控制, 所以選用了openresty這個nginx+lua的http框架, 再其中包含rtmp伺服器, 這樣既可以充當rtmp直播伺服器,也可以充當http,還可以直接在其中用lua指令碼完成相關控制
CentOS7下搭建基於Nginx的HLS,RTMP流媒體直播伺服器
CentOS7下搭建基於Nginx的HLS,RTMP流媒體直播伺服器 安裝wget 更改yum源 安裝依賴庫 複製nginx-1.6.2.tar.gz、nginx-rtmp-module 安裝、編譯Nginx 編輯修改nginx.conf
ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器
本來準備在centos伺服器上搭建的,因為筆者工作系統是ubuntu,因此直接在本機上搭建,更方便快捷,配置過程比較簡單,記錄一下。 目錄 配置環境 安裝obs-studio開始第一次推流 安裝vlc播放器開始拉流 配置環境 配置環境 配
iOS開發 搭建視訊直播系統,基於LFLiveKit+ijkplayer+rtmp(iOS端)
本文主要使用的三個技術: 推流:LFLiveKit 播放:ijkplayer 伺服器:nginx+rtmp+ffmpeg 有了這三點技術就可以完成一個簡約的直播系統。效果圖如下(右邊的是用模擬器裝置執行播放的,中間的是用VLC播放器播放的,當前在用手機推流
使用Nginx+FFmpeg搭建HLS直播轉碼伺服器
目的:使Nginx支援Rtmp協議推流,並支援HLS分發功能及FFmpeg轉碼多位元速率功能。 一、準備工作 模組:nginx-rtmp-module-master(支援rtmp協議) 下載地址: http:
手把手教你搭建一個直播伺服器(Nginx+Rtsp)
本教程感謝慕課網常用工具: ffmpeg音視訊編解碼 ffplay音視訊播放工具搭建流媒體伺服器 準備流媒體伺服器linux 準備並安裝Nginx服務
在自己的電腦下搭建nginx+rtmp的流媒體伺服器及用java對推流許可權驗證
因為公司任務需要讓做一個直播的系統,經過一段時間的研究,和方便以後撿起來所以把這個寫了下來 下載windows版本的nginx http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip 解壓到c盤,最好
nginx+ffmpeg搭建流媒體伺服器(直播流)
環境 系統環境:opensuse 12 需求 利用nginx和ffmpeg搭建流媒體伺服器(直播流),其他流後續會有所更新 關於用Nginx搭建flv,mp4,hls流媒體伺服器的技術乾貨! 模組:nginx_mod_h264_streaming(支援h264
nginx + rtmp 搭建流媒體服務器
chunk 服務 wid configure 版本 錯誤 1.0 ive 文件 一、安裝nginx服務器 1、路徑說明: 路徑:/usr/local/src 2、下載nginx-rtmp-module (我這裏的目錄是在/usr/local/src/下面)
基於nginx-rtmp搭建點播平臺
序言 RTMP(Real Time Message Protocol,實時資訊傳輸協議)協議屬於應用層協議,靠底層的 TCP 來保證資訊傳輸的可靠性。它由 Adobe 公司提出,用來解決多媒體資料傳輸流的多路複用(Multiplexing)和分包(packetizing)的問題。ngin
nginx+nginx-rtmp-module實現直播服務
環境 centos 6.8 nginx 1.10.3 nginx-rtmp-module 下載nginx-rtmp-module 當前目錄/opt git clone https://github.c
nginx+ffmpeg搭建流媒體伺服器
安裝ffmpeg: 下載FFmpeg和libx264的包 ffmpeg-2.4.1.tar.bz2 last_x264.tar.bz2 libx264需要yasm,所以先安裝yasm apt-get install yasm
快速搭建視訊直播平臺
快速搭建直播服務 大體架構 srs+ffmpeg+第三方(阿里雲,騰訊雲等),因為不是專門做直播平臺,所以藉助第三方平臺(伺服器,頻寬,cdn可以省不少心)。當然如果你想自建一個視訊直播平臺也是可以的~~ srs用來接收從手機客戶端推來的rtmp流,ffmpeg用來對視訊進
ubuntu 14 x86_64 nginx rtmp ffmpeg 線上直播和點播
1、虛擬機器安裝 Ubuntu 14 x86_64 desktop 2、安裝vim,openssh-server(應該是自動開啟埠)。 3、安裝開發環境:點選開啟連結,這篇文章的開始有。 4、安裝ffmpeg(靜態安裝),這裡是英文源網:https://trac.ffmpe
Linux---nginx+ffmpeg搭建流媒體伺服器
這裡實現了簡單nginx+ffmpeg 推本地mp4視訊檔案的功能,以後將會繼續更新 環境 系統環境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒體伺服器 步驟 安裝ffmpeg
Nginx RTMP 流媒體直播
RTMP(Real Time Messaging Protocol)實時訊息傳送協議是Adobe Systems公司為Flash播放器和伺服器之間音訊、視訊和資料傳輸開發的私有協議。 它有三種變種: 1)工作在TCP之上的明文協議,使用埠1935;
筆記Mac下配置nginx+rtmp模組推流伺服器碰到的問題整理
安裝環境 ,Mac版本 : 10.13.5在裝的nginx版本為1.13.12如果你輸入http://localhost:8080後能看到nginx配置的首頁那說明OK。或nginx -v看下版本號。都能確保裝上.下面是在掛裝rtmp模組時出現的問題處理。安裝tap時:bre
Ubuntu下搭建Nginx伺服器+整合RTMP視訊直播流處理(邊做邊做更新)
簡介: 要求:做一個網頁獲取攝像頭的視訊流,然後將視訊流經過流伺服器推送到後臺視訊處理伺服器,再由後臺視訊處理伺服器推送到流伺服器,最終推送到頁面。如圖: 經過查閱資料,目前有red5以及nginx+nginx-rtmp-module實現,選擇第二種方式來實現。 準備工作:
Nginx與Nginx-rtmp-module搭建RTMP視訊直播和點播伺服器
一.開發環境 Nginx地址: http://nginx.org/download/nginx-1.14.2.tar.gz Nginx-rtmp-module地址: https://github.com/arut/nginx-rtmp-module 二.執行安裝命