媒介
虽然市面上好多ffmpeg安装,但是有的人是跳过了一些依靠大概依靠库太老,亦大概是都选择的路径是默认路径,本篇安装相对比力完备、中途不会遇到杂七杂八问题(有解决方案)以及安装路径自由发挥。
备注:由于我用的都是root用户权限,所以至始至终不用sudo,各位需求不一,看个人
以下内容险些以FFMPEG_THIRD目次为基准,不要完全赋值我的路径,自己参考修改
1.下载ffmpeg
- git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
复制代码 2.依靠的第三方
个人目次放置(供参考)
- ├── ffmpeg_src //ffmpeg源码解压后目录
- ├── x264_src //x264源码解压后目录
- ├── x265_src //x265源码解压后目录
- ├── lame_src //libmp3lame源码解压后目录
- ├── nasm_src //nasm源码解压后目录
- ├── openssl //openssl安装目录
- ├── openssl_src //openssl源码解压后目录
- ├── rtmpdump_src //rtmp源码解压后目录
- └── ffmpeg_third //第三方库安装目录
- ├── bin
- ├── include
- ├── lib
- ├── man
- ├── sbin
- └── share
复制代码 目次准备
自己创建第三方依靠库安装目次FFMPEG_THIRD并且添加到编译环境变量中,进入运行用户下(选择很紧张,别到时候自己安装运行用户都不对应)的 .bashrc文件,在文件末了增加环境变量,末了source下就可用了,方便我们后续利用
- #vi ~/.bashrc
- ----------文件内------------
- .
- .
- .
- export FFMPEG_THIRD=/home/sulier/work/AudioVedio/ffmpeg_third
- export FFMPEG_THIRD_BIN=/home/sulier/work/AudioVedio/ffmpeg_third/bin
- export PATH=$FFMPEG_THIRD_BIN:$PATH
- export PKG_CONFIG_PATH=/home/sulier/work/AudioVedio/ffmpeg_third//lib/pkgconfig/:$PKG_CONFIG_PATH
- ----------------------------
- #source ~/.bashrc
复制代码 SDL(体系apt下载)
由于我的是ubuntu的所以用apt-get命令(遇到[Y/N]输入y就行,这个不多说了)
- apt-get install libsdl2-dev
- apt-get install libsdl2-image-dev
- apt-get install libsdl2-mixer-dev
- apt-get install libsdl2-ttf-dev
- apt-get install libsdl2-gfx-dev
复制代码
nasm(压缩文件)
x264编译错误如下
- root@ubuntu:/home/sulier/work/AudioVedio/x264_src# ./configure --prefix=$FFMPEG_THIRD --enable-shared --enable-static
- Found no assembler
- Minimum version is nasm-2.13
- If you really want to compile without asm, configure with --disable-asm.
复制代码 大概我们通过体系安装nasm但是版本太低时编译后续的x264编译不过
- root@ubuntu:/home/sulier/work/AudioVedio/x264_src# nasm --v
- NASM version 2.11.08
复制代码 所以我们需要先卸载原来的nasm
然后在官网 NASM上下载,比如我用的是最新版本2.16.03目次路径在Index of /pub/nasm/releasebuilds/2.16.03
之后解压
- # tar -xf nasm-2.16.03.tar.gz
复制代码 然后编译安装在我们FFMPEG_THIRD目次下
- # ./configure --prefix=$FFMPEG_THIRD
- # make
- # make install
复制代码 x264(git下载)
下载x264
- git clone https://code.videolan.org/videolan/x264.git
复制代码 一样编译安装在我们FFMPEG_THIRD目次下
- # ./configure --prefix=$FFMPEG_THIRD --enable-shared --enable-static
- # make
- # make install
复制代码 x265(压缩文件)
原先的x265官网不让下载了
现在这个网站可以下载
- http://ftp.videolan.org/pub/videolan/x265/
复制代码 我下载的是3.2版本
由于x265用的是cmake、ccmake、numa,如果没安装,我们需要安装下
- # apt-get cmake
- # apt-get install cmake-curses-gui
- # apt-get install libnuma-dev
复制代码 解压后编译
- # cd build/linux/
- # ./make-Makefiles.bash
- 需要修改CMAKE_INSTALL_PREFIX值(enter键进入编辑,esc进入命令模式)
- 为我们$FFMPEG_THIRD对应的值,
- 但是这里就不能用变量了,用绝对路径
- 之后编辑后c表示配置,然后g保存
- # make
- # make install
- root@ubuntu:/home/sulier/work/AudioVedio/x265_src/build/linux# make install
- [ 63%] Built target common
- [ 85%] Built target encoder
- [ 86%] Built target x265-shared
- [ 87%] Built target x265-static
- [100%] Built target cli
- Install the project...
- -- Install configuration: "Release"
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/lib/libx265.a
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/include/x265.h
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/include/x265_config.h
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/lib/libx265.so.179
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/lib/libx265.so
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/lib/pkgconfig/x265.pc
- -- Installing: /home/sulier/work/AudioVedio/ffmpeg_third/bin/x265
- 这里可以看到是不是我们想要的路径,哪怕错了可以再从./make-Makefiles.bash命令重新来下,编辑保存没错就是正确的
复制代码
libmp3lame(压缩文件)
下载网址
- https://sourceforge.net/projects/lame/files/lame/
复制代码 我下载的是目前最新的3.100版本
解压后进入解压目次,然后配置编译
- # ./configure --prefix=$FFMPEG_THIRD --enable-shared --enable-static
- # make
- # make install
复制代码 openssl(压缩文件)
下载地址
- https://github.com/openssl/openssl/releases/download/
复制代码 安装下libssl-dev,否则后续rtmp安装可能时可能链接不到
- # apt-get install libssl-dev
复制代码 配置并编译安装,由于体系自带了低版本的openssl,所以我们这里安装目次没有利用默认路径,往后好更换
- # ./config --prefix=/home/sulier/work/AudioVedio/openssl --openssldir=/home/sulier/work/AudioVedio/openssl -fPIC zlib
- # make
- # make install
复制代码 备份老的openssl,由于我这边只有/usr/bin目次下有一个
- root@ubuntu:/usr/bin# mv openssl old_openssl
复制代码 由于openssl好多时候都用到了,我们需要创建软连接以及库连接刷新
- # ln -s /home/sulier/work/AudioVedio/openssl/bin/openssl /usr/bin/openssl
- # ln -s /home/sulier/work/AudioVedio/openssl/include/openssl /usr/include/openssl
- # echo "/home/sulier/work/AudioVedio/openssl/lib64" >> /etc/ld.so.conf.d/openssl.conf
- # ldconfig
复制代码 末了查看下
- root@ubuntu:/home/sulier/work/AudioVedio# openssl version
- OpenSSL 3.3.2 3 Sep 2024 (Library: OpenSSL 3.3.2 3 Sep 2024)
复制代码 这里会有一个bug(否则后续编译rtmp的时候rtmp.c文件编译不过),我们可以规避下,举例3.3.2版本的openssl紧张是增加了130行以及修改了133行(删掉了括号)
- # vi /usr/include/openssl/macros.h
- ----------------文件内----------------
- 130 # define OPENSSL_CONFIGURED_API 30300
- 131 # ifndef OPENSSL_API_LEVEL
- 132 # if OPENSSL_CONFIGURED_API > 0
- 133 # define OPENSSL_API_LEVEL OPENSSL_CONFIGURED_API
- 134 # else
- 135 # define OPENSSL_API_LEVEL \
- 136 (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100)
- 137 # endif
- 138 # endif
- 139
- 140 # if OPENSSL_API_LEVEL > OPENSSL_CONFIGURED_API
- 141 # error "The requested API level higher than the configured API compatibility level"
- 142 # endif
- --------------------------------------
复制代码
rtmp(git下载)
官网:
- http://rtmpdump.mplayerhq.hu
复制代码 下载方法,目前我用的是2.4版本
- # git clone git://git.ffmpeg.org/rtmpdump
复制代码 留意:这里需要安装openssl的,网上有些是修改makefile中CRYPTO值,利用GNUTLS,我们就还是利用初始的openssl吧
这里编译rtmp前有两个地方需要添加
第一处是代码目次下Makefile文件大概25行的样子LDFLAGS增加一个-ldl
- # vi Makefile
- 25 LDFLAGS=-Wall $(XLDFLAGS) -ldl
复制代码 第二处是librtmp/Makefile文件大概33行的样子LIB_OPENSSL增加库路径(我们安装的openssl路径位置)
- # vi librtmp/Makefile
- 33 LIB_OPENSSL=-lssl -lcrypto $(LIBZ) -L/home/sulier/work/AudioVedio/openssl/lib64
复制代码 可以默认安装,我们这里是安装再我们FFMPEG_THIRD目次下
- # make
- # make install prefix=$FFMPEG_THIRD
复制代码 3.编译ffmpeg
进入目次编译
- # cd ffmpeg_src
- # ./configure --prefix=$FFMPEG_THIRD --enable-shared --enable-static --enable-gpl --enable-pthreads --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-librtmp --extra-cflags=-I$FFMPEG_THIRD/include --extra-ldflags=-L$FFMPEG_THIRD/lib
- # make
- # make install
复制代码 4. 添加库到体系连接库路径
- # echo "/home/sulier/work/AudioVedio/ffmpeg_third/lib/" >> /etc/ld.so.conf.d/ffmpeg.conf
- # ldconfig
复制代码 5.验证
- root@ubuntu:/etc/ld.so.conf.d# ffmpeg -version
- ffmpeg version N-116847-g4f7aeff Copyright (c) 2000-2024 the FFmpeg developers
- built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
- configuration: --prefix=/home/sulier/work/AudioVedio/ffmpeg_third --enable-shared --enable-static --enable-gpl --enable-pthreads --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-librtmp --extra-cflags=-I/home/sulier/work/AudioVedio/ffmpeg_third/include --extra-ldflags=-L/home/sulier/work/AudioVedio/ffmpeg_third/lib
- libavutil 59. 35.100 / 59. 35.100
- libavcodec 61. 11.100 / 61. 11.100
- libavformat 61. 5.101 / 61. 5.101
- libavdevice 61. 2.100 / 61. 2.100
- libavfilter 10. 2.102 / 10. 2.102
- libswscale 8. 2.100 / 8. 2.100
- libswresample 5. 2.100 / 5. 2.100
- libpostproc 58. 2.100 / 58. 2.100
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |