強火で進め

このブログではプログラム関連の記事を中心に書いてます。

FLVファイルを一括でMPEGファイルへ変換

FLVファイルだと倍速再生とかできないため不便だったのでMPEGファイルへの一括変換を行うシステム(というほどたいそうなものでもないけどw)を作成しました。

【システム構成】
Windows Vista(たぶん他のWindowsでもOK)
ffmpeg
・バッチファイル

【作成手順】
1. まず、ffmpegをインストールして下さい(解説は省略。ググるなりヤフるなりして下さい)。

2. 下のコマンドを convert.bat などバッチファイル(拡張子を .bat のファイル)として保存して下さい。

@echo off
:nextfile
if "%~s1"=="" goto end
if exist %~s1 c:\tmp\ffmpeg.exe -i "%~s1" -pix_fmt mpeg2video -b "600k" "%~d1%~p1%~n1.mpg"
shift
goto nextfile
:end
pause

なお

c:\tmp\ffmpeg.exe

の部分は自分のインストールしたffmpegのパスに書き換えて下さい。

3. 2.で作成したバッチファイルに変換したいFLVファイルをドラックして下さい。FLVファイルと同じ
ディレクトリに変換されたMPEGファイルができます。もちろんオプション設定を変更することで他の形式での出力も簡単にできます。ちなみに -pix_fmt mpeg2video で出力ファイルをMPEG2に -b "600k" で動画のビットレート指定をしています。

※使用するffmpegのバージョンによっては上手く変換されない場合があるようです。
ここのffmpegは性能が良いようです(なお色々、準備するのがめんどくさい人にはこんなめんどうなバッチファイルなど作らずflv2pspなどを使用することをおすすめします)。

【感謝】
ffmpegの作者さんこんな高性能なプログラムをフリーで配布して下さりありがとうございます。
・バッチコマンドについてはこちらを参考させてもらいました。ありがとうございます。

コマンドプロンプトを使ってみよう! −バッチファイル−
http://ykr414.com/dos/dos05.html

はてなさんバッチコマンドもハイライト対応してるとはすごすぎです。
自分で使っててなんだけど需要あるのかな?

08/04/06追記:デフォルトのビットレートだと少々画質が悪いので 600k 指定に変更。