概述
一、简介
FFmpeg(Fast Forward Mpeg)是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源框架,其中大部分功能都是使用C语言从头开发的,保证了它的高可移植性和编解码质量。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等,基本上谈到对视频、音频的操作都离不开FFmpeg。最近一个项目上需要用到视频的格式转换,这里记录一下FFmpeg的编译。
这里发一下我自己编译好的FFmpeg库,版本为最新的FFmpeg-4.3,静态库和动态库都在里面:
百度云下载地址 提取码:be18
CSDN下载地址
二、安装Yasm
FFmpeg可以安装很多的依赖库,比如x264库、aac库来进行视频和音频的编解码,大部分都需要先安装Yasm。Ubuntu下可以直接安装,这里使用源码编译,源码下载地址:
Yasm官网:http://yasm.tortall.net/
Yasm百度云下载:https://pan.baidu.com/s/1dVKJniSHXFti1xhryh1cEw 提取码:1jzh
加压后,进入解压的目录,依次执行下列命令就可以了
./configure
make
make install
编译FFmpeg其他的依赖库可以查看我的另一篇博客:
三、FFmpeg编译
1、下载FFmpeg
先下载FFmpeg的源代码,我这里使用的是最新的FFmpeg-4.3版本,即使没安装Yasm也可以之间编译FFmpeg:
FFmpeg官网下载:https://ffmpeg.org/download.html#get-sources
FFmpeg百度云下载地址:https://pan.baidu.com/s/1-11LYnMW_0W_dK7zb5DW2A 提取码:xwd2
2、配置FFmpeg
解压后进入解压的目录下,有一个configure文件,是用来配置FFmpeg的配置选项。FFmpeg的配置选项很多,可以使用./configure --help命令查看。
我们这里只是编译FFmpeg,不需要其他的依赖项,可以通过以下命令配置:
./configure --prefix=../FFmpeg/ --enable-shared
- --prefix=../FFmpeg/ :设置编译好的安装路径
- --enable-shared :设置编译生成动态库
这里有一个问题,如果不修改configure文件,最后生成的FFmpeg的so库会带有版本号后缀,再通过软连接链接到不带版本号的so库。想要编译出来的FFmpeg库不带版本号后缀,需要修改configure文件,大约在3800行左右
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
修改成
SLIBNAME_WITH_VERSION='$(SLIBNAME)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME)'
SLIB_INSTALL_LINKS=
这样最后编译出来的FFmpeg库就是只有.so文件,不会生成带版本号后缀的库。
3、编译FFmpeg
编译FFmpeg只需要执行make命令然后等待编译好,再用make install命令安装:
make
make install
最后我们可以在上面一步设置的路径下早到编译好的.so文件
最后
以上就是激情小猫咪为你收集整理的Linux 编译FFmpeg一、简介二、安装Yasm 三、FFmpeg编译的全部内容,希望文章能够帮你解决Linux 编译FFmpeg一、简介二、安装Yasm 三、FFmpeg编译所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复