ffmpeg+nginx建立rtmp伺服器,播放攝像頭流
好文章,http://blog.fs-linux.org/?p=137
先轉載,然後再動手實踐看看
live555可以建立rtsp這個大夥都知道,ffserver+ffmpeg也可以建立一個實時rtsp服務,那麼rtmp呢?好多人會首選red5,al'right,這裡用的是nginx,下面記錄一下使用nginx建立rtmp的全過程
首先下載一份nginx的rtmp的module
?1 |
git clone https: //github.com/arut/nginx-rtmp-module.git
|
下載好nginx-rtmp-module以後,需要將ginx-rtmp編譯進nginx
1 2 3 4 |
cd nginx
./configure --prefix=/usr/local/nginx/ --add-module=/root/nginx-rtmp-module --with-http_ssl_module
make
make install
|
這樣,就將nginx-rtmp-module編譯進nginx裡面,並安裝到/usr/local/nginx裡面了
接下來配置一下nginx的配置檔案既可
在nginx-rtmp-module中可以看到nginx配置檔案的參考
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 |
[[email protected] # ls
AUTHORS ngx_rtmp_auto_push_module.c ngx_rtmp_control_module.c ngx_rtmp_handler.c ngx_rtmp_netcall_module.c ngx_rtmp_relay_module.c
test
config ngx_rtmp_bandwidth.c ngx_rtmp_core_module.c ngx_rtmp_handshake.c ngx_rtmp_netcall_module.h ngx_rtmp_relay_module.h TODO doc ngx_rtmp_bandwidth.h ngx_rtmp_enotify_module.c ngx_rtmp_init.c ngx_rtmp_notify_module.c ngx_rtmp_send.c
hls ngx_rtmp.c ngx_rtmp_eval.c ngx_rtmp_limit_module.c ngx_rtmp_play_module.c ngx_rtmp_shared.c
LICENSE ngx_rtmp_cmd_module.c ngx_rtmp_eval.h ngx_rtmp_live_module.c ngx_rtmp_play_module.h ngx_rtmp_stat_module.c
ngx_rtmp_access_module.c ngx_rtmp_cmd_module.h ngx_rtmp_exec_module.c ngx_rtmp_live_module.h ngx_rtmp_receive.c ngx_rtmp_streams.h
ngx_rtmp_amf.c ngx_rtmp_codec_module.c ngx_rtmp_flv_module.c ngx_rtmp_log_module.c ngx_rtmp_record_module.c README.md
ngx_rtmp_amf.h ngx_rtmp_codec_module.h ngx_rtmp.h ngx_rtmp_mp4_module.c ngx_rtmp_record_module.h stat.xsl
[[email protected] nginx-rtmp-module] # ls test/
dump.sh ffstream.sh nginx.conf play.sh README.md rtmp-publisher www
[[email protected] nginx-rtmp-module] # ls test/rtmp-publisher/
player.html publisher.html README.md RtmpPlayer.mxml RtmpPlayer.swf RtmpPublisher.mxml RtmpPublisher.swf swfobject.js
[[email protected] nginx-rtmp-module] # ls test/www
bg .jpg index.html jwplayer jwplayer_old record.html
[[email protected] nginx-rtmp-module] #
|
當然,如果只為了測試rtmp,完全可以將test中的rtmp放在/usr/local/nginx/conf/中,記得要備份/usr/local/nginx/conf下的nginx.conf
將nginx.conf中的內容修改如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application myapp {
live on;
}
}
}
http {
server {
listen 80;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/html/nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}
location /rtmp-publisher {
root /usr/local/nginx/html/nginx-rtmp-module/test;
}
location / {
root /usr/local/nginx/html/nginx-rtmp-module/test/www;
}
}
}
|
配置完成之後,可以啟動nginx
?1 |
/usr/local/nginx/sbin/nginx
|
nginx從此啟動完成
接下來試一下
1 |
ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -vcodec libx264 -preset ultrafast -vprofile baseline -vlevel 1.0 -s 640x480 -b:v 800k -r 25 -pix_fmt yuv420p -f flv rtmp: //192.168.0.194/myapp/mystream
|
然後ffmpeg的程序會顯示如下
?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
ffmpeg version N-54918-g11cb697 Copyright (c) 2000-2013 the FFmpeg developers
built on Jun 19 2013 08:54:07 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration: --disable-yasm --enable-libx264 --enable-gpl
libavutil 52. 40.100 / 52. 40.100
libavcodec 55. 19.100 / 55. 19.100
libavformat 55. 12.102 / 55. 12.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 81.102 / 3. 81.102
libswscale 2. 4.100 / 2. 4.100
libswresample 0. 17.103 / 0. 17.103
libpostproc 52. 3.100 / 52. 3.100
Input #0, video4linux2,v4l2, from
'/dev/video0' :
Duration: N/A, start: 686.347441, bitrate: 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 147456 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
[libx264 @ 0x2e63660] frame MB size (40x30) > level limit (99)
[libx264 @ 0x2e63660] DPB size (1 frames, 1200 mbs) > level limit (0 frames, 396 mbs)
[libx264 @ 0x2e63660] MB rate (30000) > level limit (1485)
[libx264 @ 0x2e63660]
using cpu capabilities: none!
[libx264 @ 0x2e63660] profile Constrained Baseline, level 1.0
[libx264 @ 0x2e63660] 264 - core 133 r2334M a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http: //www.videolan.org/x264.html - options: cabac=0
ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=800 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Metadata:
encoder : Lavf55.12.102
Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 640x480, q=-1--1, 800 kb/s, 1k tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press [q] to stop, [?]
for help
frame= 1469 fps=9.7 q=30.0 size= 14868kB time=00:02:31.44 bitrate= 804.3kbits/s
|
將nginx配置檔案中需要的對應的目錄放在nginx下面
?1 2 3 |
mkdir /usr/local/nginx/html/nginx-rtmp-module
cp /root/nginx-rtmp-module/test /usr/local/nginx/html/nginx-rtmp-module/
cp /root/nginx-rtmp-module/stat.xsl /usr/local/nginx/html/nginx-rtmp-module/
|
1 2 |
ls /root/nginx-rtmp-module/test/www/
bg.jpg index.html jwplayer/ jwplayer_old/ record.html
|
可以看到,在nginx-rtmp-module/test/www/下面使用的是jwplayer,這個player是一個AS建立出來的flash player
然後訪問地址http://192.168.0.194/rtmp-publisher/player.html,就可以播放了相關推薦
ffmpeg+nginx建立rtmp伺服器,播放攝像頭流
好文章,http://blog.fs-linux.org/?p=137 先轉載,然後再動手實踐看看 live555可以建立rtsp這個大夥都知道,ffserver+ffmpeg也可以建立一個實時rtsp服務,那麼rtmp呢?好多人會首選red5,al'right,這裡用的是
Mac搭建nginx+rtmp伺服器,通過ffmpeg實現視訊推流
最近在研究關於直播方面的技術,中間遇到很多坑,在此記錄一下,以免再次跳坑 1.安裝Homebrew 開啟終端, 檢視是否已經安裝了Homebrew, 直接終端輸入命令 man brew 如果Mac已經安裝了, 會顯示一些命令的幫助資訊. 此時 輸入Q退出即可, 直接進
如何建立 SVN 伺服器,並搭建自己的 SVN 倉庫
本文轉自劉奇雲的部落格 地址:https://www.cnblogs.com/liuqiyun/p/6856997.html SVN是一個廣泛使用的版本控制系統,在日常工作中有廣泛的應用空間,比如文件管理,我們就可以搭建一個 SVN 倉庫,日常需要歸類儲存的文件統統上傳到倉庫中,那如
使用uwsgi和nginx搭建的伺服器,修改程式碼後如何自動/手動過載程式碼?
寫在前面 在預設設定下,uwsgi本身不會立即載入修改後的檔案,這是為了效率起見。如果你有修改程式碼後需要立即在伺服器上reload的需求,則在uwsgi的ini檔案中加入如下修改(不建議): py-autoreload = 1 如果我們僅僅只是在開發環境除錯
CentOS 建立SVN 伺服器,並且自動同步到WEB 目錄
一、安裝Subversion #yum install subversion 二,基本的SVN伺服器配置 1,新建一個目錄用於儲存SVN所有檔案# mkdir /home/svn 2,新建一個版本倉庫# svnadmin create /home/sv
使用nginx搭建rtmp伺服器
一、軟體需求 1、nginx原始碼包 下載地址:http://nginx.org/。筆者下載的是1.10.3。 2、pcre原始碼包。這是一個正則表示式庫。nginx會用到這個開源庫來做正則匹配。很多軟體都會引用,比如php引擎編譯的時候也會用到。 3、nginx-rtmp-m
ffmpeg+nginx 實現拉流轉碼播放
1,客戶需求,編碼器,IPTV 水療娛樂裝置 2,軟體需要。ffmpeg常用命令連結 , vlc ,nginx環境下。 3,再給測試視訊的連結。 可以播放的直播地址 4,看張圖,現場環境。 5,這裡就是 為了編碼器的播出地址,經過ffmpeg 放到本
mac下利用ffmpeg+nginx搭建直播伺服器的總結
最近自己一直在研究直播相關的技術,前一陣子用了騰訊雲簡單的實現了直播,騰訊雲實現起來很方便,而且SDK對一些關鍵問題的處理也做得很好,開發者直接在騰訊雲平臺上申請認證後便可進行騰訊雲直播的測試開發了.
Windows10下nginx的rtmp伺服器搭建
nginx-1.7.11.3-Gryphon 2. 下載伺服器狀態檢查程式 stat.xsl(注:直接clone到nginx-1.7.11.3-Gryphon目錄下) 3. 配置檔案 conf\nginx-win-rtmp.conf 內容如下:(注:用記事本開
用ffmpeg+nginx+海康威視網路攝像頭rtsp在手機端和電腦端實現直播
原料:海康威視攝像頭,nginx伺服器,ffmpeg。首先海康威視攝像頭,它的rtsp資料流的地址為:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream說明:userna
windows下搭建基於nginx的rtmp伺服器
Windows機器配置:Windows7旗艦版 64位Intel(R) Core(TM)i5-2520 CPU @2.50GHz 2.50 GHz記憶體: 4GB1. 下載 nginx 1.7.11.3 Gryphon下載連結: http://nginx-win.ecsd
Nginx 作為代理伺服器,載入JS檔案報錯,net::ERR_CONTENT_LENGTH_MISMATCH
檢視nginx 日誌發現報錯 [[email protected] logs]# tail error.log 2016/11/11 15:04:20 [crit] 8655#0: *21 open() "/usr/local/nginx/
FFmpeg+Nginx搭建RTMP直播推流服務
Nginx是優秀的開源並且可以新增外掛的服務端,其中就有開源的RTMP外掛nginx-rtmp-module實現了RTMP推流服務。 專案地址為: https://github.com/arut/nginx-rtmp-module 搭建思路:
三、ESP8266LUA開發之建立TCP伺服器,實現socket通訊控制繼電器,串列埠,伺服器,客戶端收發資料小感悟
8266做伺服器,實現TCP通訊 注,實際燒錄的時候會因為註釋過多造成燒錄不進去的情況,這個時候需要刪除註釋! 先來測試8266建立伺服器,並分得IP 燒錄時,先燒wifi.lua,然後再燒init.lua。 init.lua
Linux建立FTP伺服器,新增使用者,設定使用者獨立目錄的過程及遇到的問題
1、查詢linux伺服器是否已經安裝過vsftpd服務; rpm -qa|grep vsftpd 解除安裝已經安裝服務命令:rpm -e vsftpd 2、未安裝,安裝vsftpd服務;
基於nginx搭建RTMP伺服器
安裝nginx 下載ngnix原始碼 git clone https://github.com/nginx/nginx.gi
SFTP檔案下載(由於SFTP有許可權設定,本地ip又不固定,所以為測試伺服器IP開通許可權,把檔案下載到測試伺服器,再用流讀到本地)
1.工具類 import java.util.Properties; import org.apache.log4j.Logger; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; i
利用Nginx搭建RTMP視訊直播,點播伺服器,ffmpeg推流,回看
#下面的server是在http的一級配置標籤下的#上面的註釋對懂nginx的人是廢話,但是如果你不熟悉nginx,建議認真看看http{...# 這裡有一些其他的配置 server { listen 80;#埠 server_name rtmp-server;#設定http
簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp
簡介 nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。 步驟安裝 1、安裝Homebrow Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體
ffmpeg 實現RTSP/RTMP 從伺服器拉音視訊流,儲存為h264和AAC
int my_av_bsf_filter(const AVBitStreamFilter *filter, AVPacket *pPacket, const AVCodecParameters *src) { int ret; AVBSFContext *ctx = NULL; if (!fi