基于NDK开发,通过AVDemuxer获取视频某帧,然后通过VideoDecoder进行视频解码,最后将获取数据返回给ArkTS层,此方案是否可行?
因为当前项目API为11,AVImageGenerator接口只适配API12,所有需要换一种方案。
对于通过第三方库mp4parse进行解决,后续考虑由此第三方库体积太大,所有想替换一个轻量化方案。
是否上述所说能否实现,或者还有其他方案可行
基于NDK开发,通过AVDemuxer获取视频某帧,然后通过VideoDecoder进行视频解码,最后将获取数据返回给ArkTS层,此方案是否可行?
因为当前项目API为11,AVImageGenerator接口只适配API12,所有需要换一种方案。
对于通过第三方库mp4parse进行解决,后续考虑由此第三方库体积太大,所有想替换一个轻量化方案。
是否上述所说能否实现,或者还有其他方案可行
1 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答983 阅读
1 回答952 阅读
方案可行,具体操作步骤如下:
1.通过AVDemuxer获取视频帧:
使用AVDemuxer读取视频文件,获取视频帧数据。
将获取到的视频帧数据存储在AVBuffer中。
2.视频解码:
创建一个VideoDecoder实例,并配置解码器。
使用VideoDecoder的PushInputBuffer方法将AVBuffer中的数据推入解码器进行解码。
解码器会返回解码后的数据,可以通过回调函数获取解码结果。
3.将获取数据返回给ArkTS层:
从回调函数中获取解码后的数据。
将数据返回给ArkTS层进行处理。
在这个过程中,需要注意以下几点:
①确保AVDemuxer和VideoDecoder的初始化和配置正确;
②处理解码过程中可能出现的错误,并进行相应的错误处理;
③确保解码器在使用完毕后及时释放资源,避免内存泄漏。
参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/audio-video-demuxer-V5
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/video-decoding-V5