AVMuxer

概述

AVMuxer模块提供用于音视频封装功能的函数。

@syscap SystemCapability.Multimedia.Media.Muxer

起始版本:

10

汇总

文件

名称 描述
native_avmuxer.h 声明用于音视频封装的Native API。
引用文件:<multimedia/player_framework/native_avmuxer.h>
:libnative_media_avmuxer.so

函数

名称 描述
*OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format) 通过文件描述符fd和封装格式创建OH_AVMuxer实例。
OH_AVMuxer_SetRotation (OH_AVMuxer *muxer, int32_t rotation) 设置视频的旋转角度(顺时针)。
OH_AVMuxer_AddTrack (OH_AVMuxer *muxer, int32_t *trackIndex, OH_AVFormat *trackFormat) 向封装器添加媒体轨。
OH_AVMuxer_Start (OH_AVMuxer *muxer) 开始封装。
OH_AVMuxer_WriteSample (OH_AVMuxer *muxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr info) 将数据写入封装器。
OH_AVMuxer_Stop (OH_AVMuxer *muxer) 停止封装。
OH_AVMuxer_Destroy (OH_AVMuxer *muxer) 清理内部资源,销毁OH_AVMuxer实例。

函数说明

OH_AVMuxer_AddTrack()

OH_AVErrCode OH_AVMuxer_AddTrack (OH_AVMuxer *muxer, int32_t *trackIndex, OH_AVFormat *trackFormat)

描述:

向封装器添加媒体轨。

该接口必须在OH_AVMuxer_Start前调用。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。
trackIndex 用于获取该轨的索引,该值在OH_AVMuxer_WriteSample接口中使用。 如果媒体轨添加成功,该值大于或等于0,否则小于0。
trackFormat 指向OH_AVFormat实例的指针。

返回:

执行成功返回AV_ERR_OK,否则返回具体错误码,参考OH_AVErrCode

起始版本:

10

OH_AVMuxer_Create()

OH_AVMuxer* OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format)

描述:

通过文件描述符fd和封装格式创建OH_AVMuxer实例。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
fd 用读写方式打开(O_RDWR),由调用者关闭该fd。
format 封装输出的文件格式,参考OH_AVOutputFormat

返回:

返回一个指向OH_AVMuxer实例的指针, 需要调用OH_AVMuxer_Destroy销毁。

起始版本:

10

OH_AVMuxer_Destroy()

OH_AVErrCode OH_AVMuxer_Destroy (OH_AVMuxer *muxer)

描述:

清理内部资源,销毁OH_AVMuxer实例。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。

返回:

执行成功返回AV_ERR_OK,需调用者置空muxer;否则返回具体错误码,参考OH_AVErrCode

起始版本:

10

OH_AVMuxer_SetRotation()

OH_AVErrCode OH_AVMuxer_SetRotation (OH_AVMuxer *muxer, int32_t rotation)

描述:

设置视频的旋转角度(顺时针)。

这个接口必须在OH_AVMuxer_Start前调用。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。
rotation 角度,必须为0、90、180 或 270。

返回:

执行成功返回AV_ERR_OK,否则返回具体错误码,参考OH_AVErrCode

起始版本:

10

OH_AVMuxer_Start()

OH_AVErrCode OH_AVMuxer_Start (OH_AVMuxer *muxer)

描述:

开始封装。

该接口必须在OH_AVMuxer_AddTrack后,OH_AVMuxer_WriteSample前调用。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。

返回:

执行成功返回AV_ERR_OK,否则返回具体错误码,参考OH_AVErrCode

起始版本:

10

OH_AVMuxer_Stop()

OH_AVErrCode OH_AVMuxer_Stop (OH_AVMuxer *muxer)

描述:

停止封装。

封装器一旦停止,不能重新开始。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。

返回:

执行成功返回AV_ERR_OK,否则返回具体错误码,参考OH_AVErrCode

起始版本:

10

OH_AVMuxer_WriteSample()

OH_AVErrCode OH_AVMuxer_WriteSample (OH_AVMuxer *muxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr info)

描述:

将数据写入封装器。

该接口必须在OH_AVMuxer_Start后,OH_AVMuxer_Stop前调用。 调用者需要保证数据写入正确的轨道,并按时间顺序排列。

@syscap SystemCapability.Multimedia.Media.Muxer

参数:

名称 描述
muxer 指向OH_AVMuxer实例的指针。
trackIndex 数据对应的媒体轨的索引。
sample 写入的数据,编码或解封装得到的数据。
info 写入数据的信息,参考OH_AVCodecBufferAttr

返回:

执行成功返回AV_ERR_OK,否则返回具体错误码,参考OH_AVErrCode

起始版本:

10