QSVEnc 0.19

指摘していただいた問題の修正。
報告ありがとうございました。

[共通]
・0.15以降、Baseline Profileでのエンコードが失敗する問題を修正。

[QSVEncC]
・ヘルプでsarが二重に表示されていたのを修正。



QSVEnc ダウンロード>>



スポンサーサイト

コメントの投稿

非公開コメント

残り時間の表示

QSVEncC64.exeを使わせていただいています。
処理中の画面ですが、残り時間表示は難しいでしょうか。
avs2pipemod.exeからのパイプ入力です。

Re: 残り時間の表示

パイプ入力では、パイプ入力が終了するまで、QSVEncC側でエンコードする総フレーム数がわかりません。残りどのくらいのフレーム数があるのかわからないため、残念ながら残り時間の表示は厳しいです。

QSVEncではAviutlから総フレーム数を取得出来るので、もちろん残り時間を表示していますが、QSVEncCのパイプ入力では難しいです。

マルチコア

返答ありがとうございます。
やはり渡って来てなかったのですね<総フレーム数

i7のマシンで使ってますが、エンコード中もさほど負荷が上がってないと思います。
複数のコアを使って、エンコ時間の短縮とかはできないのでしょうか。

Re: マルチコア

そうですね、たしかにわたしのCore i7 3770KでQSVEncCだとCPU使用率は20%弱ぐらいです。

しかし、残念ながらQSVEncCの処理で並列化が効くところはほとんど並列化しています。あとはパイプからの読み込みやメモリコピーといった並列化の効かない(やっても効果が出ない)ところばかりです。そのため、QSVEncCでのさらなる並列化は厳しい状況です。

thx

返答有難う御座います。
あと、ドキュメントにコマンドラインで使う時のオプションの日本語での説明があればうれしいです。(コマンドラインでのusageでなんとなくわかりますが)
開発頑張ってください。

Re: thx

了解です。
説明書き、時間があるときにでも書いておきます。

表示だけの問題?

VapourSynthから出力したy4mをQSVEncCに入力すると以下のようなエラーが表示されます
Error: incompatible color format specified from y4m.

エラー表示があるのですが、変換自体は正常に行われているようです
H.264の出力ファイルもmux後、色がおかしくなることもなく正常に再生されます

VapourSynthで入力に使用しているのはL-SMASH Worksのlsmas.LWLibavSourceです
入力ファイルはMPEG2-TSです

No title

VapourSynthはI420形式(YUV4:2:0 planar)を'C420'でy4m出力しますので、QSVEncCがI420形式で入力を受け付けるのであれば正常ですね。
エラー表示の所を見てみましたが、'C420mpeg2'で判定しているようで、それ以外だと、そのエラーを表示するみたいです。

基本的に、渡されるデータ的には'C420mpeg2', 'C420jpeg', 'C420paldv', 'C420'どれも一緒です。
('C420mpeg'なんていうキワモノもありましたが、多分同じでしょう。 http://www.isovideo.com/meler.php')

違うのはフルレンジかどうかとか、サブサンプリング( こういうのね -> http://images.yourdictionary.com/chroma-subsampling )くらいです。でもこれは入力データそのものには影響は無いです。

正常に再生されるのであれば、エラー表示だけの問題のはずです。

QSVEncCの表示の問題

>muken様
調べてくださり、ありがとうございます。おっしゃるとおり、C420mpeg2しか見ていなかったのが原因でした。

>bob様
ご報告ありがとうございました。表示上だけの問題であり、普通に再生できていれば問題ありません。

'C420mpeg2'に加え、'C420jpeg', 'C420paldv', 'C420'も見るようにしたQSVEnc_0.19v2を上げておきました。これでVapourSynthでもエラー表示が出なくなると思います。
http://cid-6bdd4375ac8933c6.office.live.com/browse.aspx/QSVEnc

No title

解説ありがとうございます。
正常に再生されるので、きっと表示だけの問題ですね。

LWLibavSourceはデコードが高速なのでQSVへの入力にとても重宝しています
余談ですが、dr=0よりdr=1の方が遅くなることはあるんでしょうか?
drはAviSynthだと速くなるのですがVapourSynthだと遅くなってしまうので。。。
(規制で2chへ書き込めないのでここで聞いてしまう)

No title

>rigayaさん
早速試してみましたところ、エラーが表示されなくなりました
素早い対応ありがとうございます!

No title

遅くなると言うことは無いと思うのですが...
direct renderingでは、メモリコピーの回数を減らしているわけで、解像度が高ければ高いほど高速化の比率が上がります。
よほどソースの解像度が小さく、direct renderingすることによって、メモリコピーそのものではなく、他の部分で足を引っ張る可能性はあるかもしれませんが。

No title

vapoursynthでdr=1で遅いってのはおそらくCropAbs/CropRelが遅いからだと思います...
以前試した時はd2vsourceでも同様の状況でしたね
CropAbs/CropRelなしだと速くなっているはずです

No title

たくさんさんの言う通りでCropAbsのせいでした、はずすとdr=1の方が速かったです
VapourSynthはAviSynthよりなんでも速いもんだと思っていましたが、関数によってはそうでもないんですね

>mukenさん
dr=1で普通は遅くなるはずないですもんね、すっきりしました

>たくあんさん
いつも、たくあんさんビルドのAvsPmodやL-SMASH-Worksを使わせてもらっています
最新版への更新が早いので感謝してます

出力に失敗します

はじめまして、いつもMP4出力プラグインを使用させて頂いております。

QSVエンコーダが、高ビットレート(30000kbps)になると、muxに失敗してしまいます。
どうすればちゃんとエンコードできるようになるのでしょうか?

環境は、Windows7Home 64bit Intel Core i7 3770 です。
ビットレートを下げる(容量を小さくする)と、成功することがあります。
拡張x264出力GUI Ex はちゃんと動くのですが・・・。

auo [error]: mux後ファイルが小さすぎます。muxに失敗したものと思われます。
auo [error]: 推定ファイルサイズ 671539 KB, 出力ファイルサイズ 182783 KB
auo [error]: L-SMASH muxer でのmuxに失敗しました。
auo [error]: muxのコマンドラインは…
auo [error]: ".exe_filesmuxer.exe" -i "○○○.264"?fps=30/1 -o "○○○_muxout.mp4"
L-SMASH muxer [error]: MP4 muxing mode
L-SMASH muxer [error]: Track 1: H.264 Advanced Video Coding
L-SMASH muxer [error]: Muxing completed!

Re: 出力に失敗します

何例かやってみましたが、こちらではうまくいってしまいます…。

3つほどお願いしたいことがあります。

1.
設定を細かく合わせてテストしたいのですが、全ログのコピペをいただけないでしょうか。ファイル名は"○○○.264"などで構いませんので、よろしくお願いします。

2.
30000kbpsなどの高ビットレートだと毎回失敗しますでしょうか、あるいは「たまに」でしょうか。

3.
muxerのバージョンはいくつでしょうか。

muxerのバージョンの確認方法ですが、QSVEncの設定画面の右下に、「muxer.exeの指定」というボックスが有り、その右横にボタンがあると思います。そのボタンを右クリックすると、「helpを表示」と出るので、それをクリックしてください。するとメモ帳が開くので、その先頭行に「L-SMASH isom/mov multiplexer rev715 8d14c29」などとあるはずです。この「rev xxx」の部分がバージョンになります。

お手数ですが、以上3点、よろしくお願いします。

Re:Re: 出力に失敗します

わざわざテストを行って頂きありがとうございます。

1.
全ログですが・・・、○○○.264でしょうか?それとも、ログ画面に表示されているものを○○○.264に保存すればいいのでしょうか?
わからなかったのでとりあえずログ画面の方をコピーしておきました。
https://docs.google.com/file/d/0B_CQJRPYRZODcnF2Z1NJVlhaYlE/edit

2.
解像度は1920x1080で、3分4秒弱ある動画では、30,000kbpsで毎回失敗しますが、5,000kbps(約1/6)まで下げると成功しました。ですが、エンコードの最後に出力したファイルが見つからないとエラーが出てしまいました。(mux(?)後ファイル名の変更ができていないみたいです)

3.
muxerのバージョンですが、
L-SMASH isom/mov multiplexer rev715 8d14c29となっていました。なのでバージョンは715です。

以上です。宜しくお願い致します。

Re: 出力に失敗します

ログのコピペなど、詳細な報告ありがとうございました。

さっそく、こちらでそっくりの設定を再現したのですが、なぜかすんなり出力できてしまいました…CBRの30000kbps、L-SMASH rev715、1920x1080p 30fpsを3分強、と合わせ込んだのですが…。

うーん、難しいです。エラーログからはファイルのオープンに失敗しているようなのですが…。お役に立てず、申し訳ないです。

ビットレートにより結果が変わるのも妙ですね…。

完全に当てずっぽうですが、
・CBRモードでなく、VBRモードを使ってみる
・設定画面のレベルで「4.1」を指定する
などで回避できるかもしれません。(ただ、望み薄です、ごめんなさい)

Re:Re: 出力に失敗します

解決しました。

・CBRモードでなく、VBRモードを使ってみる
の方だけ、30000kbpsでエンコード成功しました。

また出力できないなどがあったら報告したいと思います。

ちょっとした要望

QSVEnc他、いつも使わせていただいております。QSVEncへの要望を2点書かせていただきます。

AviUtlの後ろに隠れているログウィンドウをエンコ開始時に最前面にすることはできませんか?
何度かエンコするときにログを閉じ忘れてて、おや?っとなることがあるもので。

あと、以前のプロファイル名を覚えておくことはできないのでしょうか?
設定値自体は以前のままのようですが、設定ウィンドウを開くたびに念のため毎回プロファイルを選び直してます。

どうでもいいような要望ですが、ご検討ください。

Re: ちょっとした要望

>ログウィンドウをエンコ開始時に最前面
多分可能なはずなので次回更新時にやってみます。可能でしたら、その他の設定にそういうオプションを追加する感じにしたいと思います。

>以前のプロファイル名
これは難しいです。…同じプロファイルの名前でも、「以前のプロファイルの内容」と「現在のプロファイルの内容」が違うという事態がありえてしまい、混乱する恐れがあるので…。

アスペクト比

いつも有り難く使わせていただいています。
地デジを録画したファイル、1440×1080のtsファイルを
SARを4:3で指定するのですが、反映されていないようなのですが

[****.mp4]
1440x1080 8Bit AVC/H.264 High@4 Unknown(14) 29.93fps 1468f 6357.75kb/s

一度、調べていただけないでしょうか?

Re: アスペクト比

この情報表示は真空波動研かと思いますが、そのような表示の場合でもきちんと反映されているはずです。

確認した結果を書いておきます。

たしかに、1440x1080のSAR=4:3ですと、こちらでも
1440x1080 8Bit AVC/H.264 High@4 Unknown(14) Progressive 29.97fps 43235f 1332.03kb/s
と表示されました。

一方、MediaInfoでは、
幅 : 1 440 ピクセル
高さ : 1 080 ピクセル
解像度 : 16:9
となっており、表示アスペクト比(DAR)が16:9であることから、SAR=4:3が反映されていることがわかります。

加えて、wmp12やmpc-hc + LAV Filtersによる再生でも問題なくSAR=4:3が反映され、16:9で再生されました。

一度、MediaInfoを使用して確認していただけないでしょうか。

No title

SAR 4:3は規格で定義済みの要素として後から追加されました。
公式のx264およびその派生物は特別にパッチをあてない限り、定義済みの識別子を使って示されます。

対応していないHaali Media Splitterとか古い家電プレイヤーでMP4を再生しているのでは。

No title

早速調べて頂いてありがとうございます。

MediaInfoも真空波動研も、rigayaさんのおっしゃるとおり
表示です。

Qonohaというプレイヤーで再生すると4:3で再生されます。
SARを4:3で設定し直すと、16:9で再生されるので質問させて頂きました。
Qonohaがおかしいみたいですね。

Baseline Profaorl失敗の対応もありがとうございました。

ビルド環境について

少しコードを変更して試してみたいことがあったので、ビルドしようとしたのですが、0.19 v2のビルドが成功しませんでした。
scene_change_detection.cppでエラーが発生していたので、機能追加前の0.14をビルドしてみると、こちらは成功しました。
0.19 v2ではQSVEnc_readme.txtに記載の環境から追加のライブラリなどが必要でしょうか?
ビルド環境はVC++ 2008 Express (SP1), Windows SDK 7.1, Windows Drivers Kit 7.1.0です。

------ ビルド開始: プロジェクト: QSVPipeline, 構成: ReleaseStatic Win32 ------
コンパイルしています...
base_allocator.cpp
vpp_ex.cpp
sysmem_allocator.cpp
scene_change_detection.cpp
.\src\scene_change_detection.cpp(124) : error C2664: 'InterlockedIncrement' : 1 番目の引数を 'DWORD *' から 'volatile LONG *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
sample_utils.cpp
.\src\sample_utils.cpp(123) : error C2664: 'InterlockedIncrement' : 1 番目の引数を 'DWORD *' から 'volatile LONG *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
.\src\sample_utils.cpp(146) : error C2664: 'InterlockedIncrement' : 1 番目の引数を 'DWORD *' から 'volatile LONG *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
qsv_util.cpp
qsv_prm.cpp
pipeline_encode.cpp
d3d_device.cpp
d3d_allocator.cpp
d3d11_device.cpp
d3d11_allocator.cpp
ビルドログは "file://c:\QSVEnc_0.19v2\QSVEnc\_build\QSVPipeline\Win32\ReleaseStatic\obj\QSVPipeline\BuildLog.htm" に保存されました。
QSVPipeline - エラー 3、警告 0
------ ビルド開始: プロジェクト: QSVEncC, 構成: ReleaseStatic Win32 ------
コンパイルしています...
QSVEncC.cpp
リソースをコンパイルしています...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
リンクしています...
LINK : fatal error LNK1181: 入力ファイル '..\_build\qsvpipeline\win32\releasestatic\qsvpipeline.lib' を開けません。
ビルドログは "file://c:\QSVEnc_0.19v2\QSVEnc\_build\QSVEncC\Win32\ReleaseStatic\obj\QSVEncC\BuildLog.htm" に保存されました。
QSVEncC - エラー 1、警告 0
------ ビルドのスキップ: プロジェクト: QSVEnc, 構成: ReleaseStatic Win32 ------
プロジェクトはこのソリューション構成に対してビルドするように選択されていません。
========== ビルド: 0 正常終了、2 失敗、0 更新不要、1 スキップ ==========

Re: ビルド環境について

いえ、追加のライブラリなどは必要ないはずです。

原因がわからないため、対症療法になりますが、3箇所、
InterlockedIncrement((DWORD*)&<変数>);

InterlockedIncrement((LONG*)&<変数>);
としてコンパイルしなおしてみてください。

Re: Re: ビルド環境について

示していただいた通りに修正したところ、エラーが出ずにビルドが成功しました。
ありがとうございました。
プロフィール

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR