Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

flvからmp3ファイルを作成するコマンドをUbuntu10.10へ作成

Ubuntu10.10をアップデートではなくクリーンインストールしたのですが、以前作成したスクリプトが動作しなくなってしまいました。
以前作成したスクリプトはこちら
原因は「ffmpeg」がインストールされなくなってしまったから。
ライセンスの問題で、最初からインストールされるファイルから外されてしまった模様。

ffmpegのインストール

しかしながら、synapticからインストールできる様子なので

「システム」→「システム管理」「synaptic・パッケージマネージャ」を選択してsynapticを起動。
検索窓に「ffmpeg」と入力すれば、一覧に表示されるのでマウスダブルクリックにて適用するだけ。
非常に簡単にインストール可能。

ホームディレクトリに自分用のbinディレクトリ作成

ホームディレクトリにbinディレクトリを作成し、シンボリックリンクを置くことで何処からでもコマンドを実行できるように設定。

kamuycikap % mkdir ~/bin

.zshrcにpathを設定

僕はzshを利用しているので、.zshrcに下記の一文を追加し、pashに先ほど作成した~/binを追加する。
これにより、何処からでも~/binディレクトリにあるコマンドを呼べるようになる。

## ユーザー用のbinをパスに追加する
path=(~/bin $path)

以下のコマンドで.zshrcを再読み込みして設定を友好にする

kauycmikap % source ~/.zshrc

スクリプトを作成する

作成したらスクリプトに実行属性を与える事をお忘れなく。

コマンドの利用方法は・・・こんな感じにする

KAMUYCIKAP % flv2mp3 ./hogehoge/henkan.flv
KAMUYCIKAP % flv2mp3 ./hogehoge/*.flv

ソースコードはこんな感じ。

#!/bin/zsh
#=============================================================================
#指定されたディレクトリにあるflvファイルを読み込み、mp3に変換する
#-----------------------------------------------------------------------------
#引数
#   flvファイル(フルパス)
#=============================================================================

#変数定義
cnt=1               #flvファイルカウント(変換用)

cntmax=$#           #引数で渡されたflvファイルの最大カウント
cntmax=$[cntmax+1]  #0番目にはコマンド名が入っているため調整

#コマンド名のみで起動された(flvファイルパス無し)場合、エラーとする
if [ $# -lt 1 ]
then
    echo "SYNOPSIS : flv2mp3 [FILE PATH(flv)]..."
    echo "sample   : % flv2mp3 ./*.flv"
    exit 1
fi

#引数で渡されたflvファイル数だけループする
#$argvの0番目にはコマンド名が入っているためcntは1からカウントする
while [ $cnt -lt $cntmax ]
do
    inputfile=`echo $argv[$cnt] | sed -e "s/\.flv//g"`     #拡張子(.flv)を削除してinputfileへセット
    echo $inputfile
    `ffmpeg -i "$argv[$cnt]" -acodec copy $inputfile.mp3`   #flvからmp3へ変換
    cnt=$[cnt + 1]
done

exit 0

スクリプトのシンボリックリンクを作成

コマンドを何処でも実行できるように、作成したスクリプトのシンボリックリンクを~/binへ設置。

ln -s /home/kamuycikap/Dropbox/work/programming/zsh/src/flv2mp3.sh ~/bin/flv2mp3 

これで完了!
無事に何処でもflvファイルをmp3ファイルへ変換できるようになった。