Rtsp转RTMP之按需转发模式

分享

Rtsp转RTMP之有客户观看才启动模式

由于网络摄像头大都是仅支持rtsp协议,若实现低延时无需下载插件就能看摄像头,目前最流行,最成熟的方案就是把rtsp转换成rtmp,用FlashPlayer观看,采用该方式可以基本上实现实时观看的效果。把rtsp协议转换成rtmp有不少方法和工具,比如流媒体工具软件Aokulive,FFMPEG等,采用这些工具我们不难把rtsp协议转换成rtmp推到诸如FMS,RED5,NGINX,AMS等支持rtmp协议的流媒体服务系统软件中。

但这样做有个局限,就是当有几百路rtsp流需要转发时,不能实现根据客户端观看的需求再自主启动转协议,只能就启动转发软件,把rtsp协议转换到rtmp协议,这样就会造成带宽的浪费和系统负载过大,我们更需要有人开始观看直播时才开始转协议,这样就大大降低了对带宽的占用,特别适合那些需要同时转发数百路网络摄像头,或者其他rtsp源的情况。

我们介绍一下通过Aoku Media Server来实现这一功能,百度搜索 奥酷流媒体服务系统,或者到北极星通官方网站下载 免费版来做测试,免费版支持1个直播频道,可以供用户测试。

下载后解压到硬盘中,执行AokuMediaServer.exe,软件就成功运行了,如下图:

48e7e6f547a80dc7a618bdcce1b66192.png

【注】若没有出现这个界面,请首先查看本机的防火墙是否把AokuMediaServer给屏蔽了,或者是否有程序占用了端口1935,1935,9001,6666,5554,可以通过修改conf目录下的startup.xml来更换端口,以防端口占用。

AMS运行的计算机的IP地址是192.168.2.10

正常启动后,通过http://192.168.2.10:9001/login.html,输入用户名admin,密码123456,登陆后台,创建一个拉流的直播频道,其它选项都保持默认,如下图:

48e7e6f547a80dc7a618bdcce1b66192.png

【注】流方式要选择“拉方式”,启动拉流模式选择成“客户端接入时启动”

拉流自动关闭选择“开启”,输入要拉流的地址,这样就可以实现有客户端接入时候开启拉流,所有的客户端都退出了,没人观看时候,拉流就会自动关闭。

小窍门,AMS支持Live555和FFMPEG双引擎拉rtsp流,通过输入的标示不同,采用不同的模式来拉rtsp流,若发现你的rtsp流没能正常拉到,可以多尝试一下。

默认直接输入rtsp://,就会采用FFMPEG的TCP来拉流。

使用ffmpeg udp拉流 ,rtspu://

使用live555 tcp拉流,rtspl://

使用live555 udp拉流 rtsplu://

如我们填写的是rtsplu://192.168.2.4,代表AMS采用Live555的udp兼容方式拉192.168.2.4的rtsp流

拉带认证的rtsp流时,输入形式如下:

rtsp://admin:12345@192.168.2.4

用户名是admin,密码是123456

拉海康摄像机的rtsp流时可以采用域名方式进行:

rtsp://HKadmin@12345@www.hiddns.com:80//466073822:553

更详细的介绍可以看这个:http://www.avpk.cn/index.php?m=article&f=view&id=58

你也可以启动拉流并转码功能,这样可以把拉到的非H.264和AAC编码的视频流转码成H.264+AAC格式,符合标准应用。启动转码会占用CPU资源。

当正确输入拉流的地址后,点击确定,拉流直播频道创建完成。

这时候就可以通过页面来测试拉到的直播流了,你能够看到有客户端接入时,直播频道列表中显示出码流,客户端退出时,对应的频道码流为0

48e7e6f547a80dc7a618bdcce1b66192.png

操作过程,请注意看日志,一般出现的问题都会在日志中有所记录。

另外,若您想把拉到的rtsp进行录像或者想对拉到的rtsp进行hls直播,就不能选择客户端退出时候关闭拉流了。