tsファイルをffmpegでx264 mp4でエンコードする設定を検案した際のメモ。
エンコードの適切な設定値を求めようとするとどうしても大量のドキュメントを読まなくてはいけないし、実際にいくつかの設定でファイルを生成して出来栄えを比較することも必要になってくる。つまり楽はできないってことだ。
Handbrakeからffmpegに乗り換えたわけはffmpegの方が汎用性がありそうだったから。
CRF>CQP>VBR
CBRやVBRやABRは基本的な知識だ(CBR(固定)とVBR(可変)とABR(平均)の違い【ビットレート】)が、ほかにCQP、CRFという方式があって訳わからなかったので調べた。
どうやらCQPもCRFもVBRの一種らしい。生成されるファイルのサイズを考慮するとCRFが最も優れている?
PSP向けにエンコードを始めた頃から、同じ容量で圧倒的に高画質になる2パスエンコードを盲目的に信仰し、高画質を狙うときは常に使っていましたが、実際は品質基準VBR(可変ビットレート)の方が画質が上回る場合があることにびっくり。
地デジのエンコード設定を試行錯誤。 - WebLog
- FFmpeg, H.264 エンコーディングガイド
- 手早く済ませたいときにはCRFを、出力サイズが決まっている場合は2-Pass ABR を勧めている(画質はCRFの方がいい)。
- プリセット(-preset)は slow slower velyslow を使うことが推奨されている(デフォルト medium)
CRFの適切な値は?
20くらいらしい。私はffmpegのデフォルト値23を使うことにしたが。
profileはMainに
内蔵AACは音質が良くないのか?
ffmpegで使える音声codec:AACについて - 脳内メモ++
libfdk_aac や libfaac はライセンスの関係で組み込まれていない。欲しけりゃコンパイルしろ
字幕
ffmpeg -i INPUT -f srt -i SUB.srt -map 0:0 -map 0:1 -map 1:0 -metadata:s:a:0 language=jpn -c:a copy -c:v copy -c:s mov_text OUTPUT
Ubuntu Linuxでtsファイルをffmpegでmp4に変換する際にmov_text字幕ファイルをsrt形式で埋め込む方法(シェルスクリプトで自動化対応) | web net FORCE
FFmpeg使って複数の音声と字幕から一つの動画を作成する - Qiita
mp4 - Use ffmpeg to add text subtitles - Stack Overflow
FFMPEG An Intermediate Guide/subtitle options - Wikibooks, open books for an open world
PS: VLCはバージョン3以上でないと字幕のサイズが設定にかかわらず最小になってしまうバグがある。
-movflags faststart
解説ページ
- ffmpegの使い方:tech.ckme.co.jp
- なるべく理解したいffmpeg - ザリガニが見ていた...。
- フィルタについて解りやすい解説
- FFmpeg Documentation
- 公式ドキュメント翻訳
- 高度なオプションを調べるとき
- ffmpegでscale変換 | 雑記
- リサイズフィルタscaleに-1を指定して自動調整すると半端に奇数になってしまうのを抑制「scale=322:trunc(ih/(iw/322)/2)*2」
- フリーの動画・音声の変換・編集ソフト「FFmpeg」のコマンド集: 社会人になってからのスキルアップ
- 音量二倍「ffmpeg -i sample.m4a -vol 512 sample_vol.m4a」
- 4.FFmpeg自動エンコード+Googleフォトに無限保存編 - TS抜き環境構築 - 俺の外付けHDD
- ffmpeg で TS をできるだけ高画質な mp4 へ変換してみた - I'm Just Another TeXnician.
- 参照の多い記事
- プリセットやら古い設定などで私を惑わしてきた記事
- 2020年最近の傾向