鸿蒙5.0&next开发【典型场景的视频编码配置】音视频编解码

典型场景的视频编码配置

此文档描述了AVCodec视频编码能力在不同应用场景下的推荐配置参数,供调用者根据实际应用场景进行视频编码应用的开发。

视频编码在视频通话、视频会议、直播、视频编辑、视频分享等场景均有广泛使用,按照体验要求,上述场景可归纳划分为低时延、实时流媒体、离线编码三大类别应用场景。

本文将给出三大类别应用场景下视频编码的推荐参数配置,供调用者根据不同的应用场景下的需求进行参数配置选择。

通用开发步骤

在CMake脚本中链接动态库

target_link_libraries(sample PUBLIC libnative_media_codecbase.so)
target_link_libraries(sample PUBLIC libnative_media_core.so)
target_link_libraries(sample PUBLIC libnative_media_venc.so)
cmake

说明:

上述’sample’字样仅为示例,此处由调用者根据实际工程目录自定义。

添加头文件

#include 
#include 
#include 
#include 
#include 
c++ 

低时延场景

低时延编码场景包括视频通话、视频会议、连麦直播等对端到端时延要求较高的交互式应用。

开发指导

基础编码流程请参考[视频编码],下面仅针对编码器配置阶段做具体说明。

  1. 校验特性。

    在创建编码器实例前,校验视频编码器是否支持低时延特性。若支持,则配置编码器参数阶段可以使能低时延特性。否则不能配置此参数。

    // 1.1 获取对应视频编码器能力句柄,此处以H.265为例
    OH_AVCapability *cap = OH_AVCodec_GetCapability(OH_AVCODEC_MIMETYPE_VIDEO_HEVC, true);
    // 1.2 通过特性能力查询接口校验是否支持低时延特性
    bool isSupported = OH_AVCapability_IsFeatureSupported(cap, VIDEO_LOW_LATENCY);
    c++ 
    
  2. 配置编码器参数。

    在配置编码器参数阶段,配置适合低时延编码场景的参数。

    低时延编码场景,典型分辨率的编码参数(以H.265为例)推荐如下:

    分辨率 帧率(fps) 码率(kpbs) 接入帧间隔(ms) 码控模式
    1902x1080 30 1500 -1 CBR
    1280x720 30 1000 -1 CBR
    960x540 30 700 -1 CBR
    640x360

你可能感兴趣的:(鸿蒙系列,视频编解码,音视频,harmonyos,华为,鸿蒙系统)