swfからmp3の抽出ができるとうれしいのですが、Ubuntu 8.10のffmpegでは、swfファイルの処理ができない模様。
Ubuntu 8.04 Hardy 対応のmedibuntuのレポジトリからffmpegをインストールすればできるらしいですが、8.10ではインストールそのものがうまくいきませんでした。
うーん、やるなら自前でコンパイルするしかないか…
できればパッケージ管理から離れたくないけど、今度トライしてみます。
Ubuntu 8.10でflv,mp4から音楽を抽出 | 君のてのひらから
いろいろトライしてみた結果をまとめます。
ffmpegをいろいろなコーデックに対応した版にする
iPod用の動画変換などを見据え、ffmpegをmp3,mp4に対応したものにすることにします。 手順はUbuntuのフォーラムにありました。 HOWTO: Install and use the latest FFmpeg and x264 - Ubuntu Forums
日本語訳がてら手順を示します。
現在のffmpegをアンインストール
sudo apt-get purge ffmpeg x264 libx264-dev
x264, ffmpegをmakeするために必要なものをインストール
sudo apt-get update sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev libxvidcore4-dev
x264: gitでソースをダウンロード→makeして、パッケージ管理に取り込みつつインストール
cd git clone git://git.videolan.org/x264.git cd x264 ./configure make sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --default
ffmpeg: subversionでソースをダウンロード→makeして、パッケージ管理に取り込みつつインストール
cd svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg cd ffmpeg ./configure --enable-gpl --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid make sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default
swf用のツールをインストール
swfからmp3を抽出するためのswfextractをインストール
sudo apt-get install swftools
音楽抽出用のシェルを更新
前回作成したmusic_split.shを更新しました。 ご利用は自己責任で。
music_split.sh
#!/bin/sh # music_split.sh # ----------------------------- # by Takuya Y. # http://yourpalm.jubenoum.com/ # ----------------------------- # flv -> mp3, mp4 -> m4a, swf -> mp3 # depends on "ffmpeg" and "swfextract" MUSICDIR=$HOME/Music for FLV in `ls *.flv` do BASE=`basename $FLV .flv` echo "=======================================" echo "$FLVからmp3を抽出..." echo "=======================================" ffmpeg -i $FLV -acodec copy $BASE.mp3 echo "=======================================" echo "完了" echo "=======================================" done for MP4 in `ls *.mp4` do BASE=`basename $MP4 .mp4` echo "=======================================" echo "$MP4からaacを抽出..." echo "=======================================" ffmpeg -i $MP4 -acodec copy -vn $BASE.m4a echo "=======================================" echo "完了" echo "=======================================" done for SWF in `ls *.swf` do BASE=`basename $SWF .swf` echo "=======================================" echo "$SWFからmp3を抽出..." echo "=======================================" swfextract -m $SWF -o $BASE.mp3 echo "=======================================" echo "完了" echo "=======================================" done echo "=======================================" echo "音楽フォルダにmp3ファイルを移動..." echo "=======================================" mv *.mp3 $MUSICDIR echo "=======================================" echo "完了" echo "=======================================" echo "=======================================" echo "音楽フォルダにm4aファイルを移動..." echo "=======================================" mv *.m4a $MUSICDIR echo "=======================================" echo "完了" echo "=======================================" exit 0
シェル実行
初めて作成したら、実行権限をつけておきましょう。
chmod 755 music_split.sh
そして、$HOME/nico配下にflv/mp4/swfがある状態でシェルを実行します。
./music_split.sh
すると、$HOME/Music配下にmp3/m4aファイルができあがっているはずです。