swfファイルから音声データを抽出する

  • 投稿日:
  • by
  • カテゴリ:

追記:afunikkiさんのFlaexというアプリを使えば音声だけでなく画像も抽出できるようなので、こちらがオススメです。


タイトルのことをしたかったわけだが、MacOSXはswfの扱いが弱く、ちょっと調べた限りでは、フリーのアプリではできないようだった。 しかし「SWFTOOLS」というUNIXのアプリを使ったらswfファイルからmp3ファイルを取り出すことができたので、メモを残しておく。 QuickTimeで開ければ一発だったのになぁ・・・。

さて、この方法はターミナルを色々使う上、私の説明も不親切なので、苦手な人は注意。 必要性と知識 or ガッツがある人が対象。

手順

  1. 下準備
  2. SWFTOOLSインストール
  3. 音声ファイル抽出

以下、手順を簡単に説明する。

1.下準備

SWFTOOLSのインストールするには、Cのコンパイラとlibjpegとやらが必要な模様。

1-1.Cコンパイラインストール

OSXのインストールDVDがあれば、ついているXcodeをインストールすればOK。 OSインストール時に一緒にインストールしている人も多いだろう。 Xcodeは入れておいてもよいと思う。

Xcodeをインストールしていない人で、インストールDVDが手元にない人は、Appleのサイトからダウンロードできる。
Apple Developer Connection - Developer Tools and Technologies - Download Xcode

驚くべきことにファイルサイズが1GBとかあるので、DVDを持っている人はそちらを使うことを強く推奨する。

Cコンパイラがインストールされているかわからない人は、ターミナルで「cc」と入力してリターンを押してみる。 「no input files」とか表示されれば、既にインストールされているのでOK。

1-2.libjpegインストール 次に、jpeglibというものをインストール。これもSWFTOOLSに必要らしい。
(↑不要でした!次のSWFTOOLSのインストールへ)

2.SWFTOOLSインストール

これが今回の主役。ターミナルからコマンドでSWFファイルをいじれるもの。

SWFTOOLSのインストール SWFTOOLSから、「Linux Version」の「swftools-0.8.1.tar.gz」をダウンロードする('08 7月末時点の最新版)。

このファイルが、また「ダウンロード」フォルダに保存されたとすると、ダブルクリックすると「swftools-0.8.1」フォルダが「ダウンロード」フォルダにできる。 ここですかさず、ターミナルで以下のように入力。

% ./configure
% make
% sudo make install
% rehash

rehashしないとパスが通らない。 あとSWFTOOLSの機能のうち、pdf2swf と png2swf と gif2swf あたりが無効化された気がするが、 今回使うのはswfextractというものだけなので無視。

<追記> Macの手書き説明書のveadarさんがswfファイルからmp3などを抜き出す方法というエントリーで、 MacPortsを使って簡単にSWFTOOLSをインストールする方法を紹介されているので、そちらも参考にすると良いです。
<追記ここまで>

3.音声ファイル抽出

さて、やっと準備が整ったので、本題である音声を抽出したいswfファイルを準備する。 またもや簡単のため、「ダウンロード」フォルダの「test.swf」ファイルであるとする。 またもやターミナルで、おもむろに以下のコマンドを入力する。

% cd Download
% swfextract -m test.swf -o test.mp3

想像通り、「test.swf」の部分を変えると入力ファイル名が変わるし、 「test.mp3」の部分を変えると出力ファイル名が変わる。 好きな名前で入出力しまくって欲しい。


ということで、Mac用フリーウェアでは不可能な(調べたが見つからなかった)swfファイルからの音声抽出に成功した。UNIXえらいね。 GUIかぶせれば適当なソフトは作れるような気がするが、めんどくさいので作らない (ものすごく気が向けば、あるいは・・・)。

あと、SWFTOOLSの機能をフルに使おうと思ったら、SWFTOOLS「7.) How do I compile swftools on Mac OS X?」の記述に従うべき。 そうするとpdf2swfなどが使えるようになるでしょう。

以上、ご機嫌よう!