启动视频流云手机实例
可根据需求配置cfct_config文件中的参数启动不同帧率的视频流云手机实例,配置default.prop文件中的参数启动不同网络连接方式、抓图和初始编码、使用WebRTC进行数据传输的视频流云手机实例。
- (可选)若需要启动不同帧率的视频流云手机实例,则需要修改cfct_config配置文件中的帧率属性值。默认值帧率为30fps:
BUILD_FPS=30
- (可选)若需要启动不同网络连接方式、抓图和初始编码参数的视频流云手机实例,则需要进行以下配置。
- 从DemoVideoEngine.tar.gz中解压获取“vendor”文件夹,并将其中的“default.prop”文件拷贝至当前目录。
1 2 3
cd /home/kbox_video/ tar -xvf DemoVideoEngine.tar.gz vendor cp vendor/default.prop .
- 配置抓图和编码参数。通过修改default.prop中对应属性值,或者在启动后在容器内通过setprop命令更改对应属性,属性如表1所示。
表1 视频流引擎配置属性字段描述表 字段名称
字段描述
取值范围
默认值
vmi.video.encodertype
编码器类型配置项,当该项配置为CPU,即使用软编时,若云手机需要运行较大负载应用,为防止默认绑核方式(2容器2核)的CPU资源不足,建议更改绑核方式为绑NUMA,修改方法如下:
将cfct_config配置文件中“CPU_BIND_MODE”字段修改为“1”。
- 0:CPU(CPU软编码器编码)
- 1:VPU(外置硬件编码器编码)
- 2:GPU(暂不支持)
1:默认VPU(外置硬件编码器编码)
vmi.video.videoframetype
帧数据输出格式。
- 0:H264
- 1:YUV(只有当encodertype取值为0时支持)
- 2:RGB(暂不支持)
- 3:H265(vmi.video.encodertype取值为0时不可用)
0:H264
vmi.video.frame.width
自适应分辨率宽度(必须是8的倍数)。
360~1440
720
vmi.video.frame.height
自适应分辨率高度(必须是8的倍数)。
360~3200
1280
vmi.video.frame.density
自适应分辨率屏幕像素密度。
240~640
320
vmi.video.encode.gopsize
编码GOP大小配置项。
30~3000
30:默认编码GOP大小为30
vmi.video.encode.profile
编码profile配置项(H.265编码仅支持配置main)。
- 0:baseline(仅H264支持)
- 1:main
- 2:high(仅H264支持)
0:baseline
vmi.video.encode.bitrate
编码码率。
500000~50000000
单位bps
3000000
vmi.video.encode.forcekeyframe
编码强制I帧配置项。
- 0:不触发编码强制I帧
- 1:在下一帧强制生成I帧
0:默认不触发编码强制I帧
vmi.video.encode.rcmode
编码格式参数项。
- 0:ABR平均码率模式(暂不支持)
- 1:CRF画质优先模式(暂不支持)
- 2:CBR恒定码率模式
- 3:CAPPED_CRF画质优先并限制最大码率模式
2:CBR恒定码率模式
vmi.video.encode.crf
crf码控级别。
0-51
34
vmi.video.encode.maxcrfrate
crf码率峰值。
500000~100000000
10000000
vmi.video.encode.vbvbuffersize
crf码率缓冲区大小。
1000
vmi.video.encode.interpolation
补帧参数项。
- 0:关闭补帧
- 1:开启补帧
1:开启补帧
vmi.audio.audiotype
音频输出格式。
- 0:OPUS
- 1:PCM
0:OPUS
vmi.audio.encode.sampleinterval
音频输出采样间隔。
- 5:5ms(暂不支持)
- 10:10ms
- 20:20ms(暂不支持)
10:10ms
vmi.audio.encode.bitrate
音频OPUS编码码率(bps)。
13200~512000
192000
vmi.mic.audiotype
麦克风输入格式。
- 0:OPUS
- 1:PCM
0:OPUS
- 如果要改变自适应分辨率的宽高,建议同步修改屏幕像素密度以达到最佳显示效果,推荐的配置说明如表2所示。
改变视频输出分辨率(与上次启动时配置不同)时,会改变AOSP系统和应用的渲染分辨率,可能会导致部分应用出现兼容性问题或渲染问题。一般此类问题可以通过重新启动应用解决,因此建议在修改分辨率前返回桌面,同时清空后台应用,以提升用户使用体验。
- 若需要启动使用WebRTC进行数据传输的视频流云手机实例,则需要修改default.prop中对应属性值配置视频和音频的输出格式, 需要配置的属性字段描述如表3所示。
表3 WebRTC特性使用需要配置的属性字段描述表 字段名称
字段描述
取值范围
vmi.video.encodertype
编码器类型配置项。
- 0:CPU(CPU软编码器编码)
- 1:VPU(外置硬件编码器编码)
- 2:GPU(暂不支持)
vmi.video.videoframetype
帧数据输出格式。
- 0:H264
- 1:YUV(只有当encodertype取值为0时支持)
vmi.audio.audiotype
音频输出格式。
1(目前WebRTC只支持音频PCM的输出格式)
vmi.webrtc.connection.serverip
云手机服务端的IP地址。
具体IP地址
vmi.webrtc.connection.udpbeginport
云手机服务器UDP可用起始端口,默认使用2个端口,则在确定了起始端口后,云手机使用的udp端口为:起始端口+${index}*2-1,起始端口+${index}*2。
可用的起始端
- 从DemoVideoEngine.tar.gz中解压获取“vendor”文件夹,并将其中的“default.prop”文件拷贝至当前目录。
- 启动视频流云手机。
1 2
cd /home/kbox_video/ ./cfct_video start ${index1} ${index2}
上述命令中${index1}与${index2}为设备号,其中${index2}可缺省。
例:./cfct_video start 2(创建第二号设备)
./cfct_video start 2 5(创建第二到第五号设备)
- 查看视频流云手机。
1
docker ps -a
回显示例如下。
确认所启动的容器存在,且状态正常。
- 确认视频流云手机是否启动成功,其中${index}为启动实例的编号,参见4中命令回显所示的最后一列,如android_35,${index}即为35。
1 2
docker exec -it android_${index} sh getprop sys.boot_completed
如果回显信息中sys.boot_completed显示为“1”,则表示启动成功。