Linux下用ffmpeg轉PSP影片 (MP4/AVC格式)
生活随笔
收集整理的這篇文章主要介紹了
Linux下用ffmpeg轉PSP影片 (MP4/AVC格式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://www.hacken.cc/ss/index.php/144989/viewspace-5136
總的來看過程是這樣的:
1.安裝轉換所需套件
2.轉換成MP4/AVC格式
3.把轉換好的檔案命名為"maqxxxxx.mp4"并放到"ms0:/mp_root/101anv01/"中
首先我們要用的工具:
ffmpeg
還有需要的庫:還有需要的庫:
x264 , faac和faad2
別想偷懶把所有東東apt-get回來就好,
因為apt-get回來的ffmpeg并不支援x264和aac,所以無法用來轉MP4/AVC
為使ffmpeg支援aac和x264,
就必需自己下載ffmpeg的源代碼來編譯,
要使ffmpeg支援MP4/AVC格式就得把一些Libraries編進去,
下載以下源代碼并編譯:
faac下載:
http://sourceforge.net/project/showfiles.php?group_id=704
編譯:
# ./configure --prefix=/usr/local --enable-shared --with-mp4v2
# make clean ; make
# sudo make install
faad2下載:
http://sourceforge.net/project/showfiles.php?group_id=704
編譯:
# ./configure --prefix-/usr/local --enable-shared --with-mp4v2
# make clean ; make
# make install
x264下載(用svn指令,還有就是要先安裝yasm才編):
# sudo apt-get install yasm
# svn co svn://svn.videolan.org/x264/trunk x264
編譯:
# ./configure --prefix=/usr/local --enable-shared
# make clean ; make
# sudo make install
.這時你已經安裝好轉MP4/AVC所需的Libraries了先旨聲明,以上這三個只是"只針對轉MP4/AVC而所需的Libraries".
而ffmpeg還可以編碼很多其他格式想要支持其他格式(如轉mp3等)就請自己下載所需的Libraries,
我把常用的格式和所需的Libraries整理成下表.
(以下套件只要下回來就"./configure"時只要加上" --enable-shared"選項,再make && make install就可以了,沒難度)
套件名
mp3
lame
使之支援mp3編碼使之支援mp3編碼
amr-nb libamrnb
gp的聲音部分會用到
amr-wb libamrwb
AC3 liba52 杜比環回立體聲使用的編碼,對DVD編碼時或許會用到
Xvid xvidcore 要把影片壓成Xvid就一定要這個,這個編譯時不用--enable-shared
#apt-get install libvorbis libvorbis-devel libogg libogg-devel
這堆麻煩東西apt-get安裝就好了
PS:個人覺得xvid和mp3特有用,建議安裝
接下來就是編譯ffmpeg
使用svn指令下載ffmpeg:
# svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
首先解壓縮不用說進入資料夾后當然就是./configure啦完整命令是這樣:
# ./configure --enable-shared --enable-libfaac --enable-libfaad2 --enable-libx264 --enable-pthreads --disable-ffserver --prefix=/usr/local
假若你有下載其它庫來支援更多功能,可以在上面命令添加"--enable-xxxxxx"
例如你要把mp3lame編進去,只要加"--enable-libmp3lame"就好了
PS那個"xxxxx"都以lib開頭,xvidcore的是"libxvid",其他按上表的"套件名"一欄鍵入就ok
產生Makefile檔后,就到最花時間的編譯了
# make clean ; make
# sudo make install
用這個:
# ffmpeg -i "InputFile" -timestamp 00:00:00 -bitexact 1 -vcodec libx264 -bufsize 128 -g 250 -s 480x272 -r 29.97 -b 768k -acodec libfaac -ac 2 -ar 48000 -ab 64 -f psp "OutputFile"
參數:
-i :后面接著要轉換的檔案
-timestamp :指定時間截
-bitexact :使用標準比特率
-vcodec :指定用什么codec來編碼影像部分,MP4/AVC=X264+AAC,所以這里選libx264
-bufsize :設置碼率控制緩沖區大小,不懂的,別理它了!
-g :設置圖像組大小,又是很Pro的東西,當看不見就可以了!
-s :指定影片解析度,要在PSP全螢幕看所以就設480x272
-r :幀頻,一般都會用29.90
b :影像比特率,768很不錯了。除了768外,也可以選:384512,1500,越大畫質越好,檔案也越大
-acodec :指定用啥codec來編碼聲音部分,現在我們轉成MP4/AVC所以我們用libfaac
-ac :聲道數,調成2就是立體聲,1的話就會是單聲道
-ar :聲音采樣率,可以用24000或48000,48000音質較好
-ab :聲音碼率。 如果上面用了立體聲,這里就要設成原來的一半,這個例子中,原來想要設的是128,但由于用了立體聲的關系,現在是64。 另外除了128,也可以選:32,48,64,96,越大音質就越好,檔案容量也越大另外除了128,也可以選:32,48,64,96,越大音質就越好,檔案容量也越大
-f :使用啥格式,就選psp吧!~
放PSP需要一個.thm的預覽圖,也可以用ffmpeg來拍下,
用以下指令:
# ffmpeg -i "InputFile" -f image2 -ss 2 -vframes 10 -s 160x120 -an "OutputFile.thm"
參數:
-i :和上面轉片時的用法一樣,后面跟要拍的檔案
-f :和上面轉片時一樣,"-f"是輸出的格式,"image2"告訴ffmpeg要輸出jpg檔,即是要拍照片
-ss :參數是要拍第多少秒,這里拍第2秒,
-vframes 10 :要截指定秒數中的第幾幀,其實幾多都可以,10就可以了(因為第一幀或數值太大可能會拍到黑色畫面,10的話一般都OK)
-s :和上面轉片時的用法一樣,用來設解析度
-an :不要聲音,很難想像拍下來的圖像檔會有聲音吧......
如果你的源影片上下有黑邊的,就得先裁掉這些黑邊,否則影像會變形。
以下引用自FFmpeg Documentation :
'-croptop size'
Set top crop band size (in pixels).
'-cropbottom size'
Set bottom crop band size (in pixels).
現在你應該明白怎樣去邊了吧!
有關ffmpeg的其他用法,請參考FFmpeg Documentation
總結
以上是生活随笔為你收集整理的Linux下用ffmpeg轉PSP影片 (MP4/AVC格式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华盛顿协作定律
- 下一篇: java 块注释_java的注释