最近在做OpenCV下的一些视频处理,opencv主要处理.avi的视频,但是想生成mp4的视频文件,所以就想利用ffmpeg的视频编码功能来进行avi转mp4。
凡是涉及到安装配置,运行的时候都会出现各种问题,不是某个库忘了装,就是某个参数没设置对。头疼,一个简单的过程,你就可以从网上找到各种版本,最后还是靠自己,所以把这个过程记录下来,方便以后再遇到这种问题。
1.下载
ffmpeg官网:http://ffmpeg.org/download.html,我下载的是最新版本,3.2.4(http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2)
tar -zxvf ffmpeg-3.2.4.tar.bz2 //解压命令
2.安装依赖库
sudo apt-get install libx264-dev //这个比较关键,因为在编码的时候依赖这个库
sudo apt-get install libfaac-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install libtheora-dev
sudo apt-get install libvorbis-dev
sudo apt-get install libxvidcore-dev
sudo apt-get install libxext-dev
sudo apt-get install libxfixes-dev
3.配置、编译 ffmpeg
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis --enable-shared --prefix=/usr/local/ffmpeg --disable-yasm
//prefix表示安装的目录
//disable-yasm表示禁用yasm
make //然后编译,比较慢
sudo make install //安装
4.环境配置
安装完成后在/usr/local/ffmpeg下出现三个目录
bin,lib,include
为了能够使程序找到动态库
可以在/etc/ld.so.conf.d/目录下来创建一个新的文件ffmpeg.conf
文件中包含一句话:
/usr/local/ffmpeg/lib
然后运行:
sudo ldconfig //更新ld.so.cache,使修改生效
为了在任何地方都可以直接用ffmpeg运行,不用使用./ffmpeg
可以将可执行程序复制到bin目录下
sudo cp /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
sudo cp /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/
sudo cp /usr/local/ffmpeg/bin/ffserver /usr/local/bin/
至此安装完成,可以运行
sudo ffmpeg //如果出现版本信息说明安装成功
5.ffmpeg简单命令
1].视频转换
ffmpeg -i input.avi output.mp4
2].视频编码格式转化
将avi转换成H.264格式的mp4视频格式
ffmpeg -i inputfile.avi -f mp4 -acodec libfaac -vcodec libx264 outputfile.mp4
3].视频的分辨率改变
ffmpeg -i input.avi -s 1280*720 output.avi
其他的指令可以自行查阅,这里就不一一列举了。