FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
文章来源:http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1419.html
整理了一下要解决如下问题:
1、 摄像头的数据采集。
2、 如何将采集到的数据交给Red5处理。
3、 [FFmpeg]图文介绍windows下实现编译ffmpeg工程的详细步骤
解决方法:
1、 我们使用的摄像头是海康的可以通过rtsp协议获取到摄像头的直播数据。所以可以通过 :
2、 rtsp://admin:12345@192.168.1.77:554/h264/ch1/main/av_stream
3、 实现视频数据的采集。
4、 获取到数据流后如何利用Red5发布出去呢?
5、 因为获取到的数据是rtsp协议的,所以要转协议成rtmp,ffmpeg可以实现这个功能。
具体步骤:
1、 首先要安装流媒体服务器Red5用于rtmp数据的接收与发布。
l 下载Red5
l 我下载的版本是setup-Red5-1.0.1-java6.exe
l 安装Red5 http://www.cuplayer.com/player/PlayerCode/Red5/2013/0319/760.html
l 在安装的过程会弹窗要求设置一些服务器信息。
l 设置服务器的IP
设置HTTP访问端口
后面一直“next”即可。
安装完成后访问:http://localhost:5080/ 如果可以看到
Red5默认是会安装成系统的服务的,如果重复启动会报端口占用的错误。
在http://localhost:5080/installer/ 页面中安装Red5自带的Demo OflaDemo。安装好后访问http://localhost:5080/oflaDemo/index.html 即可已看到通过rtmp 点播的视频文件视频。这样你的Red5服务器就安装完成了。
1、 下载安装FFmpeg, 安装 ffmpeg教程:http://www.cuplayer.com/player/PlayerCode/FFmpeg/2014/0706/1401.html
这里下载的是编译好的ffmpeg-20130703-git-e0be3cb-win32-shared, 直接解压好,并将bin目录加入到path环境变量下即可。
2、 测试
l 运行Red5
l 在命令行下执行:
- ffmpeg -i "rtsp://admin:12345@192.168.1.77:554/h264/ch1/main/av_stream" -f flv -r 25 -s 640x480 -an "rtmp://localhost/oflaDemo/hello"
l 修改Red5安装目录下的 webapps\oflaDemo\index.html 文件,将jwplayer的 file 属性改成 “hello”。
l 访问 http://localhost:5080/oflaDemo/index.html 在你所修改的播放器上是否可以看到摄像头的直播了。
FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播的更多相关文章
- 推流协议 支持RTMP协议推流
Stream Type Stream play domain nameStreaming Domain Name 播流 推流 推流协议 支持RTMP协议推流
- RTSP协议、RTMP协议、HTTP协议的区别
理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. RTSP. RTMP.HTT ...
- ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/74783269 需求 在做EasyDSS开发时,总 ...
- 视频直播源码开发中的流媒体协议:rtmp协议
一.概念与摘要 视频直播源码的RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和互动内容).RTMP提供了一套全双工的可靠的多路复用消息服务,类似 ...
- 玩转直播系列之RTMP协议和源码解析(2)
一.背景 实时消息传输协议(Real-Time Messaging Protocol)是目前直播的主要协议,是Adobe公司为Flash播放器和服务器之间提供音视频数据传输服务而设计的应用层私有协议. ...
- RTMP协议
Real Time Messaging Protocol(实时消息传送协议协议)概述 实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协 ...
- RTMP协议详解(转)
转自<RTMP协议详解(一) (二) (三) > Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器 ...
- RTMP协议研究
RTMP协议研究 1协议研究概述 协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代,没有人可以离开它了.他存在我们生活中的任何角落,只不过我们平时,并没有注意到它的存在 ...
- Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)
一. lal 简介 lal是开源直播流媒体网络传输项目,主要由三部分组成: lalserver:流媒体转发服务器.类似于nginx-rtmp-module等服务,但支持更多的协议,提供更丰富的功能. ...
随机推荐
- git 删除远程分支文件夹
把不需要版本控制的文件提交到远程分支上后,需要删除远程分支上的文件,用以下操作即可: git rm -r –cached dirname //删除远程文件夹,但保留本地文件夹 git commit - ...
- MYSQL中常用的强制性操作(例如强制索引)
mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的hint功能.下面介绍一些常用的 ...
- Linux之SElinux安全上下文件(1)
SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Courpo ...
- MySQL Cluster 日常维护
在前面几篇文章已经详细介绍了MySQL Cluster的搭建,配置讲解.而且相信大家都掌握了基本用法.现在我们来看看Cluster的日常维护.熟悉日常维护,将有助于工作中更好的管理和使用Cluster ...
- [Python学习笔记-001] 内置函数getattr()
如果某个实例foo有多个方法, 当对foo的每一个方法我们都需要使用try ... except ...进行包装的时候,内置函数getattr()可以用来精简代码. 1. getattr()的用法 # ...
- Java并发系列[10]----ThreadPoolExecutor源码分析
在日常的开发调试中,我们经常会直接new一个Thread对象来执行某个任务.这种方式在任务数较少的情况下比较简单实用,但是在并发量较大的场景中却有着致命的缺陷.例如在访问量巨大的网站中,如果每个请求都 ...
- sscanf函数详解 & 查找文件字符串
1. sscanf函数 sscanf() - 从一个字符串中读进与指定格式相符的数据. 1.1 函数原型 int scanf(const char *format, ...); int fscanf( ...
- C# ArrayList的使用方法小总结
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Sql动态查询拼接字符串的优化
Sql动态查询拼接字符串的优化 最原始的 直接写:string sql="select * from TestTables where 1=1";... 这样的代码效率很低的,这样 ...
- Spring Boot使用layui的字体图标时无法正常显示 解决办法
在html文件使用字体图标并且预览时正常,但是启动工程后显示不正常,浏览器调试界面显示字体文件无法decode: Failed to decode downloaded font: xxxxx 如图所 ...