[QSVEnc]
・x264guiEx 1.42の更新の一部を反映。
-
WinXPで相対パスが正常に取得されない問題への対策。 QSVEncはXPは対象外だが、念のため、回避のためのコードを追加した。
-
QSVEnc.iniのqtaaacenc/qaac用設定にCVBRモードの設定を追加した。 順番的に自然な、ABRとTVBRの間に挿入したので、設定ファイルのインデックスがずれることがあるかもしれない。
[QSVEncC]
バグ修正。
・
v0.05でy4m + パイプが動かない問題を修正。 QSVEnc ダウンロード>>
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
ConvertToMpegTS Ver.1.1.12.4 Release
ConvertToMpegTS
Copyright © 2012 M.Nakamura
http://zmf42190.web.fc2.com/
ConvertToMpegTSはBlu-ray形式のMPEG-TSファイルに変換するソフトウェアです
本...
QSVencGUI Ver.1.0.3.1 Release
QSVencGUI - QSVencCのフロントエンドソフト
Copyright © 2012 M.Nakamura
本ソフトウェアはQSVEncCのフロントエンドソフトです
インテル®クイック・シンク・ビデオ...
ドライバの情報ありがとうございます。今度試してみます!
SDKはIntel Media SDK 2012 R2として出ていますし、QSVEnc 0.05同梱のlibmfxsw32.dll/libmfxsw64.dllはAPI v1.4です。(設定画面で確認できます)
ただ、どうやら3D映像関連の更新が多く、特に面白い更新はなかったように思います。(3D関連は対応する予定はないので全部封じてあります。)
ちなみによく言われる"QSV 2.0"というのはどうやら「Intel Media SDK 2012に対応したハードウェア」のことらしく、つまり"APIv1.3に対応したハードウェア"のことのようです。(
http://news.mynavi.jp/special/2012/ivybridge/index.html のphoto11より)
整理すると、
API v1.0 … Intel Media SDK v1.0
API v1.1 … Intel Media SDK v2.0 ("QSV 1.0")
API v1.3 … Intel Media SDK 2012 (Intel Media SDK v3.0) ("QSV 2.0") (QSVEnc 0.04で対応)
API v1.4 … Intel Media SDK 2012 R2 (QSVEnc 0.05で対応)
APIや Intel Media SDKというのがIntel Media Library全体について、"QSV~"はハードウェアのことを指すのだと分けて考えると多少スッキリする気がします。
ご存知かもしれないですが2753 betaドライバが少し前に出たみたいですね
2729だとビデオカードを別につけているとインストールできなかった問題が解消されているようです(これのせいでシステムの復元をするはめになったw)
これでHD3000でも漸くHWでv1.4が使えるようになりました
win8用ですが2770 betaも出ているようですがこちらはまだ試していません…
ありがとうございます!
Sandyでも(どの程度なのかはあれですが)API v1.4が使用できるのですね。
まあ…Intelさんはよくわからないバグがあったり、出たと思ったらすぐ消えたり、いろいろありますよね。(まあわたしもよくやらかすので人のことは言えませんが…)
いつも便利に利用させてもらってます。
今日 0.06にアップデートしたのですが、QSVEnc.iniの[SETTING_MUXER_MP4]にあるbase_cmdに:fpsコマンドの記述がないのでフレームレートが25fps固定になってしまいます。
とりあえず :fps=%{fps_rate}-%{fps_scale} を追加したら、ちゃんと反映されるようになりましたが、これでOKですよね?
fpsの指定ですが、もちろん、":fps=%{fps_rate}-%{fps_scale}"でいけるのなら問題ありません。
ただ、こちらではなくても反映されているので、mp4boxのバージョンの問題かと思います。
POP氏(
http://pop.4-bit.jp/ )のところのmp4box r3745を使用してみていただければ、iniファイルに追記せずにいけると思います。
教えていただいたmp4boxで無事fpsが反映されました。
有難うございました。
はじめまして、QSVEncの存在を最近知り、使い始めました。
・チップセット:Intel H61(GIGABYTE GA-H61MA-D3V)
・CPU:Intel Core i3 2120T
・メモリ:8GB
・OS:Windows 7 Ulutimate(SP1)重要な更新は全て適用
上記構成でQSVEncを使ってエンコードを試したところ、以下のような不具合が発生しました。
1:全スレッドが利用されない場合がある
最初1度実行した際、CPUのスレッド4つ(2コア)全てが利用され、30分番組のエンコードに10分程度と、非常に良いパフォーマンスを記録したのですが、その後の実行では3スレッドまでしか利用されず同じソースのエンコードに40分ほどかかると言う結果になっています。
(利用状況はタスクマネージャで確認。4スレ時と3スレ時で動作状態が明確に違う)
同じ設定、同じソースで利用していてなので、原因になるものが分からずにいます。
2:「mp4後ファイルが見つかりませんでした」でエラー終了
音声エンコーダでFakeAacWav(FAW)を指定し、エンコードモードはFAW解除(full size)で実行を行っている
(拡張x264 Exと同設定)のですが、
auo [info]: mp4box でmuxを行います。音声mux:on, tcmux:off, 拡張モード:なし
auo [error]: mux後ファイルが見つかりませんでした。
auo [error]: mp4box でのmuxに失敗しました。
auo [error]: muxのコマンドラインは…
auo [error]: "C:\tools\encode\MP4Box.exe" -brand mp42 -add "D:\dtv_temp\test.264"#video:name=Video -add "D:\dtv_temp\test_out.aac"#audio:name=Audio -new "D:\dtv_temp\test_out.mp4"
というエラーが出て、エラー終了してしまいます。
「外部muxerを使用」のチェックをはずした場合は、出力ファイルが見つからない旨のエラーが出てエラー終了します。
エンコードは最近はじめたばかりで、何か間違えているのではないかと思っているのですが、何が誤っているのかわからず、難儀しています。
ソフト類のパス指定などは誤っていないはずですが、ほかに何をチェックすればよいでしょうか?
む~。難しいです。いくつかお聞きしてよろしいでしょうか。
まず 1 についてです。
ログに
auo [info]: Media SDK impl ~~~~
という項目がありますが、どうなっているでしょうか。
そこまでかかる時間が違うとなんらかの問題により、ハードウェアエンコードが使用されていないような気がします。
2 についてです。
mp4boxはどこのものをご利用でしょうか。POP氏(
http://pop.4-bit.jp/ )のビルドしてくださっているmp4box r3745でなければ、一度POP氏のものを試してみていただけると改善するかもしれません。もうそれ使ってるよ…という場合は…なにが原因なのか…むー。
「外部muxerを使用」のチェックをはずした場合のエラーについては、調べてみましたがQSVEncのバグのようです…すみません。
>ログに
>auo [info]: Media SDK impl ~~~~
>という項目がありますが、どうなっているでしょうか。
auo [info]: Media SDK impl QuickSyncVideo (hardware encoder), API v1.4
となっています。ダイアログ上の表示では、SW,HWとも1.4です。
>mp4boxはどこのものをご利用でしょうか。
MP4Box_0.4.6-r3745_x64.exeを利用しています。
このエントリの boc さんのコメント(fpsが25に固定されます)から、MP4Boxが古い可能性に気づき、最新版に入れ替えて実行を行いましたが、最初の1回(処理時間は別にして)動作したものの、2回目は同理由で失敗しました。
(現在3回目チェック中)
どうも妙なことになっているようですね…。
あまりお役に立てそうになく、ごめんなさいです。
チェックしてみるとよいかもしれないポイントを挙げておきます。
・Intelドライバ
ドライバによっては調子が悪かったりします。わたしの場合、いくつかパターンがあって
- エンコ開始と同時にAviutlごとフリーズした
- エンコ開始と同時に空回りした
- そもそもQSVが使えなかった (設定画面から選択できない)
とかありました。WindowsUpdateの時が多いですが、インストーラでもありました。で再インストールすると治るという…
とても面倒ですがもう一度Intelのページから実行ファイルを落とし、再インストール→再起動をしてみてください。
・Aviutlの設定
エンコに時間が掛かることですが、フィルタ…は同じ設定だと思いますが、入力プラグインとしてなにが使用されているか、などです。…むろん変えてはいないとは思うのですが…。
・mp4boxは最新
了解です…しかしそれでエラーだとすると難しいですね。一度、エラーの情報として表示されているコマンドラインをコピーして、コマンドプロンプトから再実行してみていただけないでしょうか。mp4boxのメッセージからなにかつかめるかもしれません。
遅ればせながら、問題解決致しました……というか、こちらの設定ミスでした……。
MPEG-2 VIDEO VFAPI Plug-InでのTS読み込み時、設定時にアスペクト比の指定を「無視」でなく「反映」にしていたのが問題でした。
設定を「無視」に変更したところ、当初の想定どおりのパフォーマンスが発揮され、30分番組を10分前後で処理出来るようになりました。
こちらのくだらない設定ミスにもかかわらずご対応いただき、ありがとうございました。
ああ、あの設定そんなに変わるのですか…。
ともかく、無事元に戻った(?)ようで何よりです。
素晴らしいソフトウエアを公開してくださり、本当にありがとうございました。
QSVをコマンドラインで簡単に使いたいと思っていたので、見つけたときには「うぉ!」と言ってしまいました。(^^)
ふたつほど、質問させてください。
質問1:
現在、ts2aacで音声分離 → ffmpeg | QSVEncC64 でエンコード → mp4box64で、ts2aacのDELAY値を指定して結合、という方法でエンコードしています。(これで音ズレのないファイルが出来上がりました)
録画したファイルを自動でエンコードすることが目的ですので、これでOKと思っていたところ、やはりそれでも音ズレするファイルが出来上がることがありました。その場合、逆にDELAY値をmp4boxで指定しないで結合すると、音ズレはなくなりました。
(余談ですが、はじめはDELAYの指定方法を知らず、音ズレするファイルに悩んでいました。試行錯誤の結果、元のTSファイルの最初の1GOP未満を削って、GOPの先頭とファイルの先頭を合わせると、音ズレしないことがわかりました。しかしこれだと、コマンドラインからGOPの先頭を揃えることが難しいため、更に試行錯誤し、MP4BOXでDELAYを指定する方法にたどり着きました)
どのTSファイルも、ts2aacを通すと、大なり小なりDELAYが表示されます。しかし、その値にかかわらず、DELAYを指定すると音ズレするパターンと、指定しないと音ズレするパターンがあって、悩んでいます。
QSVEncCとは関係のない質問で恐縮ですが、些細なことでも構いませんので、何かアドバイスを頂けると、とても嬉しいです。
今のところ、音声分離前にGOPの先頭を揃えて、DELAY指定なしで結合すれば、すべて音ズレがなくなるのではないかと思っているのですが、どうしてもコマンドラインから最初の1GOP未満を削る方法が見つかりません。
最悪、DELAY指定バージョンと指定なしバージョンを両方出力して、ずれている方を削除でも良いかと思っているのですが、できれば解決したく思っています。
質問2:
上記の方法でエンコードすると、BSの番組(例えばD-Lifeの「ナイジェルのシンプルレシピ」)で、ときどき映像だけスロー再生のようになることがあります。
--vpp-deinterlace は毎回指定しているので、インテルのバグとは違うと思うのですが、減少としては同じです。
必ずこの番組がそうなるわけではなく、正常にエンコードされることもあります。
再現しているのは、偶然かもしれませんが、すべてBSで放送している海外の番組(もしくは洋画)です。
こちらも、原因や解決方法など、何かアドバイスを頂けるととても嬉しいです。
以下、私が使用しているオプションを載せておきます。
ts2aac.exe -i [ソース.ts] -o output
ffmpeg -v 0 -i [ソース.ts] -pix_fmt yuv420p -vcodec rawvideo -an -f yuv4mpegpipe - | QSVEncC64.exe --tff --vpp-deinterlace normal --vbr 3000 --maxbitrate 6000 --output-res 1280x720 --quality quality --gop-len 100 --y4m -i - -o output.264
MP4Box64.exe -add output.264#video:fps=30000-1001:par=1:1 -add [ts2aacの出力ファイル]#audio:delay=[ディレイ値] -new output.mp4
以上、お忙しいところ恐れ入りますが、コメントを頂ければ幸いです。
1.について
ffmpegで綺麗にdelayを何とかする方法はわからないです。すみません。
わたしの知っている方法としては、avisynth経由でMPEG-2 VIDEO VFAPI Plug-Inを使用する方法でしょうか…。そのavsからavs2pipmodでQSVEncCに送り込む方法です。一方で音声の方はaacfaw.auiとfawclでDELAYを修正、最後にそれらを普通にmux、とすると音ズレを±10.67msまで抑えられるはずです。
ああ…fawcl.exeはお持ちでしょうか…。例の休止中のロダにあったのですが。お持ちのようなら、もう少し詳しく書きます。
2.について
うーん、こちらについては全くわからないです。
muken氏にL-SMASH muxerのPAFF対応を強化していただいたので、インタレ保持も可能になりましたので、そちらを試してみる、という手もよいと思います。
お忙しい中、ご回答をありがとうございました。
1.についてですが、fawcl.exeもaacfaw.auiも持っています。
avisynthを使ったことがないのですが、バッチファイルで最後までいけるのでしょうか?
もしそうであれば、お時間のあるときに、詳細をご教授頂ければ幸いです。
そもそも、aacを分離するときに、何故DELAYが発生するのかの理由も、私自身、よく理解していません。
放送されている段階で、もともとずれていて、TSではタイムテーブル(?)があるので問題なく再生できる、しかし分離するとタイムテーブルがなくなるのでずれが生じる、という理解であっていますでしょうか?
2.についてですが、L-SMASHを初めて知りました。L-SMASHをビルドして、mp4boxの変わりに使用すれば、インタレ保持も問題なくできるということでしょうか?
この、スロー再生になるという現象も、ソースファイルの先頭をGOPで切ってあげれば再現しないことが解りました。
1.も2.も、先頭のGOPを揃えることで解決できる目処がたっているのですが、バッチファイルでそれをする方法が見つかりません。こちらも、可能なツールをご存知でしたら、教えていただけると嬉しいです。
QSVEncCと関係のない質問ばかりになってしまって恐縮ですが、よろしくお願いいたします。
その後、試行錯誤しまして、どうにか avs2pipemod を使う方法でエンコードできました。
input.avsとは何かを理解するのに数時間かかりました。(^^;
ts2aac の-Zオプションでaacを分離し、そのまま結合させただけで音ずれも解消しました。
スローになる現象も、L-SMASHを使ったところ、解消しました。
アドバイス、本当にありがとうございました!!
おお!そうですか、うまくいったようで良かったです!
なるほど、aacfaw.auiとfawcl使ってDELAY修正とか思っていましたが、-Zオプション…ありましたね。忘れていました…。