启动视频流云手机实例

可根据需求配置cfct_config文件中的参数启动不同分辨率和帧率的视频流云手机实例,配置default.prop文件中的初始视频编码参数。当使用WebRTC进行数据传输时,需要根据需求配置default.prop中的抓图分辨率;当后续使用apk访问视频流云手机时,可以在apk视图中修改抓图分辨率。

  1. (可选)若需要启动不同帧率的视频流云手机实例,则需要修改cfct_config配置文件中的帧率属性值。默认值帧率为30fps,720p和1080p分辨率下也可支持60fps。

    BUILD_FPS=30

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

    1. 从DemoVideoEngine.tar.gz中解压获取“vendor”文件夹,并将其中的“default.prop”文件拷贝至当前目录。
      1
      2
      3
      cd /home/kbox_video/
      tar -xvf DemoVideoEngine.tar.gz vendor
      cp vendor/default.prop .
      
    2. 配置初始编码参数。通过修改default.prop中对应属性值来初始编码参数,属性描述请参见《视频流引擎 开发指南》中的“视频流引擎非商用部分对外可配置功能开关说明”章节的视频流引擎属性配置字段描述表,参考vmi.video.encode开头的属性。
    3. 配置抓图分辨率。
      若使用WebRTC进行数据传输访问视频流云手机实例,通过修改default.prop中对应属性值来修改抓图分辨率,属性描述请参见《视频流引擎 开发指南》中的“视频流引擎非商用部分对外可配置功能开关说明”章节的视频流引擎属性配置字段描述表,参考vmi.video.frame开头的属性,启动后在容器内通过setprop命令更改对应属性。如果要改变分辨率,建议同步在cfct_config文件中修改屏幕像素密度以达到最佳显示效果,推荐的配置说明如下表1所示。
      表1 不同分辨率配置说明

      屏幕宽度(BUILD_WIDTH)

      屏幕密度(BUILD_DENSITY)

      720

      320

      1080

      480

      1440

      640

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

    4. 配置视频和音频的输出格式。

      若使用WebRTC进行数据传输访问视频流云手机实例,则需要修改default.prop中对应属性值配置视频和音频的输出格式, 需要配置的属性字段请参见《视频流引擎 开发指南》中的“视频流引擎非商用部分对外可配置功能开关说明”章节的WebRTC属性配置项字段描述表。

    5. 使能自适应分辨率开关。

      若使用apk方式访问视频流云手机实例,可在apk的设置页中使能自适应分辨率开关,参见apk方式访问。若不使能自适应分辨率开关,则需要修改default.prop中对应属性值来修改抓图分辨率,属性描述请参见《视频流引擎 开发指南》中的“视频流引擎非商用部分对外可配置功能开关说明”章节的视频流引擎属性配置字段描述表,参考vmi.video.frame开头的属性。如果要改变分辨率,建议同步在cfct_config文件中修改屏幕像素密度以达到最佳显示效果,推荐的配置说明如前表1所示。

  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
      
      1
      getprop sys.boot_completed
      

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