1、環境winxp-sp2下:
最新版本的 FFMpeg.exe直接用就行(須rar解壓)。
以下的東西是爲對ffmpeg無法解析的文件格式(wmv9,rm,rmvb等)轉換用的,
2、環境linuxas4。3下:
a、先裝mp3在linux下的包:lame-3.97.tar.gz;
tar -xvzf lame-3.97.tar.gz;
cd lame-3.97;
//(默認是裝在/usr/local下);
//--prefix=/usr/此參數一定要(便於調用os的其它系統包)
//--enable-shared此參數一定要
./configure --enable-shared --prefix=/usr/;
make;
make install;
b、支持3gp格式,這也是現在好多手機支持的格式,因爲手機用戶是我們的主要用戶,所以也得支持編譯
編譯的時候加上--enable-amr_nb --enable-amr_wb參數就行,根據編譯系統的提示,所以我們得下載一些編譯3gp所需得文件。
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解壓以後把裏面的文件都拷貝到libavcodec/amrwb_float/
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解壓以後把裏面的文件都拷貝到libavcodec/amr_float/
c、mpg4 aac格式支持,由於服務器還針對手機用戶服務,所以,類似aac,mpg4鈴聲格式的支持,我們也得做。這裏我們安裝faad2和faac就行
下載請到http://www.audiocoding.com/modules/mydownloads/
tar zxvf faad2-2.5.tar.gz
cd faad2
echo > plugins/Makefile.am
echo > plugins/xmms/src/Makefile.am
sed -i '/E_B/d' configure.in
autoreconf -vif
./configure --prefix=/usr
make &&
make install
tar zxvf faac-1.25.tar.gz
cd faac
sed -i '/[2de].M/d' configure.in
echo "AC_OUTPUT(common/Makefile common/mp4v2/Makefile libfaac/Makefile frontend/Makefile include/Makefile Makefile)" >> configure.in
autoreconf -vif
./configure --prefix=/usr
make &&
make install
d、支持xvid; x264,現在最流行的兩種高質量的壓縮格式
xvid的編譯安裝
wget http://downloads.xvid.org/downloads/xvidcore-1.1.2.tar.gz
tar zvxf xvidcore-1.1.2.tar.gz
cd xvidcore-1.1.2/build/generic
./configure --prefix=/usr --enable-shared
make
make install
x264的獲取同樣是採用svn方式:
svn co svn://svn.videolan.org/x264/trunk x264
linux下須從http://www.kernel.org/pub/software/devel/nasm/binaries/linux/下載nasm-0.98.39-1.i386.rpm
在linux下安裝就行了。。。
rpm -ivh nasm-0.98.39-1.i386.rpm(如-ivh不行就用-Uvh)
cd x264
./configure --prefix=/usr --enable-shared
make
make install
e、安裝ffmpeg:
//as4.3系統已經支持ac3編碼,只要加--enable-a52 --enable-gpl參數就行
//我加--enable-shared參數沒有成功
./configure --prefix=/opt/ffmpeg/ --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-a52 --enable-xvid --enable-x264 --enable-faad --enable-faac --enable-gpl --enable-pthreads;
make clean;//一定要;否則有可能沒聲音。
make;
make install;
在相應windows和linux目錄下(有ffmpeg文件的;以下用linux下說明):
3、使用ffmpeg轉換視頻爲flv文件:
./ffmpeg -i "/opt/input/1.mpg" -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/1.flv"
ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
對ffmpeg無法解析的文件格式(wmv9,rm,rmvb等),
可以先用別的工具(mencoder)轉換爲avi(ffmpeg能解析的)格式.
./mencoder /input/a.rmvb -oac lavc -lavcopts acodec=mp3:abitrate=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o /output/a.avi
在執行./ffmpeg -i "/opt/input/a.avi" -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/a.flv"就可以轉了。
4、視頻抓圖:
./ffmpeg -i "/opt/input/a.flv" -y -f image2 -t 1 -s 300*200 "/opt/output/1.jpg" //獲取靜態圖
./ffmpeg -i "/opt/input/a.mpg" -vframes 30 -y -f gif "/output/1.gif" //獲取動態圖;
不提倡抓gif文件;因爲抓出的gif文件大而播放不流暢。
5.給視頻加水引(把2.jpg加入到1.flv的背景)
/opt/ffmpeg/bin/ffmpeg -vhook "/opt/ffmpeg/lib/vhook/watermark.so -m 1 -t 222222 -f /opt/software/2.jpg" -i "/home/software/1.mpg" -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/software/1.flv
模塊watermark.so是ffmepg自帶的;解壓後在vhook目錄下;
有3個參數-m -t -f:
-f是必須的;
-t是水印圖片的顏色的掩碼
詳細的參數說明可以參考這個文件vi /opt/software/ffmpeg/ffmpeg/vhook/watermark.c
-m 1 -t 222222 可以不用
用了圖像就被水印文件的顏色給覆蓋了
其實-m 和 -t 還是有用的
通過調這兩個參數可以控制水印和圖像本身的對比關係;
而且jpg圖片本身是有要求的,不是所有的都能加上。