---
title: 启动视频流云手机实例
description: "可根据需求配置cfct_config文件中的参数启动不同帧率的视频流云手机实例，配置default.prop文件中的参数启动不同网络连接方式、抓图和初始编码、使用WebRTC进行数据传输的视频流云手机实例。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/armnative/kunpengcpsvideo_20_0064.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/armnative/kunpengcpsvideo_20_0064.html
indexId: 76424dcc46be7cc0768c82992282aaebced8578220c816b70e2a7367b3a5e7ed79
---
# 启动视频流云手机实例

可根据需求配置cfct_config文件中的参数启动不同帧率的视频流云手机实例，配置default.prop文件中的参数启动不同网络连接方式、抓图和初始编码、使用WebRTC进行数据传输的视频流云手机实例。

1. （可选）若需要启动不同帧率的视频流云手机实例，则需要修改cfct_config配置文件中的帧率属性值。默认值帧率为30fps：

```
BUILD_FPS=30
```


2. （可选）若需要启动不同网络连接方式、抓图和初始编码参数的视频流云手机实例，则需要进行以下配置。

  a. 从DemoVideoEngine.tar.gz中解压获取“vendor”文件夹，并将其中的“default.prop”文件拷贝至当前目录。
    1 2 3 cd /home/kbox_video/ tar -xvf DemoVideoEngine.tar.gz vendor cp vendor/default.prop .

  b. 配置抓图和编码参数。通过修改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码率缓冲区大小。 | \-1：自动模式 0：禁用峰值比特率限制 [min\_vbv\_size ~ 3000 ]：在30fps帧率时min\_vbv\_size为34。 在60fps帧率时min\_vbv\_size为17。 | 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 |


  c. 如果要改变自适应分辨率的宽高，建议同步修改屏幕像素密度以达到最佳显示效果，推荐的配置说明如    表2
所示。
**表2 不同分辨率配置说明**

| 屏幕宽度 | 屏幕密度（BUILD\_DENSITY） |
| --- | --- |
| 720 | 320 |
| 1080 | 480 |


    改变视频输出分辨率（与上次启动时配置不同）时，会改变AOSP系统和应用的渲染分辨率，可能会导致部分应用出现兼容性问题或渲染问题。一般此类问题可以通过重新启动应用解决，因此建议在修改分辨率前返回桌面，同时清空后台应用，以提升用户使用体验。

  d. 若需要启动使用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。 | 可用的起始端 |


3. 启动视频流云手机。
  1 2 cd /home/kbox_video/ ./cfct_video start ${index1} ${index2}

  上述命令中${index1}与${index2}为设备号，其中${index2}可缺省。 例：./cfct_video start 2（创建第二号设备） ./cfct_video start 2 5（创建第二到第五号设备）

4. 查看视频流云手机。
  1 docker ps -a

  回显示例如下。

  确认所启动的容器存在，且状态正常。

5. 确认视频流云手机是否启动成功，其中${index}为启动实例的编号，参见4中命令回显所示的最后一列，如android_35，${index}即为35。
  1 2 docker exec -it android_${index} sh getprop sys.boot_completed

  如果回显信息中sys.boot_completed显示为“1”，则表示启动成功。
