windows下流媒体nginx-rmtp-module服务器搭建及java程序调用fmpeg将rtsp转rtmp直播流

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

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

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

公司用的是海康的监控地址为(rtsp://admin:[email protected]/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:[email protected]/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语句如下

public static boolean convertProtocol(String ffmpeg,String rtsp, String rtmp,String s){
//		ffmpeg -i "rtsp://admin:[email protected]/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

转载请注明出处谢谢

时间: 2024-12-17 22:28:26

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

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

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http://techieliang.com/2017/12/514/ 文章目录 1. 下载安装 2. 注意  2.1. 关于Python冲突问题  2.2. gitstack密码重置 3. gitstack与wamp冲突 1. 下载安装 官网下载即可 安装流程也很简洁方便.安装步骤 安装完成后可通过管理地址

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

参考网址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)>中提到有好多有趣的地方,接下来就为大家一块儿讲讲在深入研究过程中遇到那些有趣的事情. ·实战之行--发现问题 ·探索之旅--寻出问题原因 ·解决之道--解决问题 [实战之行] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)>中做了小Demo,当时做

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

[前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下Nginx的神奇之处. [准备工作] ·安装一款文本编辑器(这里以Notepad++为例) ·下载Nginx(这里以Nginx-1.4.7为例,其他版本操作相同) ·建两个简单网页:在文件夹test1新建一个html页内容为--我是Test1,在文件夹test2新建一个html页内容为--我是Test2) ·将

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

在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座打包为webapp后不行,所以直播的话建议还是原生的好.HBuilder自带的H5+有提供了原生的视频播放和推流录制上传,但是需要有一个rtmp直播流服务器,用于测试和开发,这时就需要自建rtmp服务推流了. 极速搭建简单RTMP直播流服务器 开发环境:macOS 需要安装并启动docker:?? 

搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流,再到nginx-rtmp发布流,后端的服务到这里就已经全部完成了. 如果这里的流程没走通,那么这里的播放器也是没办法播放实时流的. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二

搭建rtmp直播流服务之4:videoJS/ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用nginx-rtmp搭建直播流媒体服务器,以及使用ffmpeg推流到nginx-rtmp服务器,java通过命令行调用ffmpeg实现推流服务,后端的事情到这里就已经全部完成了. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二次开发就显得很有必要. 一.几种播放器选择 那么播放器,哪些已经不再更新的和收费的,这里不会介绍,只介绍两种轻量级的开源播放器. 1.

《Windows服务器配置与管理》 文件共享服务器搭建

详细需求描述 1.网络拓扑图如下: 2.利用虚拟机实现网络拓扑,要求如下 (1)虚拟机环境使用hostonly (2)服务器要求: 安装Widnwos Server 2008 R2操作系统 内存要求:750MB 安装五块物理SCSI磁盘,第一块磁盘40GB.两个分区,主分区用来安装操作系统,30GB,扩展分区中建立一个逻辑分区,10GB,用来存储文件:两个分区的文件类型均为NTFS.其余四块磁盘大小均为2GB 1)按要求创建虚拟机 2)添加四块硬盘 客户机要求: 安装Windows 7操作系统

阿里云ECS+Nginx+nginx_rtmp_module+FFMPEG服务器搭建过程

Nginx下安装nginx-rtmp-module+ffmpeg搭建流媒体服务器. 参考http://blog.csdn.net/redstarofsleep/article/details/45092147 阿里云环境 1. 使用SecueCRT.FlashFXP连接购买的阿里云ECS. 2. 一般购买后盘是初始化好的.第一次操作忽略这步.挂载新的盘时,可参考初始化盘https://jingyan.baidu.com/article/37bce2be0eeea01002f3a208.html

Windows服务器配置与管理》DHCP服务器搭建与管理

工作任务描述 近来随着公司的业务不断增长,公司的规模也在一步一步的膨胀,计算机数量的增长非常明显,管理员几乎每天都在忙着为新员工手工做系统,分IP,将他们的主机连入网络,但时间一长,他们发现公司的IP地址不仅分的乱七八糟,而且管理起来几乎是不可能的,时常有员工报告说网络中有地址冲突,无法上网. 管理员分析了公司的网络现状:每个员工都有固定的台式机,但是公司为每一个员工还配备了笔记本电脑,也需要通过网线的方式接入到网络中(公司暂时不允许无线网络连接移动设备),他们分析之后,为公司网络环境制定了一个