当前位置:首页 » 编程软件 » ffmpeglinux编译

ffmpeglinux编译

发布时间: 2025-02-05 14:28:04

① FFmpeg之linux编译与调试

下面的一切都是在 root 模式下进行的,可以不再 root 模式下进行

基础环境就是编译代码的基础库,Ubuntu联网安装软件很简单,一个语句即可搞定,这里列出语句如下:

依赖库分两方面,参考以下网站列出的依赖库信息,本文选择的版本均参考于此网页: FFmpeg依赖库信息

首先创建 FFmpeg 代码目录,所有的源代码放在这个目录下

FFmpeg 编译之后,即可使用。编译生成的可执行程序在 ~/bin 目录下

注:上面的 ./configure 配置编译后并不能进行调试,需要如下配置.

刚才的工程可以运行,但不能debug。解决此问题,首先认定一点,生成的可执行程序中,ffmpeg 不包含调试信息,调试信息在 ffmpeg_g 中,debug 要选择 ffmpeg_g。

另外,./config选项也是确定包含调试信息的核心,需要在config中添加:

采用以下命令重新config:

一些注意事项; 在使用 ffplay 播放生成 h264 格式的视频时,播放速度会加快,解决方式:不要使用 FFmpeg 转码生成纯 h264 格式的视频,要使用一种容器包含 h264 视频,即生成一种音视频流格式,也就是不要生成纯粹的 h264 码流,而是生成诸如 mkv 等格式的文件。

② Linux 交叉编译FFmpeg库

Linux 交叉编译FFmpeg库

配置环境

在Linux上配置NDK环境和FFmpeg,首先下载并解压NDK,配置/etc/profile的环境变量,然后下载FFmpeg,解压后使用./configure --help查看帮助文档。

FFmpeg包含libavformat、libavcodec、libavutil、libswscale、libpostproc等模块,为各种音视频封装格式的生成和解析、声音/图像编解码、公共工具函数、视频场景比例缩放和色彩映射转换、后期效果处理以及工具和服务器等。

编写编译脚本

定义NDK路径,指定GCC路径,设置FLAGS结合Linux环境修改,参考externalNativeBuild/xxx/build.ninja的传参内容。学习资料推荐,免费报名学习音视频知识,资料包括C/C++、Linux、FFmpeg等。

配置参数

优化大小、不编译ffmpeg程序(命令行工具)、关闭avdevice模块、关闭所有编码器、关闭所有复用器、关闭所有滤镜、开启交叉编译、设置GCC的前缀、关闭动态库、开启静态库、传给gcc的参数等。

执行make完成编译输出

编写脚本过程中注意关闭asm、权限要求、手动创建输出文件夹、命令行格式等。

移植到Android项目中使用

创建NDK项目,将编译好的include文件夹复制到/src/main/cpp目录下,将ffmpeg lib目录下的文件复制到armeabi-v7a目录下,Cmake文件中引入库,即可愉快使用FFmpeg库。

FFmpeg是纯C的库,需要在代码中进行引用。显示ffmpeg版本号完成整个流程。

至此,Linux交叉编译FFmpeg库的流程介绍完成。

③ linux下编译ffmpeg时关于configure的问题.

你准备工作没做好吧!!

  1. 先编译安装Yasm。

  2. 然后编译安装H.264 (也就是x264)。

  3. 再编译安装AAC audio encoder (fdk-aac)。

  4. 编译安装libmp3lame (MP3 audio encoder)。

  5. 编译安装libopus (Opus audio decoder and encoder)。

  6. 编译安装libvpx (VP8/VP9 video encoder and decoder)。

  7. 做后编译安装ffmpeg。

    其中1-6你可以选择编译安装,也可以使用源直接安装。安装后了再编译安装ffmpeg

    你使用 sudo ldconfig -p |grep libx264 看看你的libx264是否正确安装.

    你编译安装x264的时候可以使用2中方式都安装。

cd ../x264

./configure --enable-shared
make
make install

最后

cd ../x264
make distclean
./configure --enable-static
make
make install

④ FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

在Linux环境中进行FFmpeg库的Android交叉编译,首先需要下载Linux版本的android-ndk-r21e。登录Linux服务器,例如华为云的欧拉系统,执行以下步骤:

1. 进入`/usr/local/src`目录:

cd /usr/local/src

2. 下载并解压ndk:

curl -O dl.google.com/android/r...

unzip android-ndk-r21e-linux-x86_64.zip

接下来,你需要将FFmpeg及相关库(如x264、freetype、lame)的源码上传到服务器,并进行必要的修改:

- 解压源码,替换`SYSTEM=windows-x86_64`为`SYSTEM=linux-x86_64`,并确保sh文件无回车符。
- 修改`config_x264.sh`、`config_freetype.sh`等文件,赋予可执行权限:

chmod +x config_*.sh

3. 编译x264库,修改configure文件并执行编译:

修改configure文件

./config_x264.sh

make -j4

make install

4. 对其他第三方库进行类似操作:

./config_xxx.sh

make -j4

make install

5. 配置环境变量`PKG_CONFIG_PATH`:

在.bash_profile中添加环境变量

source .bash_profile

6. 最后,编译FFmpeg库:

./config_ffmpeg_full.sh

make -j4

make install

完成后,可以在指定目录找到so文件,并将其复制到App工程的jniLibs\arm64-v8a目录,然后按照《FFmpeg开发实战:从零基础到短视频上线》的章节“12.1.3 App工程调用FFmpeg的so库”进行App的配置、编译和运行。

热点内容
乐山海棠社区民意上传 发布:2025-02-05 16:55:52 浏览:507
编程老爷爷 发布:2025-02-05 16:48:20 浏览:126
支持ftp的免费空间 发布:2025-02-05 16:32:00 浏览:889
python时间比较 发布:2025-02-05 16:31:46 浏览:50
手机银行的密码怎么改密码忘了怎么办啊 发布:2025-02-05 16:02:02 浏览:179
算法牛人左 发布:2025-02-05 15:31:02 浏览:439
php筛选功能 发布:2025-02-05 15:29:09 浏览:168
ip匹配服务器 发布:2025-02-05 15:10:35 浏览:909
php语法后 发布:2025-02-05 15:10:34 浏览:59
oppor9s怎么压缩文件 发布:2025-02-05 15:00:34 浏览:639