用cmake对ffmpeg的so库进行调用

用cmake对ffmpeg的so库进行调用,第1张

本文是在ffmpeg的编译完成的基础上用cmake对ffmpeg的so库进行调用

创建新项目的时候,记得勾选include c++ support,项目中会在main目录下自动创建cpp目录并生成一个现成的cpp文件

效果如下:

具体在CMakeLists中添加的Cmake命令用法,请参考 这篇文章

需要注意的是CMakelists的位置,CMAKE_SOURCE_DIR就代表CMakeLists所在的路径。我的项目中CMakeLists的路径是与build.gradle同级历差的

Androidstudio最新版好像创建完c++后自动生成的CMakeLists是在cpp目录下的,这个CMakeLists在哪都行,不过千万要记住修改几处调用CMakeLists路径的地方。有以橡烂启下几处:

1、CMakeLists中梁如用到CMAKE_SOURCE_DIR的地方

2、build.gradle中

include/libavcodec/avcodec.h是引用的so库的头文件,需要注意使用extern "C"包裹起来

参考链接:

1、 https://www.cnblogs.com/fnlingnzb-learner/p/7593488.html

2、 https://www.jianshu.com/p/a1fe55d5683b

编译FFmpeg用作二次开发音视频,得漏纯滚提前安装好Ubutu!!!

解压出来后进入ffmpeg解压目录,可以看到里面裤卖有各种文件、文档。需要关注的是configure文件。这个文件本身就是一个shell脚本,作用为生成makfile文件,然后使用make执行。

1、进入./android/armeabi-v7a2目录

2、打包编译好的文件

3、导出打包好的的tar包(导出保存在桌面)

4、解压返余之后

本文介绍自己编译sdl2,fdk-aac,x264,ffmpeg源袜吵磨码集成到Xcode工程中,其中fdk-aac,x264嵌套编译进ffmpeg中,并使用sdl播放音频,OPenGLES渲染视频实现简单播放器

若报错 fdk-aac-2.0.2/configure: No such file or directory ,则用我网盘中告斗的解压文件,里面包含了configure执行文件,执行 ./build.sh 后,

修改build-ffmpeg.sh文件为最新的版本4.3.2,修改CONFIGURE_FLAGS值中增加禁止生成可执行文件ffmpeg,ffplay,ffprobe,fdk-aac需要增加--enable-nonfree选项,fdk-aac和x264文件绝对路径要一致

将编译好的sdl,fdk-aac,x264,ffmpeg头文件和库文件(include和lib文件夹)

导入Xcode工程中并设置Header Search Path为

导入依赖的库AVFoudation.framework,CoreMedia.framework,VideoToolBox.framework,AudioToolBox.framework,lbz.tbd,libbz2.tbd,libiconv.tbd

使用ffmpeg库获取ffmpeg版本号

集成后可使用ffmpeg进行软解码,sdl播放音频,OpenGLES绘制视频实现一个简单播放器

开启子线程读取到MP4文件后,从MP4文件中解封装出h264文件和aac文件分别解码为YUV原始视频帧和pcm原始音频,将解封装出来的h264文件放入_vPktList,aac文件放入_aPktList

SDL通过回调的方式开启子线程播放音频

配置参数可精简和优化ffmpeg,在ffmpeg目录中,终端执行./configure --help列出全部参数碰源


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8158809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存