Avisynthを絶讃ιょぅょ Part32 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
「AviSynthを絶賛」というのは、聞いたら答えたり報告したりなどギブアンドテイクな作業を指す。
厨と呼ばれて当然の事を、調べもしないで訊くバカが住み着くスレではないので、
avisynth.infoぐらいは読んでおくように。
【前スレ】
Avisynthを絶讃ιょぅょ Part31
http://echo.2ch.net/test/read.cgi/avi/1383985211/
【日本語による解説】
avisynth.info
http://www.avisynth.info/
【実家】
AviSynth
http://avisynth.org/mediawiki/Main_Page >>469
VapourSynthのQTGMCでスクリプトをいじって、
最初のフィールドを分離する所のBobをTDeintMod+nnedi3に、
後のedi1でそれをそのまま使うようにしてる。 >>374のdelogomod x64再アップお願いできませんか。 KTGMCで、薄っすらと前後のコマが残る場合があるようです
https://i.imgur.com/EQBXdfB.png
上:Deinterlace(mode24=2, preset="faster", cuda=true).selectevery(2,0)
下:TFM(mode=5,PP=0,order=-1,slow=2,mChroma=true,chroma=true)
口に薄っすらと残っています。fastとslowでは出ませんでした
QTGMCでも既知の現象なのでしょうか? >>478
cuda=falseにすればQTGMCで動くよ 前後のフレームをマージしてるから、原理上はありえる動作
ただ、QTGMCとKTGMCで全く同じ結果になるとは限らないから
それはやってみないと分からない
他にも、口とかの小さい動きは、動きが捉えられて、
本来は存在しない中間フレームが生成されたりする
これはslowでやっても改善しない
ただ、そういうのは動画で見たらほとんどの人は気づかないと思う
だけど、ソースに存在しないフレームが生成されるのは嫌だから、
24p部分は24p判定しようと頑張ってる
24pだって分かってるソースは逆テレシネするのが一番きれいだよ FFmpegに帯域削減後のBSに使われてるフィールドピクチャが
正常にデコードできないバグがあったから直した
これ使ってL-SMASH Worksビルドしたから配布
https://github.com/nekopanda/FFmpeg/releases
ビルドけっこう大変だったからおかしいところあったら教えて >>483
ありがとうございます。
質問なのですが、ffmpeg本家への報告は考えてらっしゃいますでしょうか?
今後のことを考えると、できれば本家にも修正が反映されると良いなと思うのですが。 AmatsukazeでTDecimateを使うと途中で止まってしまいます
コンソールのログは↓で止まります
> AMT [info] 音ズレ: 平均 1.99ms 最大 1.99ms
メインを
Import("AMTFilterFunctions.avs")
src = IsProcess("AmatsukazeCLI.exe") ? AMT_SOURCE : LWLibavVideoSource("T:\sandbox\t28\ts\test.ts")
src.Deinterlace(mode24=3, preset="Faster", cuda=true).selectevery(2,1).Assumefps(29.97003)
ポストを
src = IsProcess("AmatsukazeCLI.exe") ? AMT_SOURCE : LWLibavVideoSource("T:\sandbox\t28\ts\test.ts")
src.PostFilter(cuda=True,edge=False)
IsProcess("AvsPmod.exe") ? ConvertBits(8, dither=0) : last
TDecimate()
にして、エンコードしようとしました
TDecimate()無しで30fpsでエンコードする場合は正常にエンコード完了します いっそnekopanda氏に一言伝えて、Amatsukazeスレとか作ればいいのに。 >>489
そこは10bitだからマズい気がする
TDecimate()は10bit対応してたっけ ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ http://putin999.blog.fc2.com/ (←fc2を半角にしてね)
ここのサイトのプラグイン、ほとんどリンク切れになってる… D3DVPめっちゃ便利やね
環境維持重視だった録画兼エンコPCもWin10にしたくなったわ D3DVPのデフォルトはbobらしいけど
どのくらいの品質なんでしょうか GPUやソースによっても変わるんだし、自分で試すしかないんじゃないの。 >>496
GPU使って動画再生したときと同じ品質のはずだから、
PCでインタレ動画再生して確かめればいい >>498
NVIDIAが載ってるノートPCとMPCとLAVで十分綺麗に観れてますから
満足な品質だと理解しました
ありがとう >>494
その場所知りたい
片フィールドロゴ除去系のプラグイン探してるんだけど
サイト消滅、リンク切れで見つからない >>500
ごめん
firefoxをインストールしてブクマ確認してみたけど登録してなかったは
Itsのx64版とかいろいろあったと思ったんだけど・・ CUDA対応とか盛り上がってるんでplus 64bitに移行してみたんだが
avs名が長かったり2バイト文字を含んでると、ScriptFile()が尻切れの値を返してきて分岐処理が出来にゃい…
詰んだorz >>309
Windows8.1 64bit GeforceGTX750環境で
Avisynth+(r2636)で完走するavsで
Avisynth+CUDAに代えたところ
QTGMCがエラーを出します
log
ERROR: Assert: assertion failed
(C:/Program Files (x86)/AviSynth+/plugins64+/QTGMC.avsi, line 1096)
QTGMC.avsi, line 1096
try { Assert( !Replace && defined(Eval(globalName)) ) }
同様にKTGMCの場合もエラーを出します
log
ERROR: Assert: assertion failed
(C:/Program Files (x86)/AviSynth+/plugins+/KTGMC.avsi, line 1065)
KTGMC.avsi, line 1065
try { Assert( !Replace && defined(Eval(globalName)) ) } >>504
うちだと、そのエラーはAvisynth+(r2636)でも出るし、QTGMCでもKTGMCでもAvisynth+CUDAで完走する >>434
ビルドしたら用意されてて、うお!って思ったけど、
Device unmatch: oncuda[CUDA] does not support [CPU] frame
のエラーで使えないです nekopandaさんの
KTGMCとか以前と結構変わったのかな?
ただのKTGMCとかなくなって、KTGMC_Bobとか他にもいっぱいあるんだけど
とりあえずKTGMC_Bobはあまり綺麗にならない KTGMCやKNNEDI3はビルドしないで普通にreleaseされてるのを使えば問題なかったです・・・ >>506
用意した覚え無かったけど、なんかあるねw
多分中身はnnedi3_rpow2と同じだわ
>>507
KTGMCはKTGMC.avsiにある
KTGMC.dllにあるKTGMC〜は内部で使ってる関数 >>509
ありがとうございます
仕組みがわかりました
AvsPModでKTGMC使ってもすごい速さでシークできるので
可能性を感じます・・・が結構落ちます・・・
グラボのメモリとかが足りないのか、故障してるのか
イベントビューアに WHEA-Logger 17 いっぱい出てるし >>510
GPUのメモリ使用量はGPU-Zとかで見れるよ。Win10ならタスクマネージャーでも見れるかな
そのエラーはHWかドライバあたりっぽいね Avisynth+ CUDA 安定してきました。
KTGMC、KNNEDI3は全然CPUパワー食わないので
CPUパワーを他のことに使えますね
高画質化とか高速化とか? GPUガンガン回して時間当たりの消費電力が増えても全体で見れば凄い省電力ってのは精神衛生上大変よろしい そういう意味じゃ、D3DVPは圧倒的な消費電力低減につながるな CUDAは無理だが、D3DVPはRadeonでも使えるだろw MDegrainのGPU化物凄く助かる
マジ感謝
ラップは作れないですけど・・・ D3DVPはRadeon買ってみたくなるな
でもインタレ解除は、30fpsになっちゃうけど、
K(Q)TGMC(slower)でBOBってSelectEvenしてる
圧縮してもたいして容量変わらないし、なんか綺麗だから
誤爆とかそういう概念もなくなるし
変? ぶっちゃけradeonは大したことないよ
D3DVP側からオプション変えられないし使いにくい
KTGMC(QTGMC)でslowerが高速に動くなら
それに越したことはない ttp://linino.dip.jp/quintrokk/?p=1768
にも書かれてるんだけど
>なぜかD3DVPフィルタを適用すると、 先頭フレームが2フレーム重複して表示→以降1フレーム遅れ→最終フレーム欠落 となってしまいました。GPUが悪いのか、ドライバが悪いのか…
って感じで1フレームずれるんだけど、仕様ですか? >>521
いや、うちはNVIDIAでやってるからね KTGMCでBOBしてselectevenして、
間引きとかはもうしてないなー
誤爆とは縁が切れた
今は30fps固定のインタレ解除だけしたCFR
似たフレームなら圧縮されるだろうし
出来上がりサイズはたいしてかわらんし >>520
DGdecNVに、読み込み時と単体のHWデインタレースフィルタの3種類が用意されていたので試してみた
CUDA経由のDGBob(mode=0)とPureVideo経由のPVBob(mode=0)はズレないが
古いDGSource(〜deinterlace=1,use_D3D=true)でD3D経由インタレ解除してスキップしたりフレームを戻すと1フレずれる
Win7+GTX660環境なんでD3DVPが使えず同じ現象かは分からんが、D3Dの仕様に何か罠があったりするんかな? そういやnvidia専用のDGdecodeもあったね
懐かし 1フレームずれる分、音ズレに気をつけないといけないんだろうか EDCBスレで話題になってるVS2017のコンパイルしたものの動作不良を引き起こすバグ(仕様)が気になる
3月の頭にnnedi3とか自ビルドした間の悪さよ・・ 昨年末くらいにAvisynth+スレでもVS2017おかしくね?って話が出てたよ。
https://forum.doom9.org/showthread.php?t=168856&page=192
書き込みにもあるけど、x265のバイナリを配布してる海外の人が
VS2017 15.5はクソだなっつってV2015に戻したりもしてる。
http://msystem.waw.pl/x265/
今のpinterf氏のAvisynth+ってVS2017ビルドだよね?
ランタイム入れるのめんどいって思って最近全然更新してないや・・・。 ああ、あれってそういう話だったのか
開発も自ビルドしないからコンパイラなんて関係ないやってスルーしてたは KFMの32bit版でKFMSwitchが動かない
引数のthswitchやthpatchを設定するも引数エラーが出る
64bit版はOK >>530
CUDAが32bit版サポートしなくなってビルドできなくなってた
紛らわしいから32bit版は消しておいたわ >>531
サポート終了とは残念だが回答ありがとう
更新頂いたバージョンのリンクが0.3.1になってるので最新のお願いね
aviutlから乗り換えで別の編集用ソフト探すかな まぁ、実際のところ、作者様は
色々なバージョンを作成管理する義務はないし、
自分の時間だって欲しいはず プラグイン作者は、著作者を名乗ったりHPのリンクとか貼らなければいいんだよ。
ビルドが終わったら斧にでもアップして、一切のサポートをシカトすれば気も楽だろ。
どうせavsのプラグイン開発なんて1円も儲からない分野だしな >>520
先頭フレームの解除漏れとフレームのずれに対処するオプション追加した
border="blank",adjust=1 ってすればどっちも解決できるはず
1フレームずれるのが仕様なのかどうかは知らん
Radeon環境や、NVIDIAでもmode=0だとずれてなかった >>536
環境や、もしかしたらドライバによっても違うってことですかねえ
ちゃんと確認してからやらねばいけないね AviSynth+CUDAいじってるけどおもろいね
電気代と1080ti欲しくなるなぁ・・・ >>536
元絵とかと比較して自動アジャストとか出来ないかなー conditionalfilterフィルタがCUDAを使うと動かなくなるようで
再現性あったのでサンプルスクリプト書いてみました
SetMemoryMax(2048, type=DEV_TYPE_CUDA)
BlankClip(length=100, width=1920, height=1080, pixel_type = "YV12", fps=30000, fps_denominator=1001).KillAudio()
AssumeFrameBased()
conditionalfilter(last, last, last, "10","<", "128" )
ConvertBits(14).OnCPU(2).KDeband().OnCUDA(2).ConvertBits(10, dither=0)
return last 普通のPlusでもMT有効でconditionalfilterを使うとエラー出るし
もっと根本的なところに原因がありそう ConvertBits(14).KDeband().ConvertBits(10, dither=0)で動いたから修正できたら嬉しいのだけど
別の原因かもしれないのか。。
DecombUCFが動かなくて、conditionalfilterまで行きついた。
DecombUCF自体はconditionalfilter無しで動かすように改造して回避して
内部呼び出しのTDeintをKTGMCに変えてさらに高画質化できたよ Avisynth+CUDA専用でないならどこかにアップしてくれない?>conditionalfilter無しのdecombUCF 自信無いがこんな感じ、decombUCF v3.13が元
conditionalfilter(c
から
\, "CFieldDiff(nt=0,chroma=true)*100.0/"+String(Width(c)*Height(c)),"<", String(fd_thresh) )
まで削除
変わりに
c
追加
第一次判定をスキップするので重くなる可能性あり
以下利用サンプルではTFMでインターレース判定があった場合のみ実行することで負荷低減
#pp=0とpp=4は変えないほうが良い、インターレース判定のcthresh, MIはお好みで
Deinted = TFM(mode=6, order=-1, pp=0, slow=2, mChroma=true, MI=40, display=false)
Deinted = Deinted.DecombUCF()
TFM(mode=6, order=-1, pp=4, slow=2, mChroma=true, clip2=Deinted, cthresh=7, MI=40, display=false)
TDecimate(mode=1) スマソ、一次判定の結果が間違ってたので修正だわ。decombUCF v3.13が元
conditionalfilter(c
から
\, "CFieldDiff(nt=0,chroma=true)*100.0/"+String(Width(c)*Height(c)),"<", String(fd_thresh) )
まで削除
変わりに
c.ScriptClip(string1+string2+string3)
追加 ちょうど今日やろうとしてたところで
情報更新thx Plane Difference: This filter can only be used within run-time filters
([ScriptClip], line 4)
がMT有効だと常に表示されるは
conditionalfilterだけが問題ではないみたい@plus r2636 確認どうも
再現したのでScriptClipも回避できるか見てみるかの DecombUCFはLumaDifference系のフィルタが必要でこれもMTと合わせて利用ができないよう
リクエスト修正出てるからいずれは修正されるのかな
https://github.com/pinterf/AviSynthPlus/pull/10
CUDAの方はimportスクリプト内含め全てをOnCPU(0).OnCUDA(0)とすればMT無効と同条件でDecombUCFが動作することがわかったわ >>552
調査ありがとう
それ、去年の4月からの放置なのか・・
Avisynth+はSE't氏のMTより高度なMT処理を実装してるんだろうけど
ちょっとちょっと未成熟なのよね
プラグイン側は精力的なアップデートでかなり良くなってるんだけども あぁ、Avisynth+はScriptClip系をマルチスレッドで使うとデッドロック不可避だった
ソース見ると直そうとした形跡はあるけど、
最近のバージョンではエラーにしてるとこ見ると、もう諦めてるのかな
CUDAはOnCUDAが1つだけなら大丈夫っぽいけど、複数あるとデッドロックしそう UtVideoで吐きだしたaviファイルをフィールドピクチャ対応のL-SMASHで読み込んでいるのですが、
その最終フレームをFreezeFrameで1つ前のフレームで置き換え、
AvsPmodで表示しようとすると
Error requesting frame 34524
WindowsError: exeption: access violation reading 0x00000068
というエラーが表示されます。
以下、例。
LWLibavVideoSource("hoge.avi")
FreezeFrame(34524, 34524, 34523)
return last
この例だとAvsPmodで34524フレーム目をピンポイントでプレビューに表示(更新)させると上記のエラーが表示されます。
ただ、他のフレームをプレビューに表示してから最終フレームまでシークしていくとエラーは出ません。 AVISource()で読み込んだほうが早くね?
UTVideoの本家のデコーダーが使えるしL-SMASH Worksが内部で利用しているffmpegのデコーダーは本家の更新にすぐに追従してアップデートするわけじゃないからな 以前、AVISource()を使ってみたら
緑一色のフレームが混じることがあったのでL-SMASHを使うことにしています。
フィールドピクチャ対応のL-SMASHに変えるまでは
最終フレームの置き換えでエラーが出なかったので報告してみました。 >>557、>>559
ありがとうございます。
AVISource("hoge.avi", pixel_type = "YV12" )でやってみます。 >>558
ffmpegは動いてたのがバージョンアップで動かなくなるとかざらにあるからね・・・ AVISourceで緑のフレームが混じるって報告は前にもどこかであったけど、
野良ビルドを使ってたり、
pixel_typeを指定してるかわからなかったりだったかな
どうしてもL-SMASHが使いたいなら、
aviファイルの読み込みだけ前に使ってたやつを使えばいいんじゃない? >>561
ありがとうございます
凄いや。OnCUDA(2)やPrefetch(4)のMT環境でDecombUCFが動くのを確認できた
一度だけエラー出ましたが繰り返しすぐ起動したのが影響あったのかも。。
OnCUDA(2)で継続して使用しますね CUDA無しでも動くようでMT対応として使ってみるとか >>565
OnCUDA()が使えない環境なのに、KAnalyzeとKMergeStatic+QTGMCを使いたいが為にSynth+cudaを使ってる俺も居る
今までMask使って試行錯誤してたのがアホらしくなるくらい結果が良くてちょっと悔しい
ただ、KFM-0.3.1では問題なかったKRemoveCombeが、0.3.3でエラー吐くようになってしまって
その内切り捨てられるのではないかと内心ビクビクしてるわw うちはGTX750のCUDA環境なのにQTGMCもKTGMCも使えないから使ってない
ERROR: Assert: assertion failed だから理由もわからないし
PLUSは普通に使えるから移行しようがないんだよね ScriptClipでの異常に対応したんだ
Pluginレベルでアカンのかと思ってたけど、Avisynth自体の問題だったんだな DecombUCF、SmoothCustomやめてmt_lutにすると少し速くなる
str_y = mt_polish("(x==128)? 128 : ((x<128)? ( (((127-"+String(range_y)+")<x)&(x<(128-"+String(nmin_y)+")))? 0 : 56 ) : ( (((128+"+
String(nmin_y)+")<x)&(x<(129+"+String(range_y)+"))) ? 255 : 199 ))")
str_uv = mt_polish("(x==128)? 128 : ((x<128)? ( (((127-"+String(range_uv)+")<x)&(x<(128-"+String(nmin_uv)+")))? 0 : 56 ) : ( (((128+
"+String(nmin_uv)+")<x)&(x<(129+"+String(range_uv)+"))) ? 255 : 199))")
eval_y = Select(chroma, 3, 2, 3)
eval_u = Select(chroma, 2, 3, 3)
eval_v = Select(chroma, 2, 3, 3)
return c.mt_lut(yExpr=str_y,expr=str_uv,Y=eval_y,U=eval_u,V=eval_v) ts開発かどっかで聞いたけどスルーされたのでここでも質問
join_logo_scpで作ったカット編集ずみavsは5の倍数だとかテレシネパターンを一切考慮に入れてないみたいだんだけど
autoVFR(Fastではない全検索)による SelectEvery形式でのテレシネ解除の影響はないと考えていいの?
昔、テレシネ解除にTIVTC24P2関数を使ってた時はテレシネパターンをまたいだカット編集で誤爆った記憶があるから
手動カット編集するときは注意してたんだけど、どうなの? ScriptClipで複数のクリップを使いたいときって、どうやるんだ?
function MyFunction(clip c1, clip c2) {
return c1.ScriptClip("c2.subtitle(string(current_frame))")
}
src = LWLibavVideoSource(...)
MyFunction(src, src)
これだと動かない
DecombUCF見ると変数をglobalにしてるけど、グローバル変数使うしかない?
複数回呼び出されたときに動かなくなるから使いたくないんだが・・・ ■ このスレッドは過去ログ倉庫に格納されています