局域网中使用RTSP协议获取炬思X5视频流
1. 前言
本文描述了如何从炬思X5 相机中获取视频流。炬思X5相机除了支持标准的RTSP的视频流传输协议外,还支持TCP协议获取H264的裸视频流。这两种方式,都是相机充当流服务器的角色,客户端播放器采用拉流的方式获取相机的视频流。
如有进一步的开发需求,请发邮件到info@driftsee.com
2. 相机工作在AP模式下获取视频流
缺省情况下,炬思X5相机的视频流的默认传输协议为TCP方式, 即相机作为了流服务器提供H264格式的RAW视频数据,客户端采用TCP协议获取一帧一帧的H264视频帧,该种协议只支持获取视频流,没有声音。
1) 获取TCP视频流:
在SD卡的根目录下创建 “fmcam.conf”命名的文本文件,文件内容如下:
请下载参考fmcam.conf
PC安装VLC播放器, 在菜单“媒体/打开网络串流”中输入“tcp://192.168.42.1:8001”,另编辑选项中增加":demux=h264"参数,即可获得TCP协议的视频流, 其中“192.168.42.1”为相机的IP地址。
或者使用ffplay播放器:
ffplay -fflags nobuffer -analyzeduration 1000 tcp://192.168.42.1:8001
2) 获取RTSP视频流:
在SD卡的根目录下创建 “fmcam.conf”命名的文本文件,文件内容如下:
PC安装VLC播放器, 在菜单“媒体/打开网络串流”中输入“rtsp://192.168.42.1/live”,即可获得RTSP协议的视频流,其中“192.168.42.1”为相机的IP地址。
或者使用ffplay播放器:
ffplay -fflags nobuffer rtsp://192.168.42.1/live
3. 相机工作为STA模式连接外部路由器或个人热点的局域网拉流模式
1) 获取RTSP协议的视频流
a. 配置
在相机SD卡的根目录创建 “fmcam.conf”命名的文本文件,并指定采用rtsp协议:
其中 “router_ssid”及“router_password”为外部路由器的ssid及password.
"static_ip”设置为相机的静态IP地址 (请使用一个路由器未分配的地址),“static_router”为路由器网关地址, “static_netmask”为网络的子网掩码。只有在脚本中同时指定“static_ip”,“static_router”及“static_netmask”三个参数,才使用静态IP地址,缺一个都会采用动态分配IP地址。
也可以不指定“static_ip”,“static_router”及“static_netmask”, 则动态为相机分配IP地址。
b. 获取RTSP视频流
PC安装VLC播放器 (可点击 VLC官网 下载最新的VLC播放器), 在菜单“媒体/打开网络串流”中输入“rtsp://192.168.31.155/live”,即可获得RTSP协议的视频流, 其中“192.168.31.155”为相机的IP地址,这个IP地址只是给出一个示范,相机实际的IP地址,网关请根据实际网络情况设置。
4. 设置视频流参数
炬思X5支持客户端调用 API修改视频流的参数,也可以通过脚本来设置视频流的参数:
视频流的分辨率:
stream_resolution=1080P
值可分别为:1080P, 720P, WVGA 不指定缺省为720P
视频流的码率:
stream_bitrate=600000
值可分别为: 1000000为1Mbps(Bit)码率左右, 600000为600kbps, 不指定缺省为2Mbps
视频流的帧率:
stream_framerate=30
值可支持如下: 30,25, 15,6, 5,3
上面的脚本设置输出分辨率为720P,码率为2Mbps, 帧率为30帧的RTSP视频流。