ffmpeg 制定精确码率

FFmpeg是Ubuntu下強大的視頻、音頻編解碼工具. x264可以編碼出高質量的h.264視頻,iPad必須要h.264編碼或mpeg-4編碼的視頻才能正常播放.

由於版權方面尚未確定,雖然全國很多網站都在使用h.264編碼,但將來很有可能會被版權問題所困擾,所以Ubuntu官方源默認是不提供h.264編碼的,這就需要我們手工編譯安裝FFmpeg的h.264支持,使之能夠編碼出MP4文件.

Ubuntu下安裝、使用和升級FFmpeg的方法如下

1、安裝支持包

#libMP3lame

sudo apt-get remove libMP3lame-dev

sudo apt-get install nasm

wget

tar xzvf lame-3.98.4.tar.gz

cd lame-3.98.4

./configure --enable-nasm --disable-shared

make

sudo checkinstall --pkgname=lame-ffmpeg --pkgversion="3.98.4" --backup=no --default --deldoc=yes

#卸載現有的 x264、libx264-dev、FFmpeg

sudo apt-get remove ffmpeg x264 libx264-dev

#安裝所有的 FFmpeg 和 x264 支持包

sudo apt-get update

sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libMP3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev

libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev

2、安裝x264

git clone git://git.videolan.org/x264.git

cd x264

./configure

make

sudo checkinstall --pkgname=x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | cut -d' ' -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | head -c 7`" --backup=no --deldoc=yes --fstrans=no --default

3、安裝FFmpeg

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

cd ffmpeg

./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libMP3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab

make

sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`LANG=C svn info | grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default

hash x264 ffmpeg ffplay

4、安裝qt-faststart(可選)

這是個重要的x264再編碼工具, 它的作用是使得視頻不必等待下載完成即可開始播放.

使用方法:

qt-faststart input.foo output.foo

安裝方法:

cd ~/ffmpeg

make tools/qt-faststart

sudo checkinstall --pkgname=qt-faststart --pkgversion "4:SVN-r`LANG=C svn info | grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default install -D -m755 tools/qt-faststart /usr/local/bin/qt-faststart

5、基本安裝完成,你可以保留 ~/x264、~/ffmpeg目錄以便將來升級時使用.

6、升級 FFmpeg 和 x264

sudo apt-get remove ffmpeg x264 libx264-dev libvpx

cd ~/x264

make distclean

git pull

cd ~/ffmpeg

make distclean

svn update

./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libMP3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab make sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`LANG=C svn info | grep Revision | awk '{ print $NF }'`" --backup=no --deldoc=yes --fstrans=no --default hash x264 ffmpeg ffplay

7、使用 FFmpeg and x264

容易的輸出高質量視頻的方法是使用FFmpeg中libx264的預設模式.你可以手工調整一些選項 (例如窗口大小: -s 640×480) . 另外你可以參考 libx264 預設模式在綫列表或再 /usr/local/share/ffmpeg 目錄中查找幫助.

One-pass CRF (Constant Rate Factor) 使用預設模式:slow. One-pass CRF是經常使用的常規編碼方式. 調整 -crf 可以改變輸出質量. 數字越小輸出質量越高同時輸出尺寸越大. 可使用的數字範圍是:18 ~ 28.

ffmpeg -i input.avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 output.MP4

Two-Pass encode 使用預設模式: fast. 想要精確設置目標編碼率、文件大小的時候會使用到這個編碼模式.

ffmpeg -i input.avi -pass 1 -vcodec libx264 -vpre fast_firstpass -b 512k -bt 512k -threads 0 -f rawvideo -an -y /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre fast -b 512k -bt 512k -threads 0 output.MP4

iPod/iPad 640×480,使用預設值: slow 和 ipod640:

ffmpeg -i input.avi -acodec libfaac -aq 100 -ac 2 -vcodec libx264 -vpre slow -vpre ipod640 -crf 26 -map_meta_data 0:0 -vf scale=640:-1 -threads 0 output.MP4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值