1.安装ffmpeg


 sudo apt install ffmpeg    
 sudo apt-get install libavfilter-dev

2.编写cmakelists.txt

cmake_minimum_required(VERSION 3.16)

project(ffmpeg_demo)

#debug设置

SET(CMAKE_BUILD_TYPE "Debug") # 定义编译类型

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g2 -Wall -ggdb3")

SET(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} "-g -G")

SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

# 设置ffmpeg依赖库及头文件所在目录,并存进指定变量

set(ffmpeg_libs_DIR /usr/lib/x86_64-linux-gnu)

set(ffmpeg_headers_DIR /usr/include/x86_64-linux-gnu)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)#设置编译后的程序存放位置

#对于find_package找不到的外部依赖库,可以用add_library添加

# SHARED表示添加的是动态库

# IMPORTED表示是引入已经存在的动态库

add_library( avcodec SHARED IMPORTED)

add_library( avfilter SHARED IMPORTED )

add_library( swresample SHARED IMPORTED )

add_library( swscale SHARED IMPORTED )

add_library( avformat SHARED IMPORTED )

add_library( avutil SHARED IMPORTED )


 

#指定所添加依赖库的导入路径

set_target_properties( avcodec PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavcodec.so )

set_target_properties( avfilter PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavfilter.so )

set_target_properties( swresample PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libswresample.so )

set_target_properties( swscale PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libswscale.so )

set_target_properties( avformat PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavformat.so )

set_target_properties( avutil PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavutil.so )


 

# 添加头文件路径到编译器的头文件搜索路径下,多个路径以空格分隔

include_directories( ${ffmpeg_headers_DIR} )

link_directories(${ffmpeg_libs_DIR} )


 

set(CMAKE_CXX_STANDARD 14)

add_executable(ffmpeg_demo main.cpp)

target_link_libraries(${PROJECT_NAME} avcodec avformat avutil swresample swscale swscale avfilter)

target_link_libraries(${PROJECT_NAME} avcodec avformat avutil swresample swscale swscale)




3.就可以写C++代码,引用了

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐