版权声明:本文为博主原创文章,未经博主允许不得转载。
环境:ubuntu 13.04 LTS
(1)到http://www.ffmpeg.org/download.html下载最新版ffmpeg
也可以用这个命令:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,所以需要先安装。 到http://yasm.tortall.net/Download.html下载Source .tar.gz(即yasm-1.2.0.tar.gz)
tar zxvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
sudo make install
(2)需要用到x264库
sudo apt-get install libx264-dev
(3)安装依赖库
1. sudo apt-get install libfaac-dev
2. sudo apt-get install libmp3lame-dev
3. sudo apt-get install libtheora-dev
4. sudo apt-get install libvorbis-dev
5. sudo apt-get install libxvidcore-dev
6. sudo apt-get install libxext-dev
7. sudo apt-get install libxfixes-dev
(4)配置ffmpeg,主要是打开x11grab
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
(5)编译
make
(6)安装
sudo make install
这样就OK!
ffmpeg qt开发报错:
1.在common.h中加上#ifndef UINT64_C(val)
46
47 #define UINT64_C(val) val##ULL
48
49 #endif
但是出现/usr/local/include/libavutil/common.h:30: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
这个错误
2.将加载common.h中
#if defined __cplusplus
#define __STDC_CONSTANT_MACROS
#endif
在一句要加在#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS前面
:-1: error: /usr/local/lib/libavformat.a(http.o): undefined reference to symbol 'inflateInit2_'
:-1: error: note: 'inflateInit2_' is defined in DSO /lib/i386-linux-gnu/libz.so.1 so try adding it to the linker command line
/lib/i386-linux-gnu/libz.so.1:-1: error: could not read symbols: Invalid operation
3.上述错误的原因是:
加载的库路径不对
LIBS += -L /usr/local/lib -lavcodec -lavformat -lswscale \
改为: LIBS += -L /usr/lib -lavcodec -lavformat -lswscale \