Linux, 工作, 生活, 家人

Gentoo, Linux, Software, UNIX

[轉檔] Using ffmpeg to convert wmv to 3gp

最近買了一隻 Sony Ericsson K800i , 也買了一塊 SanDisk M2 2G 的記憶卡.
想說裝些網路上常見的 wmv 檔到手機上笑一下.
但是 K800i 這一隻手機並不能直接撥 wmv

不過在 Linux 要要怎麼從 wmv 轉檔到 3gp 呢.
其實不如想像中難. 只要用 ffmpeg 就可以簡單的轉檔了,
不過因為大量轉檔非常麻煩, 所以我就寫了一個簡單的 shell script convert.sh

#!/bin/sh

extlist=”wmv
mpg
mpeg”

for extname in $extlist
do
filelist=`ls -1 *.$extname | cut -d ‘.’ -f1 `
for filename in $filelist
do
#
# -s qcif = 176×144 , -r fps, -b bitrate
# -ab = audio bitrate -ac channels -ar freq -acodec audio codec
nice -n 19 ffmpeg -y -i “$filename.$extname” -s qcif -r 20 -b 200k -vcodec mpeg4 -ab 64k -ac 2 -ar 22050 -acodec libfaac “$filename.3gp”

rm -f $filename.$extname

done

done

如果對於參數還有什麼不明白的地方, 請參閱 ffmpeg 的 man page.
這個 shell script 對於有空白字元的, 字元不對的, 就轉不了.
希望拋磚引玉, 其他人可以改得更好 :p

KDE 下有一個還不錯的 Tool 3gp convert 是一個 kommander 的 script file
可以簡單的轉換檔案. 若是不喜歡自己手動改的, 就用這個就好了.

對了, 如果你是用 Gentoo, 記得在編 ffmpeg 時, 將所有的 codec 編進去
這樣才可以正確的轉檔. 編輯

/etc/portage/package.use

加上

media-video/ffmpeg a52 aac altivec amr dts encode ieee1394 imlib mmx network ogg oss sdl theora threads truetype v4l vorbis x264 xvid zlib

再重編一次 ffmpeg

#emerge ffmpeg

這樣就可以用了

ref.

2007/07/20 Updated: 更新 Shell Script, 可以跑 3 種 extend filename, 更改 Rate, 還有更改 acodec 的參數, 原來是 -acodec aac , 現在要改用 -acodec libfaac 才可以

[Tags] Sony Ericsson K800i, ffmpeg , 3gp , wmv , gentoo , 3gp convert [/Tags]

3 留言

  1. kiffy

    您好.
    請問一下, 除了使用ffmpeg轉檔之外. 是否還有其他程式可用呢?

  2. Vasyl

    呼~~真是感謝您的這篇article.我最近一直找不到原因為何原來好端端的轉檔script都不能用了,一直說沒有aac支援。不斷的重新編譯,卻還是不得其解。沒想到竟然是參數的使用方式改變了,而且man也沒有提到。真是流淚~~~
    Anyway, tks again, this is very useful.

  3. 痞子林

    感謝示範,我終於看懂 ffmpeg 的用法了,給它有夠複雜。

發佈留言