FFmpegでTSファイルをエンコード

スポンサーリンク
スポンサーリンク
エンコード
スポンサーリンク
スポンサーリンク

FFmpegの入手

ダウンロードページからffmpeg-git-full.zipをダウンロードします。

解凍して「bin」フォルダにあるffmpeg.exeを使います。

バッチファイル

拡張子を.batにして保存します。

@echo off
cd /d %~dp0

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

ffmpeg.exe -i "%~1" -vf bwdif=1 -c:v libx264 -preset medium -crf 23 -c:a copy -bsf:a aac_adtstoasc "%~dpn1.mp4"

shift
goto loop
:end

使い方

ffmpeg.exeをバッチファイルと同じフォルダに入れます。

TSファイルをバッチファイルにドラッグ&ドロップすると、エンコードが始まります。
複数の場合は順番にエンコードされます。

出力先はTSファイルと同じフォルダです。

エンコード後に画面を閉じたくない場合は:endの下にpause >nulを書いてください。

解説

-vf bwdif=1

インターレース解除です。
1で60fps出力、0で30fps出力です。

-c:v libx264

エンコーダーの指定です。
libx265にすると遅くなりますが、高圧縮になります。

-preset medium

画質と速度のバランスです。10種類あります。

ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
placebo

上に行くほど低画質で高速に、下に行くほど高画質で低速になります。
デフォルトはmediumです。

-crf 23

画質と圧縮率のバランスです。範囲は0~51です。
値が小さいほど高画質で低圧縮に、大きいほど低画質で高圧縮になります。

libx264のデフォルトは23です。
libx265のデフォルトは28です。

-c:a copy -bsf:a aac_adtstoasc

音声はファイルサイズが小さいので、コピーしています。

カスタマイズ

逆テレシネ

映画やアニメにおすすめです。
インターレース解除の部分を書き換えます。

-vf pullup -r 24000/1001

リサイズ

-s 1280x720

1280×720にリサイズされます。

TSファイルを削除

shiftの上に書きます。

del "%~1"

完全に削除されるので、注意してください。

コメント

  1. Tiegr より:

    いつも記事を参考にさせていただき、助かっています。
    ffmpegでの変換も便利に使っているのですが、
    ひとつ、NHK(実際には、ブラタモリ)で、番組の前に、ニュースで、
    二カ国なんですが、(録画予約で30秒事前に録画開始)、
    これをバッチファイルで変換すると、ニュースのところは、二カ国、
    ブラタモリが始まると無音になってしまいます。
    検索して、二カ国対応で、-dual_mono_mode mainとかも試したのですが、
    だめでした。
    何か、対応がわかれば、教えていただけると助かりますm(_ _)m

    • thtsf より:

      音声コピーだと上手くいかないことがあるかもしれません。
      -c:a copy -bsf:a aac_adtstoasc-b:a 192kに書き換えて普通にエンコードするようにしたらどうでしょうか?

  2. Tiegr より:

    早速のアドバイスありがとうございます。

    試したところ、成功でした!!!\(^o^)/
    ffmpegのオプション設定、奥深いですね

タイトルとURLをコピーしました