【FFmpeg】ts2を無劣化でmp4に変換する【Batch】

ネコニウム研究所

PCを利用したモノづくりに関連する情報を掲載するブログ

【FFmpeg】ts2を無劣化でmp4に変換する【Batch】

2022-1-14 | ,

FFmpegを使ってts2ファイルを無劣化でmp4ファイルに変換したい!

概要

FFmpegとBacthを使って複数のts2ファイルを無劣化でmp4ファイルに逐一変換する例を示す。

仕様書

batファイルに変換したいts2ファイル、または、ts2ファイルが保管されてるディレクトリをドラッグ・アンド・ドロップするとmp4ファイルに逐一変換される。

環境

  • Windows 10 Home Version 21H1(OS ビルド 19043.1415)
  • FFmpeg 4.2

手順書

下記は、引数で渡されたファイルをmp4に変換するサンプルです。

@echo off

:loop

if "%~1" == "" goto end

if exist %~1 (
    for /r %~1 %%f in (*.ts2) do (
        set INPUT=%~f1
        set OUTPUT=%~dp1%~n1
        ffmpeg -i "%INPUT%" -c:v copy -c:a copy -map 0:v -map 0:a "%OUTPUT%.mp4"
    )
)

shift
goto loop

:end

pause

上記のBatchファイルを実行する前にffmpeg.exeがあるディレクトリにパスを通しておく。もしくは、Batchファイル内のffmpegコマンドをフルパスで入力しておく。

作ったbatファイルに変換したいts2ファイル、または、ts2ファイルが保管されてるディレクトリをドラッグ・アンド・ドロップすると処理が逐一開始される。

解説

ffmpegコマンドを実行する前に入力するファイル名と出力するファイル名の下準備をする。

set INPUT=%~f1で引数で渡されたファイル名をフルパスに変換する。
set OUTPUT=%~dp1%~n1で引数で渡されたファイル名を拡張子を除いたフルパスに変換する。

ffmpegコマンドのオプションについて簡単に解説する。

-c:v copyは入力ファイルと同じビデオのコーデックを使うというオプションである。
-c:a copyは入力ファイルと同じオーディをのコーデックを使うというオプションである。
-map 0:vは入力ファイルに含むビデオのストリームをすべて含ませるというオプションである。
-map 0:aは入力ファイルに含むオーディオのストリームをすべて含ませるというオプションである。

まとめ(感想文)

頻繁に使うのであれば、「送る」に作ったbatファイルを登録しておくと便利だよ!