Hisi视频相关
环境
- Platform: Hi3516DV100
- Kernel: v3.4
Hisi视频流程
VI -> VPSS -> CHN -> VENCcat /proc/vpss
,详见官方文档proc调试
Hisi的90°旋转:
https://blog.csdn.net/wangweiqiang1325/article/details/75455395
方式:
- 在VI采集时旋转,但有很多限制条件,详情见MPP文档
- 在VPSS通道旋转,HI_MPI_VPSS_SetRotate
采用在VPSS通道旋转:
- vpss的grp(
VPSS_GRP_ATTR_S
)和 VPSS的CHN MODE(VPSS_CHN_MODE_S
)里面的宽高,都设置为1280x720,旋转之前的默认宽高 - vpss ch需要设置图像格式为非压缩(很重要!!):
stVpssChnMode.enCompressMode = COMPRESS_MODE_NONE
; - 设置vpss的通道旋转90度:
HI_MPI_VPSS_SetRotate
- check下VPSS CHN OUTPUT RESOLUTION里面的宽高状态,是不是已经变成720x1280了?
- 如果第4步ok的话,venc设置为720x1280,宽高互换。
Hisi裁剪:
方式:
- 在VI采集时裁剪
- VPSS的group 的裁剪和 chn 的裁剪
- 编码裁剪
采用编码裁剪:
- 修改
VENC_ATTR_H264_S
stH264Attr.u32PicWidth = stPicSize.u32Width/2; stH264Attr.u32PicHeight = stPicSize.u32Height;
- 在创建VENC-CHN(
HI_MPI_VENC_CreateChn
)之后,设置裁剪HI_MPI_VENC_SetCrop
:VENC_CROP_CFG_S cropInfo; cropInfo.bEnable = HI_TRUE; cropInfo.stRect.s32X = stPicSize.u32Width/4; cropInfo.stRect.s32Y = 0; cropInfo.stRect.u32Width = stPicSize.u32Width/2; cropInfo.stRect.u32Height = stPicSize.u32Height; s32Ret = HI_MPI_VENC_SetCrop(VencChn, &cropInfo); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VENC_SetCrop failed with %#x\n", s32Ret); return HI_FAILURE; }
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论