局域网中使用RTSP协议获取炬思X5视频流

1. 前言

本文描述了如何从炬思X5 相机中获取视频流。炬思X5相机除了支持标准的RTSP的视频流传输协议外,还支持TCP协议获取H264的裸视频流。这两种方式,都是相机充当流服务器的角色,客户端播放器采用拉流的方式获取相机的视频流。

如有进一步的开发需求,请发邮件到info@driftsee.com

 

2. 相机工作在AP模式下获取视频流

缺省情况下,炬思X5相机的视频流的默认传输协议为TCP方式, 即相机作为了流服务器提供H264格式的RAW视频数据,客户端采用TCP协议获取一帧一帧的H264视频帧,该种协议只支持获取视频流,没有声音。

1) 获取TCP视频流:

在SD卡的根目录下创建 “fmcam.conf”命名的文本文件,文件内容如下:

IMG_256

 

请下载参考fmcam.conf

PC安装VLC播放器, 在菜单“媒体/打开网络串流”中输入“tcp://192.168.42.1:8001”,另编辑选项中增加":demux=h264"参数,即可获得TCP协议的视频流, 其中“192.168.42.1”为相机的IP地址。

IMG_257  

 

   或者使用ffplay播放器:     

  ffplay -fflags nobuffer -analyzeduration 1000 tcp://192.168.42.1:8001

 

2)  获取RTSP视频流:

在SD卡的根目录下创建 “fmcam.conf”命名的文本文件,文件内容如下:

IMG_258

 

PC安装VLC播放器, 在菜单“媒体/打开网络串流”中输入“rtsp://192.168.42.1/live”,即可获得RTSP协议的视频流,其中“192.168.42.1”为相机的IP地址。

IMG_259

或者使用ffplay播放器:

ffplay -fflags nobuffer rtsp://192.168.42.1/live

 

3. 相机工作为STA模式连接外部路由器或个人热点的局域网拉流模式

1) 获取RTSP协议的视频流

a.   配置

在相机SD卡的根目录创建 “fmcam.conf”命名的文本文件,并指定采用rtsp协议:

IMG_260

 

其中 “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地址,网关请根据实际网络情况设置。

IMG_261

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

IMG_262

上面的脚本设置输出分辨率为720P,码率为2Mbps, 帧率为30帧的RTSP视频流。