編譯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