[QSVEncC]
・9/12/14/16bit深度のyuv422をy4m読み込みを修正。
QSVEnc ダウンロード>>ダウンロード (ミラー) >>OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。QSVEncBenchmark.zipはベンチマーク用です。(約234MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>ソースはこちら
更新ありがとうございます。
高深度yuv422のy4mでうまくいくことを確認しました。
AVIUTLのほうの問題かもしれませんが、Handbrakeだと「音声データはパススルー」が出来て便利ですがQSVEncではできないですね。
でもHandbrakeだとtff=1しても30pにしかならない・・・・
入力:MPEG2TS 29.97fps
出力:mp4
--avqsv --tff --audio-copy 1 -u 4 -la 4000
--avqsv --tff --vpp-deinterlace normal --audio-copy 1 -u 4 -la 1500
いずれの設定でもmp4のプロパティでfpsが59.94になります
--fps 30000/1001を付けても59.94になります
MediaPlayerClassicからプロパティを見ると以下のようになります
Frame rate : 59.940 fps
Original frame rate : 29.970 fps
Windowsでの再生に問題は無いのですが
AndroidでKodiでの再生で問題があります
>> --avqsv --tff --audio-copy 1 -u 4 -la 4000
この設定の場合、ご指摘のように59.94fpsになりますが、これはQSVのインタレ保持がPAFFと呼ばれる形式のためで、残念ながら仕様となっております。
>> --avqsv --tff --vpp-deinterlace normal --audio-copy 1 -u 4 -la 1500
この設定の場合は、インタレ解除が行われ、こちらで試したところ29.97fpsとなりました。インタレ解除が正常に行われれば59.94fpsにならないはずなのですが…。
--vpp-deinterlace normal
はこちらの勘違いでした
60iも再生側で対応できました
ありがとうございます、お騒がせしました。
--vpp-deinterlace normal、問題なかったようでよかったです。
先程Windows 10 Fall Creators Updateを行ってから次のようなエラーが出てQSVによる.mp4の動画の出力が出来無くなりました。
qsv [error]: Failed to initialize vpp. : device operation failure.
auo [error]: device operation failure.
何が原因でしょうか?
どうすれば使えるようになりますか?
Windows 10 Fall Creators Updateは試していないのでわかりませんが、IntelのグラフィックドライバでFall Creators Update対応版などがあれば、更新されてみてはいかがでしょうか。
qsvにvpp afsの実装予定はありませんか?
vpp afsはQSVへの搭載は難しく、いまのところ考えておりません。申し訳ありません。
いつも使わせていただいてます。
Windows 10 Fall Creators Update後からだと思うのですが、VBRでエンコードすると、正確にビットレートが反映されなくなりました。
最大17000 平均4000 と設定してもビットレートが上がらず、平均1000程度のファイルになってしまいます。
複数のファイルで試しましたが全て同じ状態でした。
VBRなので多少の上下はあると思いますが、これは差がありすぎだと思い書き込ませていただきました。
原因分かりますでしょうか。
確認のため、PC1台をWindows 10 Fall Creators Updateにしてみたところ、おっしゃるような挙動になりました。
同じQSVEncのバージョンで発生してしまうため、QSVEnc側の問題とは考えにくく、原因はよくわかりません。
いろいろ試していると、回避策としては最大ビットレートを指定しない( "0"を指定する)ようにすると回避できることが分かりましたので、お試しください。
わざわざ試していただきありがとうございました。
やはりアップデートが関係あったようですね。
とりあえずVBR以外は普通に使えているので、そちらで対応しておこうと思います。
自分の環境だと最大を設定しないとエラーになるようですので。(BDテンプレをいじってAVCHD用にした物)
お手間とらせました。
いつも便利に使わせて頂いております。ありがとうございます。
QSVEncC64にてTSをMP4に変換しているのですが、最新のバージョンにしたところ、ログに以下のようなエラーが出て、尺の短い動画が生成されることが何度かありました。
メモリ割り当てに関するエラーが発生しているようですが、原因等何かヒントはないものでしょうか。
コマンドライン引数は次のようになっています。
-i [tsfile] -o [mp4file] --la-icq 35 --fallback-rc --vpp-deinterlace normal --tff --avsync forcecfr --audio-codec aac
以下ログになります。
[78.6%] 262445 frames: 126.89 fps, 4078 kb/s, remain 0:09:23
[78.6%] 262533 frames: 126.88 fps, 4079 kb/s, remain 0:09:23
[78.7%] 262622 frames: 126.87 fps, 4082 kb/s, remain 0:09:22
[78.7%] 262710 frames: 126.87 fps, 4084 kb/s, remain 0:09:21
Failed to get free surface for vpp.
Error in encoding pipeline. : failed to allocate memory.
[78.7%] 262710 frames: 126.82 fps, 4084 kb/s, remain 0:09:21
error at encode thread.
encoded 262797 frames, 126.86 fps, 4086.41 kbps, 4271.54 MB
encode time 0:34:31, CPULoad: 19.0
frame type IDR 876
frame type I 1752, total size 148.38 MB
frame type P 65699, total size 2045.74 MB
frame type B 196222, total size 2151.61 MB
QSVEncC.exe finished with error!
[mpeg2video @ 00000256718b5700] Invalid frame dimensions 0x0.
[mpeg2video @ 00000256718b5700] Invalid frame dimensions 0x0.
[mpeg2video @ 00000256718b5700] Invalid frame dimensions 0x0.
何かわかるようでしたら教えていただけると幸いです。
長いファイルで--avsync forcecfrを使うと発生することがあるので、--avsync forcecfrの処理がうまくいっていない可能性が高いということまではつかめているのですが、再現とテストが難しく、対処できていません。申し訳ありません…。
QSVEncCいつも使わせていただいております。
このような素晴らしいプログラムを提供していただき大変感謝しています。
先日CPUの脆弱性の問題が起きてWindowsのパッチが供給されました。
システム側とユーザ側のPage Tableを分けたということらしいのですが、これで --disable-d3dオプションが影響を受けてしまうようです。
以下の条件でエンコードすると、エンコードする度に違うサイズのファイルが出来ます。
映像の時間は同じなんですが、どうも私の持っているREC-BOXから再生すると、音ズレや駒落ちがわずかながら見受けられます。
Microsoftのパッチを当てる前では--disable-d3dが唯一の逃げ道でした。
AVS入力を使用
AVSはシステムメモリより大きなファイル(MPEG2+AAC)をTrim関数で10カ所程度カッティング。
H264 9000bpsのVBRでエンコード
QSVEncC.exe --avs -c h264 --vbr 9000 --max-bitrate 24000 --profile High --level 4 --dar 16:9 --tff ^
--gop-len 24 --videoformat ntsc --colormatrix bt709 --colorprim bt709 --transfer bt709 ^
--disable-d3d --log-level error -i %AVSFILE% -o Encoded.ts
どうも、リソースメータみていると、エンコード中に空きメモリがなくなったときに起きるようです。
Trimいれないと(AVSで連続入力)問題はおきないんで、TrimでQSVが入力待ちになったときに、QSVバッファメモリの再編が発生しているせい?と勝手に想像しています。
Intelのライブラリ側の問題っぽいですが、なにか回避手段等思いつくようならお知恵をいただけないでしょうか。
情報ありがとうございます。こちらでも確認を試みました。
環境
Win10 x64 16299.192 にアップデート済み
i7 7700K
RAM=16GB
GTX1080
Intel 23.20.16.4901ドライバ
Avisynth+ 2580
L-SMASH Works r921
QSVEnc 2.74
パッチの確認
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID performance optimization is enabled: True [not required for security]
入力ファイル
ts (MPEG2 + AAC), trim後 23分39秒
avsファイル
v = LWLibavVideoSource("tsファイル")
a = LWLibavAudioSource("tsファイル", av_sync=true, layout="stereo")
audiodub(v,a)
trim(564,5446)++trim(7547,23068)++trim(24870,43897)++trim(45699,48813)
処理内容
"%AVS2PIPEMOD_PATH%" -wav "%INPUT_AVS%" | "%QAAC_PATH%" -o "%OUTPUT_DIR%\test.m4a" -
"%QSVENC_PATH%" --avs -c h264 --vbr 9000 --profile high --level 4 --dar 16:9 --tff --gop-len 24 --videoformat ntsc --colormatrix bt709 --colorprim bt709 --transfer bt709 --audio-source "%OUTPUT_DIR%\test.m4a" --audio-copy --disable-d3d -i "%INPUT_AVS%" -o "%OUTPUT_DIR%\test.ts"
こちらでは、特に問題なく終了し、また3回ほど繰り返してもファイルサイズは変わらず、また顕著な音ズレはありませんでした。また、--disable-d3dがなくても同じファイルサイズとなりました(汗
メモリにだいぶ空きがあるからかもしれませんが…。
* 使用されているドライバのバージョン、Avisynthのバージョンやavs入力プラグイン等も影響がある可能性があります。このあたり、教えていただくことは可能でしょうか。
* ご指摘の「リソースメータ」はWindowsの「リソースモニター」でよろしいでしょうか。リソースモニターの場合、たしかに空きメモリが少なくなっていることが多いですが、プログラムは「スタンバイ」となっているメモリも利用可能ですので、空きメモリがほぼなくても「スタンバイ」のメモリを使うことで通常は動作可能です。
「スタンバイ」のメモリもほぼない、という状況でよろしいでしょうか?