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