前言
在实际的项目开发中,需要网站平台接入实时视频流,实现远程监控。使用海康的摄像机器;传送的是rtsp格式的视频流。之前采用flv网络插件,但是chrome与ff升级之后,对vlc插件的支持不理想,于是想用ffmpeg的转码技术将rtsp码流转换成rtmp。
技术路线
1、安装red5服务器(当然,因为red5是基于java的,所以需要首先安装和配置jdk,这里不再说明)。
注意:在安装过程中需要输入ip地址和端口号,之前我输入127.0.0.1,但是安装完毕后启动失败,后来用0.0.0.0代替,能够正常访问;端口号随意输入,这里我用的是默认的端口5080。
2、安装成功后,需要配置环境变量:
RED5_HOME://添加red5的安装地址
path:%RED5_HOME%\boot.jar;%RED5_HOME%\lib
3、启动red5服务,点击red5安装目录中的red5.bat,
出现如图字样,才是启动成功,在这之前不能关闭此命令行界面,这也是造成启动失败的一个原因。
4、至此,red5 就安装好了,访问http://localhost:5080会出现red5的主页,说明部署成功。
5、red5提供了很多demo,访问http://localhost:5080/installer/,可以选择安装demo。
6、安装ffmpeg,官网上下载的是免安装版本,只要解压到指定的文件夹就可以。然后在环境变量里添加path的配置
PATH:/你的ffmpeg安装目录/bin
7、cmd打开命令行,输入 ffmpeg -version 成功显示版本信息,则表示安装成功
8、以上,流媒体转换器和流媒体的服务器都安装好了,接下来就是转转转啦。
在命令行里输入
ffmpeg -i "rtsp://admin:admin12345@192.168.1.64:554/h264/ch1/main/av_stream" -f flv -r 25 -s 640x480 -ar 44100 "rtmp://localhost/oflaDemo/hello"
接着在red5目录文件中的webapps\oflaDemo中index.html 文件,将jwplay的文件属性更改成hello,访问http://localhost:5080/oflaDemo/index.html,将会出现连接摄像头的视频信号。
注意:
1、oflademo文件夹是在installer界面安装的demo程序
2、ffmpeg参数参考http://blog.csdn.net/leixiaohua1020/article/details/12751349
3、转换成功后,明显会有丢帧的情况,原因研究中