FFmpeg 6.1から使える予定のデコーダ。今まであったlibaribb24からDRCSに対応してきれいにレンダリングできるlibaribcaption。現時点ではgyan.dev、BtbNのFFmpegが対応している。

基本コマンド

字幕をつけて再生する。
ffplay -sub_type bitmap input.ts

ffplay のショートカットキー
ffplay の基本起動オプション

解像度1440×1080で表示が1920×1080になる映像には-canvas_size 1920×1080をつける。
ffplay -sub_type bitmap -canvas_size 1920x1080 input.ts

字幕を映像に焼き付ける。
ffmpeg -sub_type bitmap -canvas_size 1920x1080 input.ts -filter_complex "[0:v][0:s]overlay" -c:v libx264 -crf 20 -c:a copy output.mp4

ffmpeg でインターレース解除

字幕データはbgraなので透過のまま映像に変換して字幕とは別ストリームのmkvに入れる。
ffmpeg -sub_type bitmap -canvas_size 1920x1080 -i input.ts -filter_complex "[0:s]fifo[a]" -map 0:v -map [a] -map 0:a -map 0:s -c:v:0 libx264 -crf:0 20 -c:v:1 libvpx-vp9 -cpu-used 8 -quality realtime -crf:1 32 -b:v:1 0 -r:v:1 30000/1001 -c:a:0 copy -c:s copy output.mkv

VP9(libvpx-vp9)のエンコード設定について

ffplayは1入力で映像と字幕のPTSを同時に変更できないので倍速再生できない。
映像と音声の pts を扱う setpts, asetpts

オプション

  • -sub_type[int]
    字幕のレンダリングタイプ
    • 0, none:何も行わない
    • 1, bitmap:ビットマップのレンダリング
    • 2, text:プレーンテキスト
    • 3, ass:フォーマットされたテキスト。既定値
  • -caption_encoding[int]
    字幕テキストのエンコーディング方式
    • 0, auto:エンコーディング方式を自動検出。既定値
    • 1, jis:8ビット文字のJISエンコーディング(日本のISDB字幕)
    • 2, utf8:UTF-8エンコーディング(フィリピンのISDB-T字幕)
    • 3, latin:ラテン文字(南米で使用されるSBTVD / ISDB-Tb字幕)
  • -ass_single_rect[boolean]
    複数の矩形を処理できないプレーヤーのためのASS字幕の回避策
    既定値:0
  • -font[string]
    カンマ区切りのフォントファミリーの指定。-sub_typeass, bitmapで使える
  • -replace_fullwidth_ascii[boolean]
    MSZ全角英数字を半角英数字に置換するかどうか。-sub_typeass, bitmapで使える
    既定値:1
  • -force_outline_text[boolean]
    常に文字をアウトラインでレンダリングするかどうか。-sub_typeass, bitmapで使える
    既定値:0
  • -ignore_background[boolean]
    キャプションの背景を無視するかどうか。-sub_typeass, bitmapで使える
    既定値:0
  • -ignore_ruby[boolean]
    ルビのような文字を無視するかどうか。-sub_typeass, bitmapで使える
    既定値:0
  • -outline_width[float]
    テキストのアウトラインの幅。-sub_typeass, bitmapで使える
    既定値:1.5
    範囲:0から3まで
  • -replace_drcs[boolean]
    既知のDRCSを置換するかどうか。-sub_type bitmapで使える
    既定値:1
  • -canvas_size[image_size]
    入力ビデオの横x縦のサイズを設定する。-sub_type bitmapで使える

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)