birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

この話、単純に -vf “fieldmatch=combmatch=full,yadif=1:-1:1” みたいに組み合わせるだけだと、テレシネソースにおいては1)fieldmatchが30p(1234456788)に変換、2)yadifがそれを2倍にして60pに変換するので、(続) (19:16 bskyから・詳細)

60pにした時のフレーム構成が2-3ではなく2-2-2-4になってしまう。うぅむ。 それにしても巷の情報は60i→24pに戻す、という例ばかりで、元24pのテレシネソースや30p、60iのソースが混在する60iなvideoを情報量最大で変換するなら60pにするのが正解だと思うんだが… (19:21 bskyから・詳細)

それはともかく、上記「24pや30p、60iなソースが混在する60iなvideoをできるだけ綺麗に60pに変換する」という問題をffmpeg filterで解く場合、とりあえず次の設定が正解っぽい。(続) (19:22 bskyから・詳細)

-vf “dejudder,fps=30000/1001,fieldmatch=combmatch=full,decimate=mixed=1,yadif=1:-1:1,fps=60000/1001” ↑こんな感じ。最初のdejudder、fps filterは単にソースを60iに揃えているだけ、 (19:24 bskyから・詳細)

fieldmatchでソースがテレシネ or 30pの場合は綺麗に30pになり60iならinterlace flagが残る、その後のdecimate filterでは30p化出来た時に重複フレームがあれば削除して24p化(30pやinterlace flag付きのフレームはそのまま)、 (19:27 bskyから・詳細)

でその後yadifがinterlace flag付きフレームについてはdeinterlace処理をしつつフレームレートを2倍にして(ここの出力は48pの場合と60pの場合がある)、最後に再びfps filterで60pにする、という感じ。 (19:29 bskyから・詳細)

いちおう手元で軽く検証した限り、テレシネソースはちゃんと2-3プルダウンされた60pになり、60iな動画は単純にフィールド補間されて60pに出来た。今のところ音ズレなども気にならない感じ。これでいけるかな? (19:31 bskyから・詳細)