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

可根据需求配置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 | 编码器类型配置项，用于指定具体的视频编码器类型。当使用渲染流化一体显卡进行编码时，该配置项应设置为2。 渲染流化一体环境下，仅支持GPU选项，不支持CPU与VPU选项。 | 0：CPU（CPU软编码器编码） 1：VPU（外置硬件编码器编码） 2：GPU（显卡硬编码器） | 1：默认VPU（外置硬件编码器编码） |
| vmi.video.videoframetype | 帧数据输出格式。 | 0：H264 1：YUV（暂不支持） 2：RGB（暂不支持） 3：H265（vmi.video.encodertype取值为0时不可用） | 0：H264 |
| vmi.video.frame.width | 自适应分辨率宽度（必须是2的倍数）。 | 360~1440 | 720 |
| vmi.video.frame.height | 自适应分辨率高度（必须是2的倍数）。 | 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\-30000000 单位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.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 | 编码器类型配置项。 | 1：VPU（外置硬件编码器编码） 2：GPU（显卡硬编码器） |
| vmi.video.videoframetype | 帧数据输出格式。 | 0：H264 |
| 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. 查看视频流云手机。

  - 基于Docker容器运行时的视频流云手机。
    1 docker ps -a

    回显示例如下。

  - 基于Containerd容器运行时的视频流云手机。
    1 nerdctl ps -a

    回显示例如下。

确认所启动的容器存在，且状态正常。
5. 确认视频流云手机是否启动成功，其中${index}为启动实例的编号，参见4中命令回显所示的最后一列，如android_35，${index}即为35。
  - 基于Docker容器运行时的视频流云手机。
    1 docker exec -it android_${index} sh

  - 基于Containerd容器运行时的视频流云手机。
    1 nerdctl exec -it android_${index} sh

```
getprop sys.boot_completed
```

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