zoukankan      html  css  js  c++  java
  • ubuntu下编译ffmpeg+SDL+ffplay提取motion vector

    编译ffmpeg:

    第一步:

    从官网http://ffmpeg.org/下载最新版本.
    
    解压tar -xjvf ffmpeg-3.3.1.tar.bz2
    进入目录cd ffmpeg-3.3.1
    

    第二步:

    从http://yasm.tortall.net/Download.html下载yasm
    tar -xvzf yasm-1.3.0.tar.gz
    cd yasm-1.3.0/
    ./configure
    make
    make install
    

    第三步:

    回到ffmpeg目录中
    ./configure --enable-shared --prefix=/你想让他编译以后在哪里/ffmpeg
    make
    make install
    编译为动态库时的问题:
    /usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32S against `av_destruct_packet' can not be used when making a shared object; recompile with -fPIC
    修改方法:
    ./configure --enable-pic && make[默认编译安装在/usr/local/下
    

    测试:

    1.进入/usr/local/ffmpeg/bin下,输入./ffmpeg查看安装情况

    2.使用ffmpeg编译c文件:

      gcc -o 可执行文件名 待编译文件名.c -L../lib/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil
    

    编译使用ffmpeg提取motion vector

    1.编译安装ffmpeg;

    2.使用pkg-config --cflags --libs opencv查找编译文件需要的opencv链接库,修改objects.mk和subdir.mk文件,然后make即可;

    3.或者使用opencv的cmakefile进行编译:

    具体内容:[注意每行之间不能有空格,直接回车]
    PROJECT(mpegflow)
    CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
    if(COMMAND cmake_policy)
    cmake_policy(SET CMP0003 NEW)
    endif(COMMAND cmake_policy)
    FIND_PACKAGE( OpenCV REQUIRED )
    # Declare the target (an executable)
    ADD_EXECUTABLE(mpegflow  draw_flow.cpp)
    TARGET_LINK_LIBRARIES(mpegflow ${OpenCV_LIBS}) 
     然后cmake.,再执行make即可。
    

    4.使用ffmpeg库编译extract_mvs文件:

      gcc -o extract_mvs /ffmpeg-2.8/doc/samples/extract_mvs.c -L../lib/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil
    

    安装ffmpeg加载sdl,编译运行ffplay

    1.安装ffmpeg

    2.安装SDL:

    sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev

    检测SDL装上了没有:sdl-config --exec-prefix --version --cflag]

    ffplay进行motion vector可视化:

    ffplay -debug vis_mb_type test.mp4 ffplay -vismv pf test.mp4

    CV小蜡肉
  • 相关阅读:
    spring注解实现业务层事务管理,当业务层自调用时,事务失效问题解决
    spring的事务
    maven创建web项目
    eclipse安装最新版svn
    .ncx文件剖析
    关闭MongoDB服务的几种方法
    mongodb添加验证用户 删除用户
    高性能kv存储之Redis、Redis Cluster、Pika:如何应对4000亿的日访问量?
    Python中msgpack库的使用
    彻底理解一致性哈希算法(consistent hashing)
  • 原文地址:https://www.cnblogs.com/zzq-123456/p/9116064.html
Copyright © 2011-2022 走看看