https://github.com/illuspas/nginx-rtmp-win32

http://bashell.sinaapp.com/archives/build-nginx-rtmp-module-on-windows.html

https://github.com/xaccc/nginx-rtmp-win32

https://github.com/luowei/nginx-rtmp-sample/blob/master/conf/nginx.new.conf

https://github.com/luowei/nginx-rtmp-sample

https://github.com/arut/nginx-rtmp-module

第一步:首先介绍一下所用相关技术

注:项目中使用的jwplayer插件,不支持rtsp协议,所以使用以下技术来进行转艺

  1. FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp
  2. Rtsp协议(实时流传输协议): 

公司用的是海康的监控地址为(rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream)

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地址)

第二步:相关软件的配置及应用

  1. 当前使用的nginx-1.5.8版本

(现在需要使用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"

  1. 运行cmd:执行ffmpeg命令语句

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){
//      -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

转载请注明出处谢谢

windows下流媒体nginx-rmtp-module服务器搭建及java程序调用fmpeg将rtsp转rtmp直播流【转】的更多相关文章

  1. 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...

  2. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)

    [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...

  3. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(三)

    参考网址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 [前言] 在<架构之路:nginx与IIS服务器搭 ...

  4. Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡   分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...

  5. Windows下基于http的git服务器搭建-gitstack

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http: ...

  6. 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果

    在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...

  7. 三、直播整体流程 五、搭建Nginx+Rtmp直播流服务

    HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html 三.直播整体流程 直播整体流程大致可分为: 视频采集端:可以 ...

  8. Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流

    Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流学习笔记 所需条件: nginx-rtmp-module(带rtmp模块) ,链接:https://link.jiansh ...

  9. nginx开发(四)调用ffmpeg,搭建rtmp直播流。

    1: 修改conf文件,配置rtmp直播 打开usr/local/nginx/conf/nginx.conf,添加红色内容: rtmp {#rtmp点播配置    server {        li ...

随机推荐

  1. HDU 1561 The more, The Better【树形DP/有依赖的分组背包】

    ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物.但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先 ...

  2. HRBUST 1311 火影忍者之~忍者村

    求连通块. $ABC$之间建好边,然后计算连通块的个数. #pragma comment(linker, "/STACK:1024000000,1024000000") #incl ...

  3. CodeForces 732F Tourist Reform

    边双连通分量. 这题有一点构造的味道.一个有向图,经过强连通缩点之后会形成一个有向无环图. 如果将最大的强连通分量放在顶端,其余的强连通分量都直接或间接指向他,那么这样就构造出了符合要求的图. 接下来 ...

  4. 关于 Unity WebGL 的探索(一)

    到今天为止,项目已经上线一个多月了,目前稳定运行,各种 bug 也是有的.至少得到了苹果的两次推荐和 TapTap 一次首页推荐,也算是结项后第一时间对我们项目的一个肯定. 出于各种各样的可描述和不可 ...

  5. [P4064][JXOI2017]加法(贪心+树状数组+堆)

    题目描述 可怜有一个长度为 n 的正整数序列 A,但是她觉得 A 中的数字太小了,这让她很不开心. 于是她选择了 m 个区间 [li, ri] 和两个正整数 a, k.她打算从这 m 个区间里选出恰好 ...

  6. AGC 016 C - +/- Rectangle

    题面在这里! 结合了贪心的构造真是妙啊2333 一开始推式子发现 权是被多少个w*h矩形覆盖到的时候 带权和 <0 ,权都是1的时候带权和 >0,也就是说被矩形覆盖的多的我们要让它尽量小. ...

  7. 【点分治】【FFT】Gym - 101234D - Forest Game

    存个求树上每种长度(长度定义为路径上点数)的路径条数的模板:num数组中除了长度为1的以外,都算了2次. 不造为啥FFT数组要开八倍. #include<cstdio> #include& ...

  8. LRU近期最少使用算法

    LRU(least recently used)最少使用. 假设 序列为 4 3 4 2 3 1 4 2 物理块有3个 则 首轮 4调入内存 4 次轮 3调入内存 3 4 之后 4调入内存 4 3 之 ...

  9. JavaScript 巧学巧用

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 由于工作和生活上的一些变化,最近写文章的频率有点下降了,实在不好意思,不过相信不久就会慢慢恢复过来, ...

  10. 【c3p0】报错:java.io.FileNotFoundException: Resource not found at path '/mchange-log.properties'

    配置项目启动初始,报错如下: java.io.FileNotFoundException: Resource not found at path '/mchange-commons.propertie ...