2012年7月27日金曜日

WMVファイルをffmpegでMP4に変換する。


WMV(Windows Media Video)形式だと、iPhoneなどで再生できない。
MP4形式なら、ほぼ全てのプレイヤーで再生可能で便利である。
ffmpegコマンドを使用して、
変換してくれるスクリプトを書いたので載せておく。

script.sh

#!/bin/bash

# CPUの個数を取得
CPU_CORES=`/usr/bin/getconf _NPROCESSORS_ONLN`

# wmvファイルを列挙する。
# Tips: マックの場合、ファイル名と同じ
#       ドットファイルが作成されている事がある為、
#       grepコマンドで取り除く。
FILES=`find ./ -iname "*.wmv" | grep -i "^./[^.].*.wmv$"`

# 改行文字を区切り文字としてforループする。
IFS="
"
for FILENAME in $FILES; do
    # 出力ファイル名は、拡張子を.mp4に置換したものにする。
    OUTPUT=`echo "$FILENAME" | sed -e s/.wmv$/.mp4/i`

    # ffmpegによるmp4変換
    ffmpeg -i "$FILENAME" \
        -acodec libfaac -aq 100 -ac 2 \
        -vcodec libx264 -crf 20 -vsync 1 \
        -threads $CPU_CORES \
        "$OUTPUT"
done

カレントフォルダ内のwmvファイルをmp4変換してくれる。
結構時間がかかるので、nohupコマンドでプロセス起動させておくと良い。
$ nohup script.sh &

このスクリプトを使うと
1.87GBのwmvファイルが1.67GBほどのmp4ファイルに変換された。


0 件のコメント:

コメントを投稿