QSVEnc 2.46
要望を反映した機能の追加など。--avsync forcecfrを入力がH.264の時にも使用できるようにしたのと、字幕を焼き込めるようにした。
※今回はdllの更新も必須です。
・H.264入力でも--avsync forcecfrが使用可能に。
いままでMPEG2しかできなかったのだけど、H.264入力でもできるようにした…はず。動きががたつくとは思うけど、vfrの場合でもを強制的にcfrに変換できる。(--fpsも合わせて指定してください)
結構いろいろなファイルでテストしたけど、わりとごちゃごちゃ変える羽目になったので、まだ不具合が残っているかもしれない。
・--check-featuresでテキストで出力すべき時にもHTMLで出力されていた部分があったのを修正。
ご指摘ありがとうございます。
・libassを使用して字幕を焼きこむ機能を追加。(--vpp-sub <int> or <string>)
整数での指定は、入力動画ファイルの指定された字幕トラックを抽出して焼きこむモードで、文字列指定での指定は、入力動画ファイルとは別の字幕ファイルを読み込んで焼きこむモード。
一応焼き込みに必要なblendのところはSIMDで高速化してあって、いつもどおりAVX2 / AVX / SSE4.1 / SSE4.1 pshufb slowの4モードから最適なものが自動的に選択される。(pshufb slowはatom系CPU用のモード)
仕組みとしては、vpp-delogoと同じような感じで、QSVのカスタムフィルタを追加する感じで、まあ、作るのはそれなりに大変だった。
libavformatで取り出した字幕データを、一度assの形にして、libassに渡してあげると、テキストを画像(色と透明度)に変換してくれるので、あとはそれを画像フレームに焼き込む(blend)。透明度は、ほんとは8bitなのだけど、SIMD化の都合上7bitでやったほうが速いのと面倒くさくないのがあって、7bitで処理している。まじめに8bitでやる気はない。
以下3点に注意。
・テキスト形式の字幕のみの対応。
・--sub-copyとは併用できない。
・systemメモリモードが必須のため、d3d11モードを要求する機能(--vpp-rotate等)とは併用できない。
まあblend自体は速いと思うんだけど、systemメモリモードが必須だとか、メモリコピーが増えるだとか、たぶんそういう理由でどうもあんまり速くない。というかなにもしないときに比べ、結構遅くなる気がする。このあたりはまだ最適化の余地があるのかもしれない。
試しにplain textとかsrtとかassとかを焼き込んでみたけど、ちゃんと焼き込めていた。assはこちらで公開してくださっているものでテストしてみた。この字幕はもともとはyoutubeとかに上がっていた動画用らしいのだけど、さすがにいまはyoutubeから削除されているものが多い。でもまあ、この辺ならディスク漁ればむかしエンコしたものがいくらでも…。…なんでもないです。げふんげふん。
・libassのshapingを設定するオプションを追加。(--vpp-sub-shaping <string>)
simple(デフォルト)かcomplex。complexに変えてあげると、少し字がきれいになるかも。
・字幕の文字コードを指定するオプションを追加。(--vpp-sub-charset <string>)
指定しない場合は自動。日本語についてはある程度自動でもよいかも。
指定する場合にはこのへんを参照。
QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。
QSVEncBenchmark.zipはベンチマーク用です。(約234MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCでMFX/GPU使用率を表示するには、MetricsFrameworkRedist64.zipをダウンロードして解凍、MetricsFrameworkRedist64.msiをインストールしてください。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>
※今回はdllの更新も必須です。
・H.264入力でも--avsync forcecfrが使用可能に。
いままでMPEG2しかできなかったのだけど、H.264入力でもできるようにした…はず。動きががたつくとは思うけど、vfrの場合でもを強制的にcfrに変換できる。(--fpsも合わせて指定してください)
結構いろいろなファイルでテストしたけど、わりとごちゃごちゃ変える羽目になったので、まだ不具合が残っているかもしれない。
・--check-featuresでテキストで出力すべき時にもHTMLで出力されていた部分があったのを修正。
ご指摘ありがとうございます。
・libassを使用して字幕を焼きこむ機能を追加。(--vpp-sub <int> or <string>)
整数での指定は、入力動画ファイルの指定された字幕トラックを抽出して焼きこむモードで、文字列指定での指定は、入力動画ファイルとは別の字幕ファイルを読み込んで焼きこむモード。
一応焼き込みに必要なblendのところはSIMDで高速化してあって、いつもどおりAVX2 / AVX / SSE4.1 / SSE4.1 pshufb slowの4モードから最適なものが自動的に選択される。(pshufb slowはatom系CPU用のモード)
仕組みとしては、vpp-delogoと同じような感じで、QSVのカスタムフィルタを追加する感じで、まあ、作るのはそれなりに大変だった。
libavformatで取り出した字幕データを、一度assの形にして、libassに渡してあげると、テキストを画像(色と透明度)に変換してくれるので、あとはそれを画像フレームに焼き込む(blend)。透明度は、ほんとは8bitなのだけど、SIMD化の都合上7bitでやったほうが速いのと面倒くさくないのがあって、7bitで処理している。まじめに8bitでやる気はない。
以下3点に注意。
・テキスト形式の字幕のみの対応。
・--sub-copyとは併用できない。
・systemメモリモードが必須のため、d3d11モードを要求する機能(--vpp-rotate等)とは併用できない。
まあblend自体は速いと思うんだけど、systemメモリモードが必須だとか、メモリコピーが増えるだとか、たぶんそういう理由でどうもあんまり速くない。というかなにもしないときに比べ、結構遅くなる気がする。このあたりはまだ最適化の余地があるのかもしれない。
試しにplain textとかsrtとかassとかを焼き込んでみたけど、ちゃんと焼き込めていた。assはこちらで公開してくださっているものでテストしてみた。この字幕はもともとはyoutubeとかに上がっていた動画用らしいのだけど、さすがにいまはyoutubeから削除されているものが多い。でもまあ、この辺ならディスク漁ればむかしエンコしたものがいくらでも…。…なんでもないです。げふんげふん。
・libassのshapingを設定するオプションを追加。(--vpp-sub-shaping <string>)
simple(デフォルト)かcomplex。complexに変えてあげると、少し字がきれいになるかも。
・字幕の文字コードを指定するオプションを追加。(--vpp-sub-charset <string>)
指定しない場合は自動。日本語についてはある程度自動でもよいかも。
指定する場合にはこのへんを参照。
QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。
QSVEncBenchmark.zipはベンチマーク用です。(約234MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCでMFX/GPU使用率を表示するには、MetricsFrameworkRedist64.zipをダウンロードして解凍、MetricsFrameworkRedist64.msiをインストールしてください。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>
スポンサーサイト