请选择 进入手机版 | 继续访问电脑版

登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 6819|回复: 7

ubuntu下cmake引用ffmpeg+opencv+boost以及一个调用ffmpeg的例子

[复制链接]

20

主题

27

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
发表于 2020-1-27 11:12:05 | 显示全部楼层 |阅读模式
前言

 
先要复杂点的例子可以看:
https://blog.csdn.net/JasonDing1354/article/details/41212425
https://blog.csdn.net/leixiaohua1020/article/details/44084321
 
不过先说明,要看看这些文章的时间,如果用的是很早之前的ffmpeg的版本的话
那么有些api是改了的,估计没办法可以运行得通。
 
正文

好了,先看看qt的目录结构:

 
CMakeLists.txt的内容如下--当然了,我这里删除掉一些没用的东西,只保留需要的东西:
  1. cmake_minimum_required(VERSION 3.5)SET(SOURCE_FILESmain.cpp)project(00_LearnOpenCV LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(X11 REQUIRED)# ---[ FFMPEGset( FFMPEG_BUILD_PATH /home/too-white/ffmpeg-build/target)set( FFMPEG_INCLUDE_PATH ${FFMPEG_BUILD_PATH}/include)set( FFMPEG_LIB_PATH ${FFMPEG_BUILD_PATH}/lib)##头文件include_directories(SYSTEM ${FFMPEG_INCLUDE_PATH})list(APPEND LINKER_LIBS    ${FFMPEG_LIB_PATH}/libavcodec.so    ${FFMPEG_LIB_PATH}/libavformat.so    ${FFMPEG_LIB_PATH}/libavutil.so    ${FFMPEG_LIB_PATH}/libswresample.so    ${FFMPEG_LIB_PATH}/libswscale.so    )# ---[ OpenCVfind_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs videoio)if(NOT OpenCV_FOUND) # if not OpenCV 3.x, then imgcodecs are not found    find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)endif()include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})list(APPEND LINKER_LIBS ${OpenCV_LIBS})message(STATUS "OpenCV found (${OpenCV_CONFIG_PATH})")# ---[ Boost## 引入boost类库#导入需要使用的boost库,如regex filesystem threadfind_package(Boost REQUIRED COMPONENTS regex filesystem thread )if (NOT Boost_FOUND)    message("Boost类库找不到---还没有配置吗??")endif ()#导入头文件include_directories(${Boost_INCLUDE_DIRS})#Boost_LIBRARIES的库顺便添加到liker_libs里面去。list(APPEND LINKER_LIBS ${Boost_LIBRARIES})INCLUDE(FindPkgConfig)PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)add_executable(00_LearnOpenCV ${SOURCE_FILES})target_include_directories(00_LearnOpenCV PRIVATE ${INCLUDE_DIR})target_link_libraries(00_LearnOpenCV    ${LINKER_LIBS}    ${SDL2_LIBRARIES}    pthread    swresample    m    swscale    z    lzma    rt    )
复制代码
测试用代码:
  1. #include #include "ffmpegdecode.h"#define __STDC_CONSTANT_MACROS#ifdef _WIN32//Windowsextern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswscale/swscale.h"};#else//Linux...#ifdef __cplusplusextern "C"{#endif#include #include #include #ifdef __cplusplus};#endif#endifint is_h264_file(char *filename){    AVFormatContext *ifmt_ctx = NULL;    int ret = 0;    if ((ret = avformat_open_input(&ifmt_ctx, filename, 0, 0)) < 0) {            printf( "Could not open input file.");            return 0;        }    //        printf("1ifmt_ctx->video_codec_id:%d\n",ifmt_ctx->video_codec_id);    if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) {            printf( "Failed to retrieve input stream information");            avformat_close_input(&ifmt_ctx);            return 0;        }    //ifmt_ctx->streams[0]->codecpar->codec_id;    printf("3ifmt_ctx->video_codec_id:%d\n",ifmt_ctx->streams[0]->codecpar->codec_id);    if(ifmt_ctx->streams[0]->codecpar->codec_id==AV_CODEC_ID_H264)    {        printf("is h264 file\n");        avformat_close_input(&ifmt_ctx);        return 1;    }    else    {        printf("is not h264 file\n");        avformat_close_input(&ifmt_ctx);        return 0;    }}int main(int argc, char* argv[]){    char * filepath="/home/too-white/temp/002.mp4";    is_h264_file(filepath);}
复制代码
执行结果:

 
这个代码其实只是读取文件的编码判断是不是h264的格式,就用来测试一下。
                                                                                                                        
                                                    
  • 点赞                        
  • 收藏                        
  • 分享                                                                                                                        
  •                                                         
                                      
    • 文章举报                           
                                                
                                                                        
                                            
                                                        码农下的天桥                                                                发布了402 篇原创文章 · 获赞 256 · 访问量 271万+                                                                                            他的留言板                                                            关注
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:贪吃蛇&mdash;&mdash;奖品类
下一篇:Linux(内核剖析):29---内核同步之(原子操作(原子整数操作(atomic_t、atom
回复

使用道具 举报

0

主题

25

帖子

535

积分

高级会员

Rank: 4

积分
535
发表于 2020-1-28 18:10:52 | 显示全部楼层
既然你诚信诚意的推荐了,那我就勉为其难的看看吧![www.12360.co]
回复

使用道具 举报

0

主题

27

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2020-2-3 21:49:18 | 显示全部楼层
这东西我收了!谢谢楼主![www.12360.co]
回复

使用道具 举报

20

主题

36

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2020-2-4 21:52:10 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U![www.12360.co]
回复

使用道具 举报

0

主题

25

帖子

535

积分

高级会员

Rank: 4

积分
535
发表于 2020-2-18 06:49:20 | 显示全部楼层
其实我一直觉得楼主的品味不错!呵呵![www.12360.co]
回复

使用道具 举报

0

主题

35

帖子

745

积分

高级会员

Rank: 4

积分
745
发表于 2020-2-27 21:52:49 | 显示全部楼层
这个帖子不回对不起自己![www.12360.co]
回复

使用道具 举报

0

主题

20

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
发表于 2020-3-15 01:39:46 | 显示全部楼层
感谢楼主的无私分享![www.12360.co]
回复

使用道具 举报

0

主题

36

帖子

766

积分

高级会员

Rank: 4

积分
766
发表于 2020-3-28 09:00:04 | 显示全部楼层
楼主,我太崇拜你了![www.12360.co]
社区不能没有像楼主这样的人才啊!
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

动物之森

GMT+8, 2020-4-6 01:24 , Processed in 0.149245 second(s), 42 queries .

www.12360.co 集合吧!动物之森

Copyright © 2019-2020.

快速回复 返回顶部 返回列表