FFmpegを利用してTSファイルをMP4に変換する

  • by
  • 方法
  • コメントなし

FFmpegは動画や音声などを変換できるフリーウェアです。もともとはUNIXで開発されたものなので、LinuxやMacは当然、Windowsでも使えるパッケージがリリースされています。
私はWindowsを主に使用しているので、Windowsでの変換方法を紹介したいと思います。
ご自身で試される場合は自己責任でお願いいたします。

ffmpeg右上もしくは左上のパッケージを選択してください

まず用意するものはFFmpegです。パッケージは公式サイトからダウンロードできます。ウィンドウズ用はこのように6種類用意されています。使用しているOSが32ビットOSの場合は左上のStaticと書かれたパッケージ、64ビットOSの場合は右上のStaticと書かれたパッケージでおkです。パッケージは7zで圧縮されているため、展開には7-Zipというソフトが必要です。7-Zipは、公式サイトからダウンロードできます。
FFmpegのパッケージの名称は長ったらしいので、ダウンロードしたあとは、ディレクトリの名称を「ffmpeg」などの簡単な名前に変更し、できるだけ分かりやすいところに保存しておきます。(例、C:ffmpegやD:ffmpeg)
OSとデータを別々に保存している場合はデータ用のドライブ(D:など)に保存しておいても良いと思います。

あとは簡単に変換するための環境を整えるだけです。私の場合はBATファイルを作りました。
内容はこんな感じです。

for %%a in (“*.ts”) do D:\ffmpeg\bin\ffmpeg.exe -i %%a -b:v 3000k -acodec ac3 -ar 48000 -threads 4 -vcodec libx264 D:\encoded\%%~na.mp4

環境が異なる場合、このままコピペしても動きません。
改行すると動きませんのでご注意ください。また、ファイル名は全角の場合もしくは半角のスペースが含まれている場合、エラーを起こすことがあります。

コード解説
コード内の「for %%a in (“*.ts”) do」は簡単に言えば、「フォルダ内にTSファイルがある限り次の処理をする」という意味です。ファイルタイプを.tsに限定したくないは(“*.*”)としておけばいいです。
次にffmpeg.exeの場所を指定します。私の場合はD:\ffmpeg\bin\ffmpeg.exeです。必要に応じてパスは変更してください。
あとは引数を指定するだけです。

batBATを保存する際は「名前をつけて保存」を選択して、ファイルの種類を「全てのファイル」としておいてください。

今回使用した引数+使えそうな引数の説明
-i 入力ファイル。今回はフォルダー内のtsファイル全てが対象なので%%aとしておきます。
-b:v ビデオのビットレート。私の場合は1000kで十分です。高画質をお求めの方はより高い値に設定してください。
-threads スレッド数。私は8スレッドあるCPUを使用しているので「4」と設定しておきました。
-acodec オーディオコーデック。AC3でよいかと。
-ar オーディオ周波数。48000で十分だと思います。
-vcodec 今回はH.264のコーデック、「libx264」としておきます。MPEG-2に変換したい場合は、「mpegvideo2」と指定してください。使えるコーデックの一覧は本家サイトに詳しく書かれています。
-s 出力画面サイズ 例1920×1080。入力と同じサイズでいいため、今回は指定していません。フルHDをHDにしたい場合は1280×720にして置くと良いと思います。
-aspect 例16:9。これも今回は指定しません。
-b:a オーディオビットレート。必要に応じて指定してください。
-r フレームレート。指定しないと入力と同じフレームレートになります。
-ac オーディオストリーム数。映画など2ヶ国語放送の場合は指定する必要があるかも。
-t 動画の長さ指定。秒もしくはhh:mm:ss[.xxx]で指定できます。

encode変換中、コマンドラインはこんな感じです。fpsがあまりにも低い場合、(20以下とか)、電気を多量に消費する上にものすごく時間がかかるので設定、もしくはパソコンを変えたほうがいいでしょう。

引数を指定したあとは出力ファイルの場所と形式を指定します。
私の場合はデータドライブ内のencodedというフォルダーに保存しています。(D:encoded)
出力ファイル名は「%%~na.mp4」にしておくと「入力ファイル名.mp4」になります。
ビデオコーデックを変更した場合は拡張子を変更することを忘れないでください。
コーデックを「mpegvideo2」にした場合は「%%~na.mpeg」にしておいてください。

次に、完成したコードをノートパッドなどのテキスト編集ソフトに貼り付けて、.batとして保存します。コードに全角の記号が混在したり、必要ないところに改行したりするとコードが実行されない可能性があります。ノートパッドで保存する際は.txtファイルとして保存されないよう、「名前をつけて保存」を選択して、ファイルの種類を「全てのファイル」としておいてください。

BATファイルの名前は、用途別やコーデック別に「h264-1000kbps.bat」、「mpeg2-1000kbps.bat」、「h264-3000kbps.bat」などとしておくと便利でわかりやすいです。例えば、HDじゃない動画を変換したい場合は当然低いビットレートで済ませたほうが効率が良いです。逆に高画質ファイルはより高いビットレートで変換したほうが良いため、複数のBATを用意しておくといいでしょう。

BATファイルは変換するファイルと同じフォルダーに置いてください。録画などをされている方は録画ファイルなどがそれにあたるでしょう。

bat2

BATは実行されるとフォルダ内の全てのTSファイルを変換します。変換に必要のないファイルはフォルダーから除いておきましょう。

なお、ファイル名に半角スペース、全角スペースが含まれるとエラーになります。

変換には時間がかかりますので途中でパソコンがスリープ状態にならないよう、設定しましょう。

  • by
  • 方法
  • コメントなし

Leave a Reply

Your email address will not be published. Required fields are marked *