panliang188
我看這裡有一大堆PSP轉檔教學,但全都是Window下的......
1D @9p#o l:y ^#Y Q0 就由我來打一篇for Linux的MP4/AVC轉檔教學吧~XD
_ G"E-R&R*e0 以下教學以Ubuntu做示範
d R-d W l u0 -----------------------------------------------------HKCC 中國香港遊戲機資訊網!_ K O)G!R d\'B
HKCC 中國香港遊戲機資訊網/[7k1h!q Q A+N _ | d\'m
總的來看過程是這樣的:HKCC 中國香港遊戲機資訊網 i I H\'Y4Y*c s
1.安裝轉換所需套件HKCC 中國香港遊戲機資訊網 T G k2L*f ~
2.轉換成MP4/AVC格式
,Z Q i/r h!J*w m V0 3.把轉換好的檔案命名為"maqxxxxx.mp4"並放到 "ms0:/mp_root/101anv01/" 中
&e g+B I ~6a T0
h+w+_ S a*u [&S I C0q7C0 開始了......HKCC 中國香港遊戲機資訊網 \ w B0m"p5H$d x v
首先我們要用的工具:HKCC 中國香港遊戲機資訊網 X7w(F*_/r ~-@ L*[
ffmpegHKCC 中國香港遊戲機資訊網 K(H f,u g
還有需要的庫:HKCC 中國香港遊戲機資訊網 ~8`/_(o e R-e2m
x264 , faac和faad2
W j4V {.t V q m+q0
z b0[ y6j8R+^ S0 別想偷懶把所有東東apt-get回來就好,
k C k3y w g2[#e `0 因為apt-get回來的ffmpeg並不支援x264和aac,所以無法用來轉MP4/AVCHKCC 中國香港遊戲機資訊網 V x P @:@%i3e1r [.L#W
為使ffmpeg支援aac和x264,
\'Q:J u Z;Z v F \0 就必需自己下載ffmpeg的源代碼來編譯,
p y8l7|9o:r ? C0 先別急著編ffmpeg......
0n#B h z T0
r B k+n5S,K#{ b0 要使ffmpeg支援MP4/AVC格式就得把一些Libraries編進去,HKCC 中國香港遊戲機資訊網$j%w/N)s W
下載以下源代碼並編譯:HKCC 中國香港遊戲機資訊網:r)b K.g4y K;e2I j
       faac下載:HKCC 中國香港遊戲機資訊網 D-K)_/} k%{ d
            http://sourceforge.net/project/showfiles.php?group_id=704HKCC 中國香港遊戲機資訊網 y(y ] `$H ` P H\'i P
            編譯:
,[ Q W d Z F u0             # ./configure --prefix=/usr/local --enable-shared --with-mp4v2HKCC 中國香港遊戲機資訊網)o h z E/u w A
            # make clean ; make
&@0t l Z r p&S K0             # sudo make installHKCC 中國香港遊戲機資訊網 i ~ }#I h2~

{ W7c m Y0 HKCC 中國香港遊戲機資訊網9C S5f a e-q T G
       faad2下載:HKCC 中國香港遊戲機資訊網 U2^;`#m B0u m
            http://sourceforge.net/project/showfiles.php?group_id=704HKCC 中國香港遊戲機資訊網 z d6b b*@ C Z E
            編譯:HKCC 中國香港遊戲機資訊網 \5U C%n a l2y
            # ./configure --prefix-/usr/local --enable-shared --with-mp4v2
k7V [9p @%C ~!i0             # make clean ; makeHKCC 中國香港遊戲機資訊網 M n W2T Q x1Y T
            # make installHKCC 中國香港遊戲機資訊網0B%c k x$^9u2x Z9j
HKCC 中國香港遊戲機資訊網 k ` |"j-y;o

E @#x |%L+W0        x264下載(用svn指令,還有就是要先安裝yasm才編):HKCC 中國香港遊戲機資訊網 ] A r } h C u+]
            # sudo apt-get install yasmHKCC 中國香港遊戲機資訊網 r,{ R4Y%f | j$m W
            # svn co svn://svn.videolan.org/x264/trunk x264HKCC 中國香港遊戲機資訊網 h%X O F%~ ^&c)O ^9p
            編譯:HKCC 中國香港遊戲機資訊網 e8W;f o I9h | m
            # ./configure --prefix=/usr/local --enable-sharedHKCC 中國香港遊戲機資訊網 H2M"u u z1G U4f+e
            # make clean ; makeHKCC 中國香港遊戲機資訊網4F;x:U,? P#U B
            # sudo make install
)J3C(s D v ^0
[ p:s4k e7G#X L.A0 HKCC 中國香港遊戲機資訊網 J"d n B"Y _ O z
這時你已經安裝好轉MP4/AVC所需的Libraries了
M H%G j$t5@ m u0 先旨聲明,以上這三個只是"只針對轉MP4/AVC而所需的Libraries".HKCC 中國香港遊戲機資訊網 Q8_ N \ c m
而ffmpeg還可以編碼很多其他格式
+] O"A;j m \ p0 想要支持其他格式(如轉mp3等)就請自己下載所需的Libraries,
.T q d X P w Z j0 我把常用的格式和所需的Libraries整理成下表.HKCC 中國香港遊戲機資訊網 v D |5P6H F R
(以下套件只要下回來就"./configure"時只要加上" --enable-shared"選項,再make && make install就可以了,沒難度)
支援的格式 套件名 取得方法
mp3HKCC 中國香港遊戲機資訊網7M J U V S f O0W lame 按我HKCC 中國香港遊戲機資訊網 @ C5x)R d 使之支援mp3編碼
amr-nb libamrnb 按這裡進入下載頁
^ l B\'G b I0
3gp的聲音部分會用到
amr-wb libamrwb
S H-\:e C m C"K%M7n0
和上面是同一頁面HKCC 中國香港遊戲機資訊網 T4V%?1w)F u ? 同上HKCC 中國香港遊戲機資訊網 S6A i3r\'C @ C\'v/D L2} I
AC3 liba52 按我哦~ 杜比環迴立體聲使用 的編碼,對DVD編碼時或許會用到
Xvid xvidcore 這裡 要把影片壓成Xvid就一定要這個,這 個編譯時不用--enable-shared
ogg libvorbis,libvorbis-devel,libogg,libogg-devel #apt-get install libvorbis libvorbis-devel libogg libogg-devel 這堆麻煩東西apt-get安裝就好了
P.S.:個人覺得xvid和mp3特有用,建議安裝HKCC 中國香港遊戲機資訊網$d {%F l \4|8H!d
HKCC 中國香港遊戲機資訊網 P#? J I-O e | I
HKCC 中國香港遊戲機資訊網\'u*l J$v } g:q
接下來就是編譯ffmpeg
X D }&p [1_ r+J0 使用svn指令下載ffmpeg:
G2a ^ C+T8z [0 # svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpegHKCC 中國香港遊戲機資訊網 D g6n ? P"K"A p Q2z H:J
HKCC 中國香港遊戲機資訊網8? z \-R g j n i
首先解壓縮不用說
g P U h2h/s0 進入資料夾後當然就是./configure 啦
B z+g P ~ K9Z s9x y0 完整命令是這樣:HKCC 中國香港遊戲機資訊網 C b0T#K R Q F }
# ./configure --enable-shared --enable-libfaac --enable-libfaad2 --enable-libx264 --enable-pthreads --disable-ffserver --prefix=/usr/local
c t!~5M a G\'R,O)V T0
D M ~ u#x y/S O g.u.o0 假若你有下載其它庫來支援更多功能,可以在上面命令添加"--enable-xxxxxx"
s1v D _(j v:R w s {%P0 例如你要把mp3lame編進去,只要加"--enable-libmp3lame"就好了
1J/D8O%K4? o M0 P.S.那個"xxxxx"都以lib開頭,xvidcore的是"libxvid",其他按上表的"套件名"一欄鍵入就ok
(m6I }&? h p K$r A Y ] o0 HKCC 中國香港遊戲機資訊網 y v(W5z ? g
成功產生Makefile檔後,就到最花時間的編譯了HKCC 中國香港遊戲機資訊網 Z$_ g e k\'@ v b
# make clean ; make
u4{ q p5w b P u,A\'r+U5k N0 # sudo make installHKCC 中國香港遊戲機資訊網 J x }$A Z#n ]

9O z6z(x t ~ P d k0 一切ok~
M2g&k9h5U4j R P$p s0 接下來就是使用了! ^^"HKCC 中國香港遊戲機資訊網 n z5N D3I _ G p j

)q C6L j { k.O z0 用這個 (只適用於非rm/rmvb影片):
N#E+m1J C5b ^"l0 # 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 -aspect 480:272 "OutputFile"
7C\'[ K\'] n b.Y+M a0 HKCC 中國香港遊戲機資訊網*u { r ^.k
參數:
} U ^ N j r p ?0 -i : 後面接著要轉換的檔案HKCC 中國香港遊戲機資訊網3E i5l M9v9i o b f
-timestamp : 指定時間截HKCC 中國香港遊戲機資訊網0x%c h#K\'R;A L
-bitexact : 使用標準比特率HKCC 中國香港遊戲機資訊網 Q y V o.M g%C
-vcodec : 指定用什麼codec來編碼影像部分,MP4/AVC=X264+AAC,所以這裡選libx264
.J C8p C$y:S0 -bufsize : 設置碼率控制緩衝區大小,不懂的,別理它了!
#b y G S;e*} [ \1V#Y m/z0 -g : 設置圖像組大小,又是很Pro的東西,當看不見就可以了!
;p2X/] { R2p(r Y6J n0 -s : 指定影片解析度,要在PSP全螢幕看所以就設480x272HKCC 中國香港遊戲機資訊網 c J G1Y v-J*j K!F
-r : 幀頻,一般都會用29.90
} z(g"W/u o/f a0 -b : 影像比特率,768很不錯了。除了768外,也可以選:384,512,1500,越大畫質越好,檔案也越大HKCC 中國香港遊戲機資訊網+r d/L q+d C(q u
-acodec : 指定用啥codec來編碼聲音部分,現在我們轉成MP4/AVC所以我們用libfaacHKCC 中國香港遊戲機資訊網3U#v1{ A!` N E y e
-ac : 聲道數,調成2就是立體聲,1的話就會是單聲道
#e z"b6R2~:@0 -ar : 聲音采樣率,可以用24000或48000,48000音質較好
\'A#D Y n8O e g l0 -ab : 聲音碼率。如果上面用了立體聲,這裡就要設成原來的一半,這個例子中,原來想要設的是128,但由於用了立體聲的關係,現在是64。          另外除了128,也可以選:32,48,64,96,越大音質就越好,檔案容量 也越大HKCC 中國香港遊戲機資訊網.^"M q k7V e E S `*i
-f : 使用啥格式,就選psp吧!~
P(H1z3]6D _ i0    -aspect : 影片比例, 建議和-s參數所指定的一樣, 如 -s 480x272 建議設成 -aspect 480:272 (因為小P可能會不懂得某些古古怪怪的SAR值(某些情況下ffmpeg會自動幫你設好SAR的),所以把SAR值設定為1:1就比較萬無一失了)
4H)h"Z y \/\0 HKCC 中國香港遊戲機資訊網9h)T\'o @ P s v6Z r
放PSP需要一個.thm的預覽圖,也可以用ffmpeg來拍下,HKCC 中國香港遊戲機資訊網 ` Z E4h r K+W \ H
用以下指令:
2q [5B1N;\%X m _0 # ffmpeg -i "InputFile" -f image2 -ss 2 -vframes 10 -s 160x120 -an "OutputFile.thm"
D } h n!r%`9T3c*F2W O2n0 HKCC 中國香港遊戲機資訊網 l n3z f e s
參數:HKCC 中國香港遊戲機資訊網:Y m*x(b g0b {\'` z0g
-i : 和上面轉片時的用法一樣,後面跟要拍的檔案
W+F G J0v(s a0 -f : 和上面轉片時一樣,"-f"是輸出的格式,"image2"告訴ffmpeg要輸出jpg檔,即是要拍照片HKCC 中國香港遊戲機資訊網 f T L C;Z4| a
-ss : 參數是要拍第多少秒,這裡拍第2秒,HKCC 中國香港遊戲機資訊網 a c t:R X b0j i)D5C
-vframes 10 : 要截指定秒數中的第幾幀,其實幾多都可以,10就可以了 (因為第一幀或數值太大可能會拍到黑色畫面,10 的話一般都OK)HKCC 中國香港遊戲機資訊網,h L8~3k x
-s : 和上面轉片時的用法一樣,用來設解析度
2A I D K f p q L8E0 -an : 不要聲音,很難想像拍下來的圖像檔會有聲音吧......
+?*z ` z0w0 HKCC 中國香港遊戲機資訊網 y9x u D.a"z
如果你的源影片上下有黑邊的,就得先裁掉這些黑邊,否則影像會變形。HKCC 中國香港遊戲機資訊網 _7U+m5w/G7k J3f
以下引用自FFmpeg Documentation:
\'-croptop size\'HKCC 中國香港遊戲機資訊網8~ N2k N _
Set top crop band size (in pixels).HKCC 中國香港遊戲機資訊網 s _ T d R*Y;O
\'-cropbottom size\'HKCC 中國香港遊戲機資訊網 C } a&o ~
Set bottom crop band size (in pixels).
1} l)D7J e l7f n0
現在你應該明白怎樣去邊了吧!HKCC 中國香港遊戲機資訊網 N;P K i Y K A
有關ffmpeg的其他用法,請參考FFmpeg DocumentationHKCC 中國香港遊戲機資訊網"p7b;N\'g L-d\'N b

(P#?*J5?\'U ?%O I k0 每次都打一大堆參數真麻煩!
:B I2I"Y Z { P8I \0 這裡有一個我自己用的小script,可以讓大家參考一下,覺得寫的不好的話就多多指教了
(L s c+o K#A G0e&z0
M l W;I v#B0
$t1W8] ~ x X0
#!/bin/bashHKCC 中國香港遊戲機資訊網6U }-d Z8w
#################HKCC 中國香港遊戲機資訊網 Y#V I1j p k(Y @.u P-}
#Usage:
-X C6V [7_!{ L L0#    2psp [-r input_framerate] file1 [-r input_framerate] file2......
f K5@$A ? [%u s0#
j\'c v c7T y0#Options:HKCC 中國香港遊戲機資訊網.N"I2u X)O2C*r }
#    -rmvb                          use mplayer to decode and pass data to ffmpeg, this can convert rmvb file, but less stable.
0v b"E t2t6[0#                                       by default, we do not use this mode.
0r9Y(\ W H I \-|4c0#    -r [input_framerate]      special the framerate of input file, it\'s useful for converting rmvb file
T2A6d v R D&g8K0#################HKCC 中國香港遊戲機資訊網:F O b S(d1J

a4|0_!X U H+F0function random(){   ### make five random numbersHKCC 中國香港遊戲機資訊網8o:w v y S @
    for ((int=0; int<5; int=int+1)); do
.H M z \;| t+M L P:L"p [0        product=$product`expr $RANDOM \'*\' 10 \'/\' 32767`
?&?*^ q e0p,s V&C,o E0    doneHKCC 中國香港遊戲機資訊網"n E5p k8n N D C q
    echo $productHKCC 中國香港遊戲機資訊網 N:| x-{)D p
}
{ Z1D }8e h+T1X*W"A0
"S&{6U-a l#?0function 2psp_mplayer(){   ### convert with mplayer and ffmpegHKCC 中國香港 ...

分类:

技术点:

相关文章: