HarmonyOS 鸿蒙Next 如何从编码器回调帧中获取SPS数据和PPS数据

发布于 1周前 作者 wuwangju 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何从编码器回调帧中获取SPS数据和PPS数据

参考文档 https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/media/avcodec/video-encoding.md 实现了surface输入的录屏编码。 编码后的回调OnNewOutputBuffer,会不断输出buffer,如何从这个buffer中提取sps信息和pps信息呢。

void OnNewOutputBuffer(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData) {
 	//提取sps信息

	//提取pps信息

}

更多关于HarmonyOS 鸿蒙Next 如何从编码器回调帧中获取SPS数据和PPS数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

首先,文档我看是4.1的文档,我们可以参考下最新的5.0文档:https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/media/avcodec/video-encoding.md

然后,关于buffer,可以参考下编码与解码现成的项目,看是否能解决现在的业务问题:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/media/avcodec/audio-video-muxer.md

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/media/avcodec/audio-decoding.md

pps与psp的内容我这边持续研究下。

更多关于HarmonyOS 鸿蒙Next 如何从编码器回调帧中获取SPS数据和PPS数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next中,从编码器回调帧中获取SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)数据,可以通过以下步骤实现:

  1. 注册回调: 在编码器初始化时,确保已正确注册了回调函数。此回调函数会在编码器完成编码后,被系统调用。

  2. 回调函数处理: 在回调函数中,检查回调的数据类型。如果数据类型是编码后的帧数据,通常包含了编码信息(如SPS和PPS)。

  3. 提取SPS和PPS: 编码器的API或SDK通常会提供访问帧头信息的方法。通过这些方法,可以提取出SPS和PPS数据。这些数据通常以二进制形式存在,并且包含于帧头信息中。

  4. 保存或使用数据: 提取出SPS和PPS后,可以将它们保存到文件、内存或其他存储介质中,或者直接用于解码器等后续处理。

注意,具体实现方式依赖于使用的编码器库或SDK。开发者需要参考编码器库或SDK的文档,以获取准确的API调用和数据处理方法。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部