[QSVEncC] ・2.55から、avsync forcecfr時が正常に動作しないことがあったのを修正。
[QSVEnc.auo] ・簡易インストーラを更新。L-SMASHが正常にダウンロードされないのを修正。
QSVEnc ダウンロード>> ダウンロード (ミラー) >> OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。 QSVEncBenchmark.zipはベンチマーク用です。(約234MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧> ソースはこちら
スポンサーサイト
--vpp-delogoと-cropを併用すると
DecodeFrameAsync error: undefined behavior..
Error in encoding pipeline. : undefined behavior.
というエラーを吐いて止まってしまうのですが、これは併用が無理という仕様なのでしょうか?よろしくお願いします。
おっしゃるように、QSVEncCの--vpp-delogoは--cropと併用することは考えて作られていません。
う~ん、いつ頃からか分かりませんが、avqsv読み込みが極端に
遅くなってしまってまつ
デフォでavqsvなのでavsw付けないと遅いままでつ (21fps対105fps)
ひょっとしてオプが不本意に入れ替わってしまったとか
元ファイルはm2ts h264 1080p
2.11からつまんで試してみた結果全部ダメですたわ
初めて1080pのエンコするもんで、ひょっとしてそのせいかも
基本avsw付けて使うことにします
作者さんではないですが
この情報だとほとんど調べられないのでは?
せめて環境の情報(cpuやドライバのバージョンなど)や何をしようとしてどんなオプションを使ったのかくらいは書かないと…
一番下の元ファイルは…と書かれているのも
省略されすぎて
m2tsをh264に変換しようとしたのかm2tsとh264で試したのか
1080pは入力なのか出力なのか
わかりませんよ
速度の問題の場合、電力や熱の問題があったり、そのあたりの設定もいろいろあるので、上の方の書いてくださっているように、わりと設定とか環境次第な部分が多く複雑です。
どうしても速度を出したい場合はご自分の環境でいろいろやってみていただくしかないかなと思います。avswのほうが速いというのもあり得るのかもしれません。
あるtsファイルをH.264にエンコードしようとすると、以下のエラーが出ます。
qsv [error]: D3D9Device: Failed CreateDeviceEx: -2005530516.
qsv [error]: Failed to initialize HW Device. : null pointer.
qsv [error]: Failed to CreateHWDevice. : null pointer.
auo [error]: null pointer
無加工では発生せず、透過性ロゴで一部カットすると発生します。
元のtsのファイルサイズは16GB程度です。
これより大きい別のファイルで試してみたり、ファイル名を変更してみたりしましたが、特にエラーが発生しません。
何かほかに調べることなどありますでしょうか。
報告いただきありがとうございます。うまく動作せずすみません。
エラー「D3D9Device: Failed CreateDeviceEx」を確認してみましたが、通常は発生しないエラーであり、こちらで再現するのは困難でした。入力ファイルによって発生したりしなかったりすると難しいです…。申し訳ありません。
回避策としては、若干速度が低下するかもしれませんが、--disable-d3dをつけてエンコードすると、動作するかもしれません。
特定の局の特定の番組で大量に黄色エラーが表示され(エンコード自体は進む)
エンコード後に番組開始時点から音声がものすごい早回しになったりします
[AVBSFContext @ 0000025439b38880] PCE-based channel configuration without PCE as first syntax element is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
avout: failed to run aac_adtstoasc bitstream filter: Not yet implemented in FFmpeg, patches welcome.
オプション:
qsvencc --avqsv --tff --audio-copy 1 -u 4 --la 4000 -i input.ts -o output.mp4
ドライバ:4501
CPU:Core i3 4170
報告ありがとうございます。
チャンネルが切り替わる場合にffmpegのbitstreamfilter適用時にエラーとなってしまっていることが分かりました。ただ、bitstreamfilterでこのチャンネル切り替えをどう扱えばよいのかよくわからず、どうすれば直るのかもよくわからないので、申し訳ありませんが今のところ直し方が全くわからない状態です。
回避策としては、--audio-codec aacなどで変換してしまうのが有効なので、お試しいただければと思います。
とても便利なアプリをフリーで供給いただき感謝です。
一点、どうしても分からない問題があり教えて頂ければと。
PowerShellスクリプトで漢字ファイル名の途中に倍角スペース(半角でも?)が入った場合にエラーが帰ってしまいます。
Error: Unknown option: "????????.ts"
しかし同じオプションで PowerShellコンソールから直接実行すると問題ありません。 例えばPowerShell で直に
.\QSVEncC64.exe --audio-copy -i "録画 ファイル1.ts" --bluray --vbr 3000 --maxbitrate 30000 --quality higher -o "録画 ファイル1.m2ts"
と叩くと正常に実行されますが PowerShellスクリプトで
powershell -Command .\QSVEncC64.exe --audio-copy -i "録画 ファイル1.ts" --bluray --vbr 3000 --maxbitrate 30000 --quality higher -o "録画 ファイル1.m2ts"
とやった場合に上記エラーになります。ダブルクオーテーションでオプション全体を囲ったり、エスケープしたりしてみましたが同じ状況です。
( Win10 Pro x64、 i7-2600k)
皆さん、どのように対処しておられるのでしょうか? 教えて頂ければ助かります。
★ ちょっと拙速でした。QSVEncというより PowerShellの問題でしたが、自己解決したかもしれません。
参考までに対応策を上げておきます。
実際のスクリプトは片っ端から .tsファイルを h.264変換するために foreach{ } のループを使ってフィアル名を文字列変数に格納したため、シングルクォーテーションを使うと変数が展開されないと思いこんでシングルクォーテーションを試していませんでした。
文字列変数の中にシングルクォーテーションを含めてしまえば問題なくシングルクォーテーションが使えて、エラーが出なくなりました。
####################################
$TARGET_DIR="E:\TV_Record"
$OUTPUT_DIR="E:\TV_Record\Encoded\"
$QSVENC= "D:\Aplications\QSVEncC64.exe"
$QSV_OPT_A = " --audio-copy"
$QSV_OPT_V = "--bluray --vbr 2800 --maxbitrate 30000 --quality higher"
cd $TARGET_DIR
$arr = get-childitem $TARGET_DIR
foreach ($fn in $arr) {
$Basefn = $fn.Basename
$fn = "'" + $Basefn + ".ts" + "'"
$ofn = "'" + $OUTPUT_DIR + $Basefn + ".m2ts" + "'"
$qsv_opt="$QSV_OPT_A -i $fn $QSV_OPT_V -o $ofn"
powershell -Command "$QSVENC $qsv_opt"
}
####################################
上記スクリプトで 5~6個のファイルを処理してみましたが、今までのところエラーは出ておりません。
もっとスマートな方法があれば教えて頂ければと思い敢えて晒してみました。
いつもqsvencを利用させて頂き大変助かっております。
qsvenccで1時間程度のMP4をCMカットで
Trim(31,19114) ++ Trim(21812,34489) ++ Trim(37196,53789) ++ Trim(57387,74559) ++ Trim(78158,95152)
から
以下のチャプターを作成して
CHAPTER01=00:00:00.000
CHAPTER01NAME=A
CHAPTER02=00:10:36.770
CHAPTER02NAME=B
CHAPTER03=00:17:39.792
CHAPTER03NAME=C
CHAPTER04=00:26:53.478
CHAPTER04NAME=D
CHAPTER05=00:36:26.484
CHAPTER05NAME=E
QSVEncC64 --avqsv --audio-copy --trim 31:19114,21812:34489,37196:53789,57387:74559,78158:95152 --chapter "chapter.txt" -i "test.mp4" -o "test_qsv.mp4"
とエンコードすると
chapterB以外は
Cは16分9秒
Dは23分52秒
Eは31分25秒
と時間がずれているのですが、追加するオプション等あるのでしょうか?
--chapterオプションを使用しないで
尚、mp4box,remuxerを使用してチャプター追加を行うと正常にチャプターは反映されます。
申し訳ありません、指定されているオプション自体には問題はありません。特に追加のオプションは必要ないです。
--trim + --chapterでのQSVEncCになんらかの問題があるのだと思います。すこし時間あるときに調べてみます。
trimオプション指定時の動作の件了解しました。
別件ですが
qsvenc2.58でqsvでデコードを試しているのですがエラーになってしまいます。
QSVEncC64.exe --avqsv -i "test.mp4" -o - -c raw | x264.exe --demuxer y4m -o "test_.h264" -
を実行すると
Failed to initialize encode session. : undeveloped feature.
QSVEncC.exe finished with error!
と出てエラーになります。
QSVEncC64.exe --avqsv -i "test.mp4" --audio-copy -o "test_.mp4"
は正常に動作します。
環境は
Windows10 x64 core i5 3570k geforce GTX660(プライマリ)
gefoce ドライバ 375.95
intel hdドライバは
10.18.10.4358
10.18.10.4425
の両方でテストしましたが結果は同じでした。
log-level traceで取得したログは以下になります。
qsvデコードは可能のように見えるのですが、途中でエラーになります
宜しくお願い致します。
--------------------------------------------------
Automatically selecting system memory for output raw frames.
Performace Monitor: none
Performace Plot : none
Input: avqsv reader selected.
avqsv/avsw: Closing...
avqsv/avsw: Cleared Stream Packet Buffer.
avqsv/avsw: Closed video.
avqsv/avsw: Closed.
avqsv: opened file "test.mp4".
avqsv: got stream information.
avqsv: found video stream, stream idx 1
avqsv: can be decoded by qsv.
avqsv: initialized h264_mp4toannexb filter.
avqsv: start predecode.
avqsv: fps decoder invalid: false
avqsv: read 48 packets.
avqsv: checking 31 frame samples.
avqsv: stream timebase 1001/30000
avqsv: decoder fps 30000/1001
avqsv: duration histgram of 1 frames
avqsv: 2002 [ 31 frames]
avqsv: using popular duration...
avqsv: fps mul: 1001
avqsv: raw avgDuration: 2002.000000
avqsv: estimatedAvgFps: 30000/1001
avqsv: use decoder fps...
avqsv: final AvgFps (raw64): 30000/1001
avqsv: final AvgFps (gcd): 30000/1001
avqsv: final AvgFps (round): 30000/1001
avqsv: avqsv video: H.264/AVC, 1280x720, 30000/1001 fps, sar 1:1, bitdepth 8, shift 0
Input: reader initialization successful.
CheckParam: 1280x720p, 1:1, 30000/1001, 0 frames
InitSession: Start initilaizing... memType: system
InitSession: failed to init session for multi GPU mode, retry by single GPU mode.
InitSession: initialized using system memory.
InitSession: mfx lib version: 0.0
Failed to initialize encode session. : undeveloped feature.
Closing pipeline...
Closing enc status...
Closing m_EncThread...
Closing Plugins...
Closing m_pmfxDEC/ENC/VPP...
Closing TaskPool...
Closing mfxSession...
DeleteFrames...
DeleteAllocator...
Closing audio readers (if used)...
Closing writer...
Closing reader...
avqsv: Closing...
avqsv: Cleared Stream Packet Buffer.
avqsv: Closed avformat context.
avqsv: Closed video.
avqsv: Closed.
avqsv: Closing...
avqsv: Cleared Stream Packet Buffer.
avqsv: Closed video.
avqsv: Closed.
avqsv: Closing...
avqsv: Close...
Closing perf monitor...
Closed pipeline.
QSVEncC.exe finished with error!
詳細な報告ありがとうございます。
下のあたりのログは相当怪しいことが起こっている状態で、なんとかデコード動かそうとモードを切り替えてリトライしたが失敗した、という動作になっています。
>>> InitSession: failed to init session for multi GPU mode, retry by single GPU mode.
>>> InitSession: initialized using system memory.
>>> InitSession: initialized using system memory.
>>> InitSession: mfx lib version: 0.0
>>> Failed to initialize encode session. : undeveloped feature.
教えていただいたオプションで、こちらで確認しましたが、特に問題なく動作しています。ただ、環境がdGPUなしのi7 6700Kと、好条件が揃っているためだと思います。
他の方からも、IvyBridge + dGPU + "-c raw"の条件で失敗するという報告を頂いたりするのですが、残念ながら手元にIvyBridgeがないため、何が起こっているのか、回避可能なのかわからない状態にあります。
せっかく報告いただいたのに申し訳ありませんが、x264へは通常のavs読みなどでCPUデコードをしていただければと思います。
--trim + --chapterについて少し調べましたが、問題なく動作しており、こちらで想定している動作であることを確認しました。
例えば、チャプター"C"が1分31秒ずれるのは、チャプター"C"までに、最初の30フレームと途中の2698フレームがカットされているためで、カットされた分、チャプターの時間も自動的に補正されています。つまり、--chapterは、出力ファイルに対する時間ではなく、入力ファイルに対する時間を想定してます。
何らかのオプションで、出力ファイルに対するチャプター指定に切り替えられるようにしたほうが良いでしょうか?
qsvデコードの件了解しました。
そちらで検証しようがないのではどうしようもないですね
trimオプション指定時の動作ですが、
追加のコマンドでtrim後の位置にチャプター追加
できるような動作を希望します。
以上よろしくお願いいたします。
QSVEncを更新しました。
http://rigaya34589.blog135.fc2.com/blog-entry-860.html
QSVEnc 2.59で--chapter-no-trimをつけて実行すると、ご要望の動作になるかと思います。