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ファイルを登録しておくと便利だよ!