・自動フィールドシフト対応。要望を頂いたので。使用する場合は、timelineeditorのパスを指定した後、x264guiEx同様、拡張タブで「自動フィールドシフトを使用する」にチェック。
L-SMASH muxer用iniファイル(auoと一緒に入っているほう)専用で、mp4box用iniファイルでは未対応。
ただまあ、あまり速度でない…自動フィールドシフトはやはり重いので、GPU Boostは殆どかからなくなってしまう…。
・
x264guiEx 1.65までの更新を反映。 ログウィンドウの位置を保存するようにした。
QSVEnc ダウンロード>>
スポンサーサイト
丁度速度の件で悩んでいました。
ノートPC、Intel Core i3 2350M @ 2.30GHz環境で、通常x264(x64)の約三倍の速度でエンコードできました。これで溜まっていた動画編集の仕事が捗りそうです。
ありがとうございました。
#私もC++やらPHPやらプログラミングを勉強しているのですが、なかなか専門知識が身につかない……orz
いつかrigayaさんのような専門的なプログラミングをできるようになりたいものです。尊敬してます。
>QSV
QSVは画質がいまいちなのが難点ですけど、高速でたくさんエンコードするのには向いているかと思います。活用していただければ嬉しいです。
>プログラミング
そう言っていただけると光栄ですが、わたしも大したことはないです。PHPとかはさっぱりですよ~。
一つ質問させてください。
こちらのQSVEncでインターレース保持エンコードをすると、例えば29.970fpsの動画の場合倍のフレームレートになってしまうのですが、これはQSVの仕様でしょうか?
x264guiEXで同じことをすると、29.970fpsでそのままなので頭がこんがらがってます(苦笑)
Intel HD Graphics 3000で、APIはV1.4です。
おっしゃるとおり、これはQSVの仕様です。
インタレの場合は、1フレームはトップフィールド(偶数ライン)とボトムフィールド(奇数ライン)の2フィールドによって構成されます。
x264のインタレ保持はMBAFFという方式で、フレーム内でインタレとしてエンコードするかプログレッシブとしてエンコードするかを切り替えながらエンコードします。出力サンプルはフレーム単位となります。
一方、QSVのインタレ保持はPAFFという方式で、QSVの場合は常にフィールドごとにエンコードを行います。出力サンプルはフィールド単位になります。
このように、インタレ保持時の出力サンプルの単位が異なります (x264はフレーム単位、QSVはフィールド単位)。フレームレート表示がQSVだと倍になるのはこのためです(2フィールド=1フレームなので)。
>>rigaya様
やはりQSVの仕様だったのですね。
わざわざ丁寧なご回答をして頂きありがとうございました。
有用なソフトを公開していただいてありがとうございます。
パッと見そこまでノイズが走ってなければいいや程度のエンコードをするとき非常に助かっています。
一つ要望があります。
私は地デジファイルをエンコードする際、ASS形式の字幕ファイルを格納するためにMKV形式にしております。
AviUtlのプラグイン出力→QSV出力で開かれるダイアログで毎回ファイル名.mkvと指定しておりますがたくさんのファイルがあると少々手間がかかりまして・・・。
もしもできるならばMKVをデフォルトの形式とするような設定があれば非常にありがたいです。
度々申し訳ありません……。
こちらのQSVEnc0.13を利用し自動フィールドシフトを行ったところ、数回に一回はremuxerの走った後に『出力ファイルが見つかりませんでした』とのエラーが出ます。
見てみると、エンコード時の一時ファイルはすべて出力されていました。muxoutされたファイルもあり(音声も完全でした)、出力した完成版ファイルをリネームして一時ファイルを削除する処理のみがされなかったようです。
同じファイルを同じ条件で数回エンコードしても時折発生するようなので、恐らくバグではないかと考えています。複数のファイルで試してみましたが、どれも数回のうち何回かエラーが発生しました。
ファイルチェックのタイミングによって発生しているように思えます(チェック部分がリネームより先行して走ってしまっている?)。
宜しければ確認をお願いできませんでしょうか。
QSVEncの自動フィールドシフト(スムージング)対応の要望を出していた者です。
高速化版自動フィールドシフトと合わせて、正常にスムージング出力ができることを確認しました。
要望のきっかけとなった24fps化の誤爆ソースが現在手元になく、厳密な検証が出来ないのが残念ですが、
ひとまずこれで年末年始の動画編集が捗りそうです。ご対応ありがとうございました。
(蛇足)
当方環境では自動フィールドシフト以外で判定誤爆やシーン破綻が目立ち、恒常的に自動フィールドシフトを利用していました。
速度が出ないと懸念されている件、自動24fps等と自動フィールドシフト自体の比較では大きな開きがあるようですが、
自動フィールドシフトの24fps化との比較であれば、スムージングに切り替えても致命的な速度低下は生じないようですので、それなりに需要があったのではと思います。
(自動フィールドシフトのスムージングにx264を組み合わせていた頃に比べたら‥)
>Ovis様
以前「前回選択した拡張子を次回のデフォルトにする」ようにしようとしてみたのですが、うまく行かず…。もう一度何か方法がないか試してみます。
>1bit様
報告ありがとうございます。が、うーん、難しい問題です。
基本的に一時ファイルの移動のあたりはQSVEnc0.12やx264guiEx1.66となにも変えていないので、なにが原因なのか…。このへんは逐次処理なので、ご指摘いただいたタイミングの問題も起こらないはず…なんです。もう少し考えてみます。
>QSVEnc+afs様
うまく動いたようでよかったです。わたしもやはり自動フィールドシフトは簡単に精度よく処理できるので素晴らしいと思います!
初めまして。
QSVEncをありがたく使わせて頂いています。
便乗して質問させて頂きます。
>QSVのインタレ保持はPAFFという方式で、QSVの場合は常にフィールドごとにエンコードを行います。
SDの動画をQSVEncを使用してインターレース保持でエンコードした動画ですが、directshow入力プラグインでaviutlに読み込むと、中途半端にインターレース解除をしたような48fps程度の動画になったり(まれに縞が入ったりもする)、
どのフィルタで再生しても、30フレーム固定でインターレース解除をしたような再生結果になるのは、aviutl入力プラグインの使用フィルタ及び、再生時の使用フィルタが、
QSVのPAFFという方式に対応していないからでしょうか。
(mp4inputで読み込むとフィールド設定を間違えたような形で縞が残った状態になるので、設定を間違ってエンコード結果がインターレース解除されてしまっているという事はないと思います)
すると、PAFFに対応したフィルタを作ってこれらの問題を解決する事は理論的に可能という事になるでしょうか。
これらの問題が将来的に解決する見込みがあるのであれば、
(特にaviutl読み込みがインターレース保持した状態で正しく出来るようにさえなれば)
このままインターレース保持でエンコードを続ける事が出来るので(勿論その辺の成否は自己責任で判断します)伺っておきたいと思いました。
再生時については、WMP12でも正常に再生できますし、LAV Filters(
http://forum.doom9.org/showthread.php?t=156191)使用でも正常に再生できます。
問題なのはAviutl読み込みの方で、今のところ、PAFF H.264をAviutlに正しく読み込む方法はないと思います。
理論的にはPAFFに対応したフィルタがあればよいということではあります。しかし、L-SMASH Works(lsmashinput.aui)でもH.264のPAFFストリームは正しいフレーム数の取得が難しいと述べられており(
http://vfrmaniac.fushizen.eu/lsmashworks_problems.html)、対応は難しいのかなと思います。
現実問題としては、出力した動画を再生するだけではなく再編集したり再エンコードしたりする予定があるのであれば、QSVのインタレ保持は今のところおすすめ出来ません。やはりインタレ解除をするか、あるいはx264でインタレ保持エンコすることをおすすめします。
逆に再編集・再エンコをせず、再生するだけであれば特に問題ないかなと思っています。再生環境などで不明な点などありましたらまた質問していただければと。
rigaya様
ありがとうございます。
>再生時
私もLAVフィルタ最新版を、デフォルト設定のまま使っています。
ぱっと見では気付き難いのですが、正常にインターレース解除して再生出来ている部分と、30フレーム固定の様な再生結果になってしまっている部分があります。
どうやら苦手なのはアニメーションのパンニングするようなシーンで、24コマのアニメーションを30フレーム固定でインターレース解除した時のように、滑らかに動いては一瞬止まるのを一秒間に6回繰り返すような動きになる事があります。
SD(480i)の動画で顕著ですが、HD(1080i)でもなる事があるようです。
>総フィールド数が総フレーム数になってしまう。
素人目にはインターレース保持の場合は1/2しちゃえばいいんじゃないかなーと思ったりしてしまうのですが(笑)
難しい理由があるんでしょうね。
フレーム数判定処理がブラックボックスになってたりとかするのでしょうか。
H.264/AVCでは、規格的に、アクセスユニット単位 (フィールドorフレーム単位)でPAFFかそうでないかの切り替えができるようになってます。
そのため、全てのアクセスユニットを検査しないと総フレーム数が判定できません。
単純に1/2にはできないのです。
またコンテナ側でPAFFかそうでないかを示すようなものが無いので、PAFF形式はフレーム番号でアクセスするような編集用途には向きません。
必ず最初に、全部のアクセスユニットの検査が要求されます。
>dcn様
ああ、なるほど、24fpsのアニメの解除でしたか…わたしはアニメの方はインタレ解除してしまうので気づきませんでした。
>1/2しちゃえば…
QSVのPAFFは機械的に必ずフィールドごとにエンコードするので、おっしゃるとおり1/2にしてしまえば問題無さそうではあります。しかし、本来PAFFはフィールドとしてエンコードするのか、フレームとしてエンコードするのかをピクチャーごとに適応的に切り替えるものなので、「1/2固定」というわけにもいかない、というのが難しいところです。
QSVはその切り替えをせず必ずフィールドごとにエンコードしているためか、インタレ保持エンコの圧縮率があまりよろしくない傾向があります。
>muken様
このコメントかいてる途中で気づきました。ありがとうございます。
申し訳ありません。
再生時の問題はどうやらQSVが原因ではなかったようです。
tsをaviutlに読み込む時、DirectShow File Reader + LAVフィルタで読み込んでいたのですが、この方法だと、読み込み時に勝手にインターレース解除をしてしまう部分があるようです。aviutlに読み込まれたフレームをコマ送りしてよく見ると、部分的に縞がないコマがあります。(m2vで読み込んだ場合には縞があるコマで)
読み込み時にインターレース解除をされてしまった部分が30フレーム固定になってしまうということになるのだと思います。
ts読み込みには今の所素直にm2vやDGindex使うしかなさそうですね…
お騒がせしました。m(_ _)m
(逆に言うと、LAVフィルタを使う方法がaviutl読み込み時のインターレース解除の誤爆さえなくなれば、エンコード時の手間が大幅に省けそうです。色々試してみてうまくいったらまた書かせていただきますね)
rigaya様
muken様
回答ありがとうございました。
今の所QSVの場合は、全てフィールド単位なので、1/2すればフレーム数になるが、PAFF本来の実装を考えるとフィールド単位とフレーム単位が混在している事を前提に設計しないといけないわけですね。
ちょっと試してみたのですが、29.97fpsにfps指定してaviutlに読み込めば、QSVEncを使ってインターレース保持でエンコードした動画も取り敢えず再編集が出来そうです。