1、 先安裝faac和x264 faac 編譯方式為:#./configure --prefix=/usr 報(bào)錯(cuò):mpeg4ip.h:126: error: new declaration 'char* strcasestr(const char*, const char*)’ 解決方法: 從123行開始修改此文件mpeg4ip.h,到129行結(jié)束。 修改前: #ifdef __cplusplus extern "C" { #endif char *strcasestr(const char *haystack, const char *needle); #ifdef __cplusplus } #endif 修改后: #ifdef __cplusplus extern "C++" { #endif const char *strcasestr(const char *haystack, const char *needle); #ifdef __cplusplus } #endif 2、x264 編譯方式為:./configure --prefix=/usr --enable-shared 3 、下一步就是安裝 libavfilter svn checkout svn://svn.mplayerhq.hu/soc/libavfilter cd libavfilter/ ./checkout.sh checkout時(shí)可能會(huì)報(bào):Reversed (or previously applied) patch detected! Assume -R? [n] 忽略 cd ffmpeg/ ./configure --enable-libx264 --disable-ffplay --enable-gpl --enable-pthreads --enable-libfaac --enable-nonfree --enable-postproc 3 最后編譯mplayer,為了防止下載ffmpeg,在configure文件中注釋掉了git下載部分,可參考源碼包 ./configure --enable-ass-internal --prefix=/usr/local/mplayer 比較全的http://blog.csdn.net/yue_wu151/article/details/6054126#viewSource #!/bin/sh infile="test.flv" outfile="test.mp4" options="-vcodec libx264 -b 512k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4" #ffmpeg -y -i "$infile" -acodec libfaac -ar 44100 -ab 96k -pass 2 -threads 2 $options "$outfile" 接下來介紹視頻選項(xiàng): -b 指定碼率注意單位是bit/s,所以我們一般要加k,比如 -b 1000k 就是1000kb/s -g 設(shè)置組的大小 -vframes 指定要編碼的幀數(shù),比如-vframes 1 就是編碼1幀,截圖的時(shí)候就這樣寫. -r 指定幀率,默認(rèn)是25 -s 指定圖像分辨率,用wxh的格式,比如320×240 -aspect 指定寬高比 可以些16:9這種,也可以寫小數(shù)比如1.3333 -croptop 指定頂部裁減多少像素,類似的還有-cropleft -cropright -cropbuttom -bt 設(shè)置比特率容許的誤差,默認(rèn)4000k,在第一階段時(shí)使用這個(gè)參數(shù)會(huì)告訴碼率控制器能夠偏移平均碼率多遠(yuǎn),這個(gè)選項(xiàng)和最大最小碼率無關(guān).設(shè)太小了不利于質(zhì)量 -maxrate 和-minrate 指定允許的最大和最小碼率,一般如果要用cbr模式編碼的話會(huì)用這個(gè): ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v 否則用處不大 -vcodec 強(qiáng)制使用某種編碼器 -sameq 使用和源文件相同的質(zhì)量,這個(gè)選項(xiàng)是動(dòng)態(tài)碼率的 -pass 指定編碼階段,這個(gè)只有1和2,第一階段的時(shí)候應(yīng)該不處理音頻,并且把輸出導(dǎo)向空,比如 音頻部分: -ar 設(shè)置采樣頻率,默認(rèn)44100hz -ab 設(shè)置比特率,默認(rèn)64k -an 禁用音頻錄制 -acodec 指定音頻編碼器 支持添加字幕:需要安裝libass 首先安裝freetype2 yum install freetype* 安裝libass tar zxvf libass-0.9.11.tar.gz cd libass-0.9.11 ./configure make make install vi /etc/ld.so.conf 添加/usr/local/lib ldconfig 重新編譯安裝mplayer cd mplayer ./configure --enable-ass-internal --prefix=/usr/local/mplayer make make install 測(cè)試: /usr/local/mplayer/bin/mencoder -ass 查看是否支持ass /usr/local/mplayer/bin/mencoder -voc -help 查看mencoder是否正確 mplayer/bin/mencoder -sub 222.ass -ass -subcp utf8 -vf ass -oac pcm -ovc x264 -mc 0 -nobps 1202DQZTXXYWTCYJ610060.mp4 -o 222.avi 如果報(bào)錯(cuò)找不到字幕文件ass 將字幕添加到安裝用戶的根目錄下,例:/root/.mplayer/subfont.ttf |
|