编译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