Youtubeのフラッシュビデオをaviに変換 覚書
(2009.05.18)
youtubeからダウンロードしたFLVファイルのままで見れたら一番いいのだが、
flashプラグインを入れてもtcpmpでyoutube動画はみれなかった。
選択肢は2つ。
1)フラッシュ動画が見れるソフトを買う。
Coreplayer なら youtubeサポートは組み込まれているが29.95ドルする。
2)FLV形式をaviやmp4に変換してからWS003に移す。
せっかくWS003が6000円だったのだから、なるたけお金を使わない方針で、
2)を選択する。
変換ソフトにも有料と無料があり、例えば Gom encoder は約5000円!
よって評判のよいフリーソフト「携帯動画」を、、と考えたが、これまたちょっと考えた。
ドラッグ&ドロップの簡単操作だとしても、これまで溜め込んでいたyoutube動画を
まとめて処理できないのは面倒ではないか?
やりたい事は単純で、youtube動画をW-zeroで見れるようにまとめて変換したいだけだ。
色々調べてみると、ファイルの変換そのものは ffmpeg.exe というプログラムが
やっている事がわかった。
試しにffmpeg.exe ウインドウズ版を開発元からダウンロードして使ってみたところ、
これ一つでFLVをaviやmp4に変換できるではないか。
最初「携帯動画」のなかのffmpeg.exeを使ったため、いろいろ悩んだので、覚書としてメモっておく。
ffmpeg.exe は、細かいリヴィジョンのアップデイトがある。(細かすぎる!!)
最終的に一括変換に使ったのは最新版 ffmpeg-18822
携帯動画.zip に入っているものは少し古い。9000番台か?
「携帯動画」のcores フォルダーの cygwin1.dll と cygz.dll をwindowsのsystem32へコピー。
古いリヴィジョンのものは
% ffmpeg -y -i in.flv -vcodec mpeg4(またはxvid) -acodec aac (または mp3) out.mp4
新しいリヴィジョンのものは
% ffmpeg -y -i in.flv -vcodec libxvid -acodec libfaac (または libmp3lame) out.mp4
これが基本形で、ビットレートをどうする、とか、サイズをどうするとか、
こだわる人は山ほどオプションをつける。
元々ちっこい画面のユーチューブ動画を変換したいだけなので、
わたしはデフォルトにまかせ、 -ab 128k (音声のビットレートを128k)だけつけた。
この変換を複数ファイルまとめてやってほしいので、perlで簡単なスクリプトを書いた。
--------------------------------
#! C:/Perl/bin/perl
my $path = "F:/ws003/sources/";
my $inpath = "F:\\ws003\\sources";
my $outpath = "F:\\ws003\\outputs";
opendir(DH, $path) or die;
while (my $file = readdir(DH)) {
chomp $file;
next if $file =~ /^\.+$/;
if ($file =~ /(.*)\.flv/){
# $namae = $1 . ".avi";
# $meirei = "ffmpeg -y -i \"$inpath\\$file\" -vcodec libxvid -acodec libmp3lame -ab 128k -f avi \"$outpath\\$namae\"";
# mp4に変え、音声もシンプルにそのまま。
$name = $1 . ".mp4";
$meirei = "ffmpeg -y -i \"$inpath\\$file\" -vcodec libx264 -level 13 -acodec copy \"outpath\\$name\"";
system("$meirei");
}
}
closedir DH;
---------------------------------
ソースと名づけたフォルダーにyoutube動画ファイルを入れ、
コマンドプロンプトから上記のパールスクリプトを動かすと(activeperlをインストール済み)、
アウトプットフォルダーに変換済みのファイルがたまる。
一番手間がかかったのは、ファイル名を自分好みの半角アルファベットに直した事だった(爆!)。
書きっぱなしの部屋へ戻る