我在学习鸿蒙系统的音视频处理时,遇到了AVMuxer和AVDemuxer这两个模块。请问,它们分别负责什么功能?在使用场景上有什么区别和联系?能否通过实例来说明它们的作用?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
我在学习鸿蒙系统的音视频处理时,遇到了AVMuxer和AVDemuxer这两个模块。请问,它们分别负责什么功能?在使用场景上有什么区别和联系?能否通过实例来说明它们的作用?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
模块 | 功能描述 | 主要接口及作用 |
---|---|---|
AVDemuxer | 音视频解封装 | - OH_AVDemuxer_CreateWithSource :通过source实例对象创建解封装器实例。- OH_AVDemuxer_Destroy :销毁解封装器实例并清理内部资源。- OH_AVDemuxer_SelectTrackByID :选中指定轨道,解封装器将会从该轨道中读取数据。- OH_AVDemuxer_ReadSample :从选中轨道中获取当前位置压缩帧及相关信息。- OH_AVDemuxer_SeekToTime :根据设定的跳转模式,将所有选中的轨道定位到指定时间附近。 |
AVMuxer | 音视频封装 | - OH_AVMuxer_Create :通过文件描述符和封装格式创建封装器实例。- OH_AVMuxer_SetRotation :设置视频的旋转角度(顺时针,且旋转角度必须为0、90、180或270)。- OH_AVMuxer_AddTrack :向封装器添加音视频轨。- OH_AVMuxer_Start :开始封装过程。- OH_AVMuxer_Destroy :清理内部资源,销毁封装器实例。 |
功能上的互补:
使用场景上的协同:
假设你正在开发一个鸿蒙系统上的音视频处理应用,该应用需要实现以下功能:从用户图库中选择一个视频文件,对其进行解码和二次处理(如添加滤镜),然后将处理后的视频保存为新的文件。在这个过程中,你可以使用AVDemuxer和AVMuxer模块来实现。
使用AVDemuxer进行解封装:
对视频流数据进行处理:
使用AVMuxer进行封装:
通过以上步骤,你就可以实现一个完整的音视频处理流程,包括从用户图库中选择视频、进行解码和二次处理、以及将处理后的视频保存为新的文件。在这个过程中,AVDemuxer和AVMuxer模块分别负责解封装和封装的功能,它们在使用场景上相互协同,共同完成了音视频处理的任务。
1 回答523 阅读✓ 已解决
1 回答531 阅读
1 回答471 阅读
487 阅读
485 阅读
476 阅读
440 阅读
AVMuxer模块提供用于音视频封装功能的接口。对应的开发指南及样例可参考媒体数据封装。
AVDemuxer模块提供从媒体文件码流中提取sample的接口。对应的开发指南及样例可参考媒体数据解析。