ffmpegによる動画変換のためのPerl wrapperスクリプト

コマンドスクリプト集トップへ




概要

ffmpegを利用した動画フォーマット変換のためのPerlのwrapperスクリプト。複雑なオプションを指定することなく簡単に複数の動画をコマンドライン上から変換できます。

条件

  1. Perlがコマンドライン上で動作する必要があります。
  2. ffmpegのbuild20121125が必要です。Windows版はffmpeg.zip(8MB)(ffmpeg.exeのファイル名を便宜上ffmpeg.20121125.exeに変更しています)、またはhttp://ffmpeg.zeranoe.com/builds/からダウンロードできます。ffmpegのバージョンは必ずしもこのバージョンでなくてもかまいませんが、オプションなどが変更されてる場合がありますので、スクリプトの修正が必要になる可能性があります。

コマンドの使い方

 vconvert.pl [options] <video file> [<video files> ...]

引数としてオプションと変換したいビデオファイルを指定します。 オプションは以下の物が設定できます。

    --help : ヘルプを表示
    --size <WxH> : 出力する動画のサイズ、例 320x240, 320x180, ...
                   デフォルト:元動画と同じサイズ
    --aspect <ratio> : アスペクト比(縦横比)、例 4:3, 16:9, 1.7777, ...
                       デフォルト:元画像と同じアスペクト比
    --target <format> : 変換後の動画フォーマット、例 mp4, avi, wmv, flv, mp3, swf
                        デフォルト: mp4
                        mp3が指定された場合は音声だけが抽出されます
    --outfile <filename> : 出力ファイル名指定
    --concat : 複数のファイルを繋げて変換します。比較的大きなテンポラリファイルが処理中に作成されます。

現在このスクリプトで以下のフォーマット変換がサポートされている事を確認しています。基本的に入力はffmpegがサポートしている入力は扱えます。出力もffmpegがサポートしているフォーマットであればffmpegのオプションを設定すれば他のフォーマットにも対応できます。

 動画変換フォーマット
 
  flv -> avi
  flv -> mp4
  flv -> wmv
  flv -> swf
  avi -> mp4
  avi -> wmv
  avi -> flv
  avi -> swf
  mp4 -> avi
  mp4 -> wmv
  mp4 -> flv
  mp4 -> swf
  wmv -> mp4
  wmv -> avi
  wmv -> flv
  wmv -> swf
  divx -> mp4
  divx -> avi
  divx -> flv
  divx -> wmv
  divx -> swf
  swf -> mp4
  swf -> avi
  swf -> flv
  swf -> wmv
 
 オーディオ抽出フォーマット
 
  flv -> mp3
  avi -> mp3
  mp4 -> mp3
  wmv -> mp3
  divx -> mp3
  swf -> mp3

出力されるファイル名は、元ファイルのbody.拡張子となります。拡張子は--targetの指定によって以下のように決定されます。

 --target mp4 -> .mp4
 --target avi -> .avi
 --target wmv -> .wmv
 --target flv -> .flv
 --target mp3 -> .mp3
 --target swf -> .swf

出力ファイルはスクリプトを走らせているディレクトリに作成されいます。入力ファイル名と出力ファイル名が同一になる場合は、出力ファイル名は、body-new.拡張子となります。

使い方の例

flvファイルをmpeg4のフォーマットに変換する方法。

 vconvert.pl invideo.flv

flvファイルをiPod用に変換する方法。mp4に変換しサイズを320x240にしています。

 vconvert.pl --size 320x240 invideo.flv

アスペクト比16:9のワイド画面flvファイルをiPod用に変換する方法。アスペクト比とサイズを対応させます。

 vconvert.pl --size 320x180 --aspect 16:9 invideo.flv

複数のflvファイルをまとめてiPod用に変換する方法。入力ファイルを複数指定するだけです。

 vconvert.pl --size 320x240 invideo1.flv invideo2.flv invideo3.flv invideo4.flv

flvファイルをaviファイルに変換する方法。--targetを指定します。

 vconvert.pl --target avi invideo.flv

wmvファイルをflvファイルに変換する方法。--targetを指定します。

 vconvert.pl --target flv invideo.wmv

flvファイルからオーディオだけを抽出する方法。--targetにmp3を指定します。

 vconvert.pl --target mp3 invideo.flv

複数のflvファイルを繋げて一つのmpeg4ファイルに変換します。出力ファイル名はout.mp4に指定。

 vconvert.pl --concat --target mp4 --outfile out.mp4 in1.flv in2.flv in3.flv

ヘルプを表示。

 vconvert.pl --help

使い方に関する質問などはサポート掲示板のその他/一般へどうぞ。

設定

ffmpeg.20121125.exeをvconvert.plと同じディレクトリの置いてください。ffmpeg.20121125.exeは便宜上その名前にしているだけなので、ファイル名を変更したい場合は、スクリプト内の以下の部分を変更してください。元のファイル名はffmpeg.exeです。

 $ffmpeg = "ffmpeg.20121125.exe";

スクリプトダウンロード

以下のリンクのテキストファイルをダウンロードし、名前をvconvert.plとしてください。一行目のPerlのパスは適切に変更してください。

vconvert.pl

Windows版のffmpeg, version 20121125はffmpeg.zip(8MB)(ffmpeg.exeのファイル名を便宜上ffmpeg.20121125.exeに変更しています)、またはhttp://ffmpeg.zeranoe.com/builds/からダウンロードできます。