https://github.com/illuspas/nginx-rtmp-win32html
http://bashell.sinaapp.com/archives/build-nginx-rtmp-module-on-windows.htmljava
https://github.com/xaccc/nginx-rtmp-win32nginx
https://github.com/luowei/nginx-rtmp-sample/blob/master/conf/nginx.new.confgit
https://github.com/luowei/nginx-rtmp-samplegithub
https://github.com/arut/nginx-rtmp-moduleshell
第一步:首先介紹一下所用相關技術windows
注:項目中使用的jwplayer插件,不支持rtsp協議,因此使用如下技術來進行轉藝瀏覽器
公司用的是海康的監控地址爲(rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream)bash
3. Rtmp協議(實時消息傳輸協議 ):服務器
RTMP是一種設計用來進行實時數據通訊的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通訊。支持該協議的軟件包括Adobe Media Server/Ultrant Media Server/red5/nginx(這裏我用到的NGINX)等。
4.Jwplayer是一個開源的在網頁上使用的Flash視頻、音頻以及圖片播放器
它支持播放的Adobe Flash Player和HTML5瀏覽器能夠處理任何格式(FLV文件,H.264標準,MP4功能,VP8的,WEBM,支持MP3,AAC,JPG,PNG和GIF)。它也支持各類流和播放清單格式(包括RMTP協議,HTTP直播和更多)和多種播放選項。
5.nginx-rmtp-module是Nginx服務器的流媒體插件:
Nginx自己是一個很是出色的HTTP服務器,ffmpeg是很是好的音視頻解決方案.這兩個東西經過一個nginx的模塊nginx-rtmp-module,組合在一塊兒便可以搭建一個功能相對比較完善的流媒體服務器.這個流媒體服務器能夠支持RTMP和HLS(Live Http Stream)。
nginx配合ffmpeg作流媒體服務器的原理是:
nginx經過rtmp模塊提供rtmp服務, ffmpeg推送一個rtmp流到nginx, 而後客戶端經過訪問nginx來收看實時視頻流。(這裏我是用jwplayer來訪問這個rtmp地址)
第二步:相關軟件的配置及應用
(如今須要使用nginx-rtmp.exe這個程序, 網上能夠搜索到該軟件已經集成rtmp模塊的windows版本)
2.打開conf文件夾找到nginx.conf文件,配置rtmp
(添加rtmp{....})
3.運行cmd命令,啓動nginx.exe服務
(start nginx.exe:啓動nginx服務,而後看進程中是否有nginx.exe)
4.打開網頁輸入:localhost或者127.0.0.1本機ip
(顯示一下界面說明啓動成功)
第三步:相關軟件的配置及應用Nginx服務啓動以後就能夠執行ffmpeg命令進行rtsp協議轉成rtmp:
ffmpeg -i "rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream" -f flv -r 25 -s 640x480 -an "rtmp://192.168.3.138:1935/myapp/test2"
ffmpeg:其實就是ffmpeg.exe,運行語句的時候.exe可不要
-i:後面是我所須要的攝像頭協議
-f flv:後面是我要轉到nginx的rtmp服務器上
-s:視頻解析度:(分配率)也就是能調視屏的清晰度,若是在本機上測試建議640*480就好,改變視屏流的解析式cpu會消耗很大
(rtmp服務地址:rtmp://192.168.3.138:1935/myapp/test2)
192.168.3.138:nginx啓動的機器ip
1935:端口號(以前在nginx.conf裏配置的)
myapp:是application 後面的名稱
test2:能夠隨便起,記獲得時候訪問rtmp時要一致
回車執行ffmpeg語句
(下面是我執行的結果,證實個人是執行成功的,經過ffmpeg把rtsp協議的攝像頭的視屏流一直運行的轉到nginx的rtmp視屏流服務器上)
第四步:配置jwplayer: 文件名JWplayer6.8.4616[(2014-06-28)(完美去水印
(網上下載的資源,這裏主要用到jwplayer.js 以及 jwplayer.flash.swf兩個,index.html裏有一些參數介紹,其它文件的相應介紹本身能夠百度jwplayer使用方法)
注:jwplayer貌似不支持在本地html頁面中播放,要在服務器環境中實現播放
項目裏只配置了本身所需的:
附:Java中執行ffmpeg語句以下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public
static
boolean
convertProtocol(String ffmpeg,String rtsp, String rtmp,String s){
// ffmpeg -i "rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream"
// -f flv -r 25 -s 640x480 -an "rtmp://192.168.3.138:1935/myapp/test2"
List<String> commend =
new
ArrayList<String>();
commend.add(ffmpeg);
commend.add(
"-i"
);
commend.add(
"\""
+rtsp+
"\""
);
commend.add(
"-f"
);
commend.add(
"flv"
);
commend.add(
"-r"
);
commend.add(
"25"
);
commend.add(
"-s"
);
commend.add(s);
commend.add(
"-an"
);
commend.add(rtmp);
try
{
ProcessBuilder builder =
new
ProcessBuilder();
//建立系統進程
builder.command(commend);
builder.start();
//啓動進程
}
catch
(Exception e) {
e.printStackTrace();
}
return
true
;
}
|
注:以上所涉及軟件均可在網上找到,若是找不到或者有什麼問題可微信我微信號:ccbabc
轉載請註明出處謝謝