问题现象
在视频录制的开发过程中,该如何选择合适的Profile?VideoOutput.Profile跟AVRecorderProfile之间有什么关系?
解决方案
- 如何选择合适的Profile
首先通过getSupportedOutputCapability接口查询当前设备支持的视频输出规格,然后再根据分辨率、输出格式、帧率等维度出发,从中挑选符合业务需求的规格去创建VideoOutput和AVRecorder。
完整的示例代码可参考录像实践(ArkTS)或录像实践(C/C++)。
- VideoOutput.Profile与AVRecorderProfile之间的关联与限制
VideoOutput的配置参数与AVRecorder配置参数之间的关联和限制主要有如下几点:
- VideoOutput的分辨率要与AVRecorderProfile中的分辨率一致。
- AVRecorderProfile配置中的帧率不能超出VideoOutput的帧率规格的限制。
- 如果需要录制HDR视频,则VideoOutput的输出格式要选择camera.CameraFormat.CAMERA_FORMAT_YCBCR_P010或者camera.CameraFormat.CAMERA_FORMAT_YCRCB_P010,并且AVRecorderProfile配置参数中的isHdr需要设置为true。
常见FAQ
Q:Mate X6视频录制失败,界面显示黑屏,应该怎么解决?
A:代码中下发的视频帧率为60,但是X6并不支持这个帧率规格。建议使用getSupportedOutputCapability接口查询当前设备支持的视频规格,并从中选取支持的规格去实现业务需求。
Q:Mate70 Pro升级系统版本后,视频录制时出现黑屏,应该怎么解决?
A:预览流与视频流的分辨率不一致导致,请至少保持两边分辨率宽高比一致。
Q:视频录制分辨率为640*480时录制有问题,录制分辨率为1280*720可以正常录制,这是为什么?
A:录制的分辨率宽高比要与预览流的分辨率宽高比一致。