欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

红梦 NEXT 发展实践:[视频文件裁剪

最编程 2024-03-14 16:24:49
...

使用OpenHarmony系统提供的ffmpeg三方库的能力在系统中实现了音视频文件裁剪的功能,并通过NAPI提供给上层应用调用。

基础信息

image.png

视频文件裁剪

简介

在OpenHarmony系统整个框架中有很多子系统,其中多媒体子系统是OpenHarmony比较重要的一个子系统,OpenHarmony中集成了ffmpeg的第三方库,多媒体的很多实现都与ffmpeg库有关,媒体文件的处理有很多应用场景,比如音视频的裁剪,音视频的分离等等。有些功能OpenHarmony多媒体子系统没有提供给外部相应的接口,我们可以通过NAPI的机制自己实现一套接口,提供给应用层去调用。

效果展示

本文通过实现音视频文件裁剪的功能,给小伙伴熟悉整个流程。以下是效果图 

首选通过选择源文件,来设置输入文件的参数,在裁剪设置中设定裁剪的起始时间和结束时间(单位为秒),参数设定完以后,我们点击裁剪按钮,这样系统对源文件进行媒体文件的裁剪,裁剪成功后,会显示播放按钮。

在整个操作过程中,源文件选择模块的播放按钮是对源文件进行播放,裁剪模块的播放按钮是对裁剪后文件的播放,我们可以通过播放观看结果是否正确。

目录结构

样例系统端说明

样例涉及两部分代码
本样例运行在OpenHarmony3.1 release的版本中,在Hi3516DV300平台上运行。
第一部分是应用端代码,在MediaCuteDemo目录中,使用DevEco Studio工具进行编译生成hap包,需要将@ohos.myffmpegdemo.d.ts放到OpenHarmony本地的sdk api目录中。
另一部分代码是myffmpegsys目录,这部分代码是在OpenHarmony源码中编译,主要提供napi接口。
1.myffmpegsys作为一个新的子系统集成到OpenHarmony源码中,放置在OpenHarmony源码的根目录下,和foundation在同一目录下。
2.配置build/subsystem_config.json

3.配置产品的productdefine/common/products/XXXX.json(其中XXXX对应的设备型号)

4.配置好了我们的子系统以及对应的组件后,就可以重新编译OpenHarmony源码,编译成功后刷机。

样例应用端说明

1.需要将应用中MediaCuteDemo\entry\src\main\js\MainAbility\common\video目录下的所有mp4文件通过hdc file send命令拷贝到设备的一下目录中/data/accounts/account_0/appdata/com.example.mediacutedemo/com.example.entry/com.example.entry.MainAbility 2.设置/data/accounts/account_0/appdata/com.example.mediacutedemo/com.example.entry/com.example.entry.MainAbility目录下mp4文件的权限和所有者

鸿蒙OpenHarmony知识已更新←前往

7c4c6d2ecaed023f7acc2711bdc15e0a.jpeg