Linux下ffmpeg的基本编译

Linux下编译:

1、源码下载地址:http://ffmpeg.org/download.html
在这里插入图片描述
2、将源码包上传到Linux编译服务器上并解压出来:

3、创建编译路径:mkdir /home/compile_ffmpeg 并将ffmpeg源码压缩包复制进去

4、解压源码包:tar xvf ffmpeg-snapshot.tar.bz2
在这里插入图片描述
5、创建编译库文件路径:mkdir /home/build
在这里插入图片描述
6、进入ffmpeg目录执行命令:

./configure --prefix=/home/compile_ffmpeg/build/ --enable-static --enable-shared

(configure文件生成makefile文件,–prefix=指定安装路径 ,–enable-static --enable-shared 编译生成静态库和动态库,如果提示没有依赖库需要安装下,或者–disable-xxx 设置不参与编译)

在当前路径下执行编译命令 : make

编译完成后执行安装目录:make install

7、编译安装完成后进入指定的输出路径:/home/compile_ffmpeg/build/
在这里插入图片描述
bin路径下是生成的可执行文件:
在这里插入图片描述
lib路径下是静态库和动态库文件:
在这里插入图片描述
这样就编译完成了

8、可以执行命令查看ffmpeg版本:./ffmpeg -version

会出现错误,ldd ffmpeg 发现依赖库路径
在这里插入图片描述
在当前终端上设置下环境变量:export LD_LIBRARY_PATH=/home/compile_ffmpeg/build/lib/

这样在执行:./ffmpeg -version 就可以使用了
在这里插入图片描述
也可以将动态库目录设置到系统环境变量中,或者在编译的时候不生成动态库,直接生成静态库方式,这样编译出来就不依赖动态库了,可以直接使用

执行命令:

make clean

./configure --prefix=/home/compile_ffmpeg/build/ --enable-static --disable-shared

make

make install

编译完成后再ldd ffmpeg就不会有编译出来的链接库依赖了
在这里插入图片描述

静态链接顺序:
方法1:

cmake_minimum_required(VERSION 3.8)
project(test_sei)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)

add_executable(${PROJECT_NAME} ${SRC_LIST})


target_link_directories(${PROJECT_NAME}  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lib/)
target_link_libraries(${PROJECT_NAME}
    -Wl,--start-group
    libavutil.a
    libswscale.a
    libswresample.a
    libavcodec.a
    libavformat.a
    libavfilter.a
    libavdevice.a
    -Wl,--end-group
    pthread
)

方法2:

cmake_minimum_required(VERSION 3.8)
project(test_sei)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)

add_executable(${PROJECT_NAME} ${SRC_LIST})


target_link_directories(${PROJECT_NAME}  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lib/)
target_link_libraries(${PROJECT_NAME} 
    libavdevice.a
    libavfilter.a
    libavformat.a
    libavcodec.a
    libswresample.a
    libswscale.a
    libavutil.a
    pthread
)
GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐