Avisynth 初心者質問スレ Part9 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
ありがとうございました。
そういう事だったんですね。
本当にありがとうございました。 指定したピクセルの情報を取得する方法を教えて下さい
GUIのものしか検索出来ませんでしたorz なにそのエスパー、というかavisynth helpとかにある程度の資料はあるだろう。 他に良い方法ありそうな気もするけど、Avisynth+ならこんな感じ?
x=400
y=300
ConvertToPlanarRGB()
h=Height()
src=last
Crop(x-1, y-1, -Width()+x, -Height()+y)
PointResize(h,h)
ScriptClip(last, """
Subtitle("(" + String(AverageR()) + "," + String(AverageG()) + "," + String(AverageB()) + ")", align=5)
""")
AverageR()とかの結果をScriptClipの外で使う方法がわからんかった・・・。 色々とありがとうございました。
指定ピクセルの色を抽出したり条件によっては置き換えたりしたかったのです。
Averageとか調べてみます。
ありがとうございました。 >指定ピクセルの色を抽出したり条件によっては置き換えたりしたかったのです。
いい方法ないですね
色の抽出くらいは普通に出来るものだと思ってたのですが 初心者になんて事を…自分には出来ません
どなたか指定ピクセルの色情報を取得するプラグイン作って頂けると嬉しいです
1ピクセルで十分ですし色の置き換えも出来たりx64だと更に嬉しいです 初心者ならそんな手のこんだスクリプトを自分で組んだりしないだろうに。 AvisynthにこだわらなくていいならAviUtlの拡張編集でgetpixel()とputpixel()を使った
スクリプトを書けば簡単にできるけど。
それすら他力本願になるなら諦めた方がいいと思うけどね。 スーパーファミコンとかをキャプチャした時の縦方向のノイズを
Avisynthで消すにはどんなデノイズフィルタを使ったらいいんでしょうか?
avisynthで、FFT3DFilterの Some "best settings", slower processing
fft3dfilter(sigma=1.5, bt=5, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)
を使ってみましたが消えませんでした。
今までは、Aviutlのノイズ除去フィルタを使っていました。
そのまま:http://s.kota2.net/1547662492.png
Aviutlでデノイズ:http://s.kota2.net/1547662554.png 60iを30pに変換するとファイルサイズ(ビットレート)がかなり大きくなるんだけど、
そういうものなの?
30iを24pにしたものに比べて倍くらいになる。 なんか設定間違ってるんじゃ?
30pじゃなく60pになってるとか
それはそうとふと思ったんだけど
amatsukazeのdeblockフィルタを
L-SMASH worksのほうに組み込むことはできないのかな?
たしかdeblockはCUDAに依存してないって話だったはずだし
手軽に使えたら嬉しいんだけど >>691
確かに、ファイルサイズ的には60pになってそうなんだよ。
でも、出来たファイルのプロパティを見ても30p(29.97fps)なんだ。
それに、念の為、SelectOddでフレームを半分にしたら、
動画がカクカクになるんで、30pなのは間違いないと思う。
ちなみに
(1)ソースは29.97fpsで全フレームがインターレース
(2)全フレームにNNEDI3をかける
これで60i→30pにならないのかな? avspmodみたいなフロントエンドは使わないの?
色空間からフレームレートまで全部確認できるから便利だよ 俺もなんでAvsPmodで確認しないの?とかおもったけどAviutkあたりにでもavs投げてるんじゃね?
>692
パラメータをいじらないでデフォルトで使えば60i→30pになるはず。
まあ初心者スレだし、いじってはいないと思うけどパラメータンしだいで60pにもできるので
こういう質問はパラメータまで書き込まないと2度手間になるのでちゃんと書き込んだほうがいい
あと、縮む縮まないはソースとフィルタ、コーデック設定しだいとしかいえない。 Subtitle(String(FrameRateNumerator())+"/"+String(FrameRateDenominator())) >>692です。レスありがとう。
>>695のスクリプトで画面に「30000/1001」と表示された。
これは、30pになってるってことだよな?
NNEDI3はデフォルトのまま使ってる。
NNEDI3以外は、いつも30i→24pするときの設定と同じ。
もちろん、逆テレシネはかけてない。
やっぱ、ソースが全フレーム・インターレースだから、圧縮率が低いだけなのかな。 「60i→30p」「30i→24p」と書いてるけど、60iと30iをどういう意味で使い分けてるのか気になる。 >60iと30iをどういう意味で使い分けてるのか気になる。
60iは全フレームがインターレースの30fps動画だと思ってる。
30iは24pをテレシネ変換したものだと思ってる。 そもそも何をエンコしようとしてるのか。
30pのものは何をエンコしようとしていて、24pの何とファイルサイズを比較しているのか。
fpsよりも映像の変化が激しいかどうかの方が圧縮率的には影響が大きいからね。
動きの小さいアニメ(24fps)と動きの激しい実写(30fps)を同じ設定でエンコしたら。
後者の容量は25%増じゃ済まない。かるく数倍になるよ。 60iと30iは、どちらも実写(この分け方が正しいのか分からないけど)。
動きの激しさは同じくらいか、むしろ60iソースの方が小さいと思う。
なのに、60iを30pにしたらビットレートが、30iを24pにした動画の倍ほどになった。
30i→24pの変換は今までに50本以上やってると思う。特に問題はない。
なので、24p動画のビットレートが正しいんだと思う。
意味不明なことを言ってたらゴメン。 質問をちょっと変える。
全フレームがインターレースの動画を
プログレッシブにするにはどうしたらいいの?
逆テレシネするみたいには綺麗にできない? >>700
正しいもくそもないよ
単純に1秒に表示するフレームが多くなれば
それだけ毎秒に必要なビットレートが増えるってだけ
>>701
Tdeintがお手軽
qtgmcのfasterはちょい重めだけどTdeintよりは綺麗
qtgmcのslowだととても綺麗に補完するけど重い >>701
bob().selecteven()
Yadifmod2(mode=0)
EEDI3()
QTGMC(FPSDivisor=2)
試して好みのやつどうぞ >>702
>単純に1秒に表示するフレームが多くなれば
>それだけ毎秒に必要なビットレートが増えるってだけ
24pと30pを比べたら、ビットレートが1.25倍になるのは分かる。
でも、倍以上になる理由が分からんのよ。
やっぱ元が全フレーム・インターレースだから圧縮率が低いってだけなんだろうか。
>>702, >>703
P化方法を教えてくれてありがとう。試してみるよ。
実は、Yadifmod2( mode=0, edeint=NNEDI3() )ではやってみたんだよ。
それでもビットレートがでかいので、間違ってるのかと思ってた。
でも、方向性は合ってるんだな。いろいろ試してみるよ。 1.25倍になるのはわかるって考え方は今のうちに捨てた方がいいかも。正比例なわけはないので。
全フレームインターレースをプログレッシブにしたら圧縮率が下がるということもない。
差し支えなければその24pと30pのソースを教えて欲しいところ。
単にその30pな奴がノイズまみれとかのエンコ殺しソースなだけな気がする >>704
24pソースの60iを30pに変換すると
AtAb BtBb BtBb CtCb DtDb
とされるか?
AtAb BtBb BtCb CtDb DtDb
となるんじゃないのかな?
上の段になるアルゴリズムなら圧縮率は高いが(24pにかなり近い)、下の段のアルゴリズムは全フレーム別画像になる。縦の動きとかで凄く圧縮率低下しそうに思う。 >24pソースの60iを30pに変換すると
これの意味が分からない。俺が「24pと30pを比べたら」と言ったのは、
各フレームの画像がほぼ同じで(かといって静止画でない)
単純に1秒あたりの枚数が増えた場合の話だよ。
それだけでも30pは24pに比べて(最大で)1.25倍になるという話。
もちろん、静止画に近いシーンがあれば変わるけど。
そのうえで、30pの元動画が60iだったら、
同じようなフレームが続くことがほとんどないから圧縮率が下がるので、
さらにビットレートが上がるんだろうな、ってことを言いたかった。 >>707
「30pにした時に24pにした時の倍以上のビットレートになったのが解せない。」
と書いてたので24pからテレシネで60iにされた動画のインタレース解除を失敗してしまうとビットレートが上がっても不思議ではない。
とサンプルを提示してみました。 同じソースなのかと思ったてたら違うソースだったのか? Yadifmod2( mode=0, edeint=nnedi3() )
を
NN=nnedi3()
Yadifmod2( mode=0, edeint=NN )
に分けるのって、同じことなのかな?
速度が違ってくる? どのエンコーダーでCRFなのかビットレート指定なのか >>714
AVSをAVIUTLに投げて「x264出力(GUI)EX」でエンコードしてる。
設定は「品質基準VBR」。 そんなプリインストールプリセットなんかないぞ
あんたの設定したパラメータなんか誰も知るわけないんだから
設定画面の下に出てるパラメータぐらい書けよ 設定は「 --input-depth 16 --output-depth 10 --output-csp i444 --crf 23 --me umh --colormatrix smpte170m」
ただし、この設定は30iを24pに変換する時も同じ。 あと、ふと思いついて、
60iソースにBOB()をかけたのと、同じソースにNNEDI3()をかけたのを比較した。
すると、ビットレートはほぼ同じなんだけど、
フレームレートはBOBの方が60fpsでNNEDI3の方が30fpsだった。
これって、NNEDI3の方は、表示上は30fpsだけど、実際には倍のフレームが入ってるのかな?
でも、この動画をAVIUTLに読み込むと、やっぱり30fps分のフレームしかないんだけど。
なんか、俺の日記みたいな書き込みばっかりで、ごめん。 >>718
根本的にトンチンカンな勘違い・すれ違いが発生してそうだから、話を続けたいなら以下の情報を全部出した方がいいと思う。というか出せ。
(30iという変な表現は使いたくないけど698に基づきあえて使っている)
・60iソースについてのできる限り詳しい説明(カメラやキャプチャ機、ソフトなど含めどのように作成したものなのか、どのような映像なのか等)
・60iソースをMediaInfoのTextモードで調べた結果
・「60i→30p」に使っているavsの内容
・「60i→30p」を717の設定でエンコードしたファイルをMediaInfoのTextモードで調べた結果
・30iソースについてのできる限り詳しい説明
・30iソースをMediaInfoのTextモードで調べた結果
・「30i→24p」に使っているavsの内容
・「30i→24p」を717の設定でエンコードしたファイルをMediaInfoのTextモードで調べた結果
長くなるのでここに直接貼るんじゃなく、テキストファイルにまとめてどこかにアップするか、 http://pastebin.com/ に貼るようにな。
パスやファイル名を変えるくらいならいいけど変に省略して一部だけ貼ったりしないように。 なんだかんだ言いいつつ付き合ってくれて、ありがとう。
これから準備するからちょっと待ってくれ。
ところで、「30i」って本当はどう言えばいいんだ?
要は「24pをテレシネ変換したもの」なんだけど。
いわゆる普通のDVDソースなんだが。 あと、ソースはDVDなんだけど、タイトルは言ったほうがいいの?
言った途端「通報しました」とか言わない? んなもん書かなくていい
>>717
--output-csp i444 が原因っぽい気がする あ、ごめん、>>723は>>717の設定で書けってことか。
でも、プログレ化するつもりなのにどうして--tffをつけるんだ? 今準備してる。
60i→30pと30i→24pを同じ設定でエンコした自信がないんで、
同じ設定でエンコし直してる。
あと30分くらい待って。 x264のオプション全部外せば解決だな
>x264.exe input.avs -o output.mp4 >>725
ああ勘違いしてたわ
インターレースでエンコードしたのと比べた話かと
ソースから別のやつで比較してたんだな スクリプトは問題ない感じだが縮む縮まないはもう圧縮アルゴリズムの基礎調べてくれとしか言えない気が
ソースしだいってのを理解してないみたいだし
あと気になったのはAviutlでx264出力しかしてないなら
batにavs投げたほうが余計な色空間変換がなくなる分いいんじゃ?ってくらいか
-output-depth 10 --output-csp i444でYV444 10bitやりたいってかんじだけど
こっちはやったことないのでわからず。
いろいろ理解したいなら一度に全部試すのではなく
普通にYV420 8bitで順々にやってからのほうがいいとおもうけどね >>731、ありがとう。
アルゴリズムの細かい話は分からないけど、
ざっくりと「ソースによって圧縮率が変わる」ことは把握してる。
具体的にソースの何によって変わるのかは分からないけど。
色空間は、いろいろ(総当たり的に)試して今の形になっている。
おそらく理屈では間違っている点があるんだろうけど、
今の組み合わせが一番綺麗になったんだ。
バンディングとかブロックノイズが少なくなった。
ひょっとしたら表示するモニタを替えたら、違ってくるのかもしれないけど。
全部AviSynthだけでやればより綺麗になるだろうけど、今はまだ勉強中。 ところで、「全フレームがインターレース」ってちゃんと伝わってるかな?
要は「全フレームで縞々が出る」ってことなんだけど。
フィールドに分解したら時間方向には滑らかになるんだけど、
縦解像度が半分になるので画質は超絶劣化する。 10bitにするのは好きにすればいいと思うけど、
よくわかってないならとりあえず --output-csp i444 はやめとけ。無駄。 ビットレート倍って平均300kbpsが1100kbpsか、それくらいなら普通よ
俺も420でいいと思うけど >>734
いや、だから、無駄じゃないんだって。
有効・無効で差を確認したんだから。 >>732
どうやらフレームレートが違うだけで容量がとても変わったことが納得いってないみたいだけど、
フレームレートの差だけ確認したいなら、60iソースと別の30iソース(あえて間違いはそのままにする)の比較をしてることがそもそも間違い。
同じ60iソースの30fpsと24fpsで比較しないと。
60i→30p変換.avs に例えばSelectEven()を追記すれば15fpsになるから、それも同じ設定でエンコして比較してみれば
30fpsと15fpsのエンコード結果の差が理解しやすいと思う。
どうしても30と24で比較したいならSelectEvery(5,0,1,2,3)でも追記すれば24fpsになるからそれで >>737
AviUtl上でもなんかフィルタかけてるの?
ソース420、avs内でも420のままなんだから最終出力を444にする意味ないよ? (割り込みで)
>>734
>--output-csp i444 はやめとけ
何故?(素朴な疑問) エッジレベルかけるようなソース自体が圧縮率期待出来そうな気もする。
24fpsのselecteveryの同期ズレが心配・・・ >>738
FRの違いによる容量の違いは納得済みだよ。
その違い以上に容量が跳ね上がるから疑問なんだよ。
>>739
理論上はそうなんだけど、実際は444の方が綺麗になったんだよ。
バンディングがなくなる場合があるので444にしてる。
おそらく何かの処理をする時に444の方が劣化が少ないんだろう(と解釈してる)。
AVIUTLではフィルタをかけてない。
>>741
>24fpsのselecteveryの同期ズレが心配・・・
これは俺に言ってるのかな?(違ったらごめん)
事前にテレシネパターンをチェックしてから、選ぶフレームを決めてる。
シーンによってテレシネパターンが異なる動画は、全自動のやつを使う。
全自動のやつが誤爆するかもしれないから、できるだけselecteveryにしてる。 >>742
fpsの違いによる容量の違いが理解できているなら
その違い以上に容量が跳ね上がることが疑問にならないのよ。
とりあえず比較したいなら条件は比較したいこと以外は統一しましょう。
fpsも映像も違うものを比較してもfpsの違いの影響なのか映像の違いの影響なのかわからないから比較しても何の意味もない。
AviUtはlほとんど知らないから迂闊なこと言えないけど、420のままでcrf下げた方が容量比で画質良くなると思うよ。 >>742
444使ったことないから多分だけど、バンディング低減は10bitにしているからだと思う
420でも10bitにすればバンディングは綺麗に低減されると思うよ
もし、すでに420の10bitと444の10bit試してたらスルーして >>743
>ざっくりと「ソースによって圧縮率が変わる」ことは把握してる。
>具体的にソースの何によって変わるのかは分からないけど。
だから圧縮アルゴリズムの基礎というか基本がわかってないからまだ理解できないと思うよ
数こなしていけばわかるかも知れないけどさ IとかPとかBとかって話?
ああ、でも、DVDソースにそんなものないか。 >>734
単にaviutlの内部が4:4:4の16bitだからそれに合わせているだけじゃね?
無駄とか損とか得とかそういう次元の話ではないと思うが。 今更ながらですが、avisynth標準のLanczosやSplineといったリサイズフィルタと、まるも製作所のものはどう違うのでしょうか?
より高品質なリサイズを追求し、個人的には
Dither_resize16nr(704,480,kernel="Spline",taps=6,noring=true)
を好んで使っていますが、まるものものはこれを上回っているのでしょうか? >>748
どのまるも製作所リサイズのことか分からないけど
仕組み的に上回ってない >>750
ということは、dither resize〜>まるもという理解でいいんですね?
ありがとうございます。 >>751
tap値は、高ければ高いほど高画質になるのでしょうか? >>753
拡大、縮小の精度上るんじゃない?
違うソフトだけど、タップ数と精度に関する記載
ttps://www.imagemagick.org/discourse-server/viewtopic.php?t=32506&start=15
tap=6ならspline36相当、tap=8ならspline64相当だったような? >>753
俺も都合のいい意訳でしかドキュメント読んでないけど
tapってのは対象ドットからのサンプリング範囲で
3だと-3〜+3の縦横6ドットで6*6=36
サンプリング範囲だけで言えばLanczos3とSpline64は同等
Dither16でLanczos3やりたいのなら
Dither_resize16nr(704,480,kernel="lanczos",taps=3,noring=true)
だから
Dither_resize16nr(704,480,kernel="Spline",taps=6,noring=true)
ってのはtap=6だから12*12=144でSpline144相当ってのだと思ったけどな まちがった
Lanczos3とSpline36が同等だな リサイズフィルタごとの画質なんてどれを選んでもプラシーボだけどな。
大きめのtapsにしておけば高画質になると思い込めば、そう見えるんだろ。 誤差レベルの高画質化に頑張るほどビットレートに跳ね返ってくるしな
エンコードより前の計算量ドブに捨ててもいいなら知らんが 縮小なんてSpline36Resize()でいいんじゃねって思ってるけど、
Dither_resize16nr()だとこれだけよくなるよってサンプルがあるなら見てみたい。 エンコードとか画質とかあれこれこだわっても
エンコード後はその気合い入れて作った動画も
1・2回みたらもう見なくなるんだろ。 >>762
つーてもそこさ、Dither_resize16nr()の比較に使っている詳しいパラメータ書いてないので
基本アルゴリズムはわかってもサンプリング範囲がわからないから
Spline36なのかSpline64なのかはたまたSpline144なのかわからんのよね
まあ餅とバーベキューとエンコ設定は本人の好きなようにやるのが一番だけどさ >>762
上の方に出てた時にも見たけど、とりあえず1つ目の記事には、
「8bit(深度)は256色じゃなくて各コンポーネント256階調ってことだし
16bit(深度)も65536色じゃなく各コンポーネント65536階調ってことだし、
RGBならともかくYUVで処理してる段階なんだから〇〇色って表現もできないだろ」
というツッコミはしておきたい。
比較も8bitに戻す時のディザ設定とか拡大比較時のアルゴリズムとかも不明でなんか微妙だしね・・・。
下手するとf3kdbでデバンドまでしてる可能性もあるし。
とりあえず、1920x1080のいくつかのsrcについて
1. src.Spline36Resize(704,480)
2. src.ConvertBits(16).ConvertToStacked().Dither_resize16nr(704,480,kernel="spline",taps=6,noring=true).ConvertFromStacked(16).ConvertBits(8,dither=1)
の2つを差分強調して異なる部分を把握しながら目視比較してみたけど、
目視で違いがわかる部分がほぼ無かったので、俺の中ではSpline36Resize()でいいやってことになったw >>763
1つ目の記事はkernel="spline"だけだからtapsはデフォの4で、Spline64相当、
2つ目の記事はkernel="Spline",taps=6 だからspline144相当でないかい。 今どきLanczosは使わないほうがいいと思うよ
madVRで試したらグレンノイズが消えたから自分の中での評価は低い(Bicubicよりも)
ちなお気に入りはSpline16 >>765
俺も1920x1080のソースで1280x720に縮小で試してみたわ
1. src.Spline36Resize(1280,720)
2. Dither_convert_8_to_16().Dither_resize16nr(1280,720,kernel="spline36",noring=true).DitherPost(mode=-1)
3. Dither_convert_8_to_16().Dither_resize16nr(1280,720,kernel="spline",taps=6,noring=true).DitherPost(mode=-1)
Dither_resize16nrの方が気持ち輪郭のぼやけがよくなってシャープになったような気がする・・・36と144の違いわからんけど
んでSSIMもとってみたけど
1. SSIM Mean Y:0.9919061 (20.918db) encoded 34524 frames, 29.26 fps, 1401.24 kb/s, 240.53MB
2. SSIM Mean Y:0.9924550 (21.223db) encoded 34524 frames, 25.85 fps, 1390.72 kb/s, 238.72MB
3. SSIM Mean Y:0.9924278 (21.208db) encoded 34524 frames, 25.01 fps, 1392.60 kb/s, 239.04MB
だから少しは画質あがってるんじゃ?
今回は入れてないが俺はデバンド処理も16bitでやりたいしほかに重いフィルタも入れて他の事やりながらバッチ処理するので
このくらいの速度低下ならDither_resize16nrでいいかなってなった リサイズの品質はDither_resize16nr(nrついてたか覚えてないけど)
aviutlも色空間(でいいんだっけ?)の拡張は行ってるはずだけど
dither処理してないからあんまり実感しない感じ・・かな?
というかaviutlでのSplineリサイズとDither_resize16の比較はした覚えないや
誰かやんないかな(チラチラ PC買い替えたから数年ぶりにエンコしようと思ってNEO導入しようと思ったんですけど
x64の置き換えはC:\Windows\SysWOW64配下でいいんでしょうか
昔はx86とx64が逆になっていた覚えがあってちょっと迷ってます ややこしいけど、WOW64は Windows On Windows64の略らしいので、64bit以外のdllをWOW64に入れるといいよ。 >>770
ありがとうございます
system32のほうに64bit版のdll入れます なんで素直にsystem64にしなかったんだろ
どうせdllは64bitじゃない過去の遺産からはロードできないのに >>772
それは遠回しに長年x86をゴリ押しし続けていたIntelのせいだろ AviSynth+MTは開発が止まったのでしょうか? >>773
それこそx86捨てさせなかったのはMSやらユーザで
IntelはItaniumでx86捨てようとしたんだよなぁ・・・
ああ、x64なんて出したAMDが悪いのかw >>776
独自の64bit規格を普及させられなかったintelにとって
AMDがx64を成功させたのは屈辱の歴史だろうけど
もし仮にintelのx86拡張のまま64bit化が進んでいたら今頃は現時点以上の脆弱性の嵐で阿鼻叫喚になっていただろうなw 数年前にavisynth2.6を導入して以降浦島太郎状態で
今回NEOを導入してavs2pipemod1.1.1 -> x265 でDVDのアプコンをやってみようと思っているのですが
色空間の設定はx265側の「--colormatrix bt709」だけで大丈夫でしょうか?(avisynth側で設定する必要はないという認識で問題ないでしょうか)
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
MPEG2Source("VTS_01_1.d2v", cpu=0)
QTGMC(Preset="Slower")
changefps(30000, 1001)
nnedi3_rpow2(rfactor=2, cshift="Spline16Resize", fwidth=1440, fheight=810) >>778
DVDってBT601だった筈だけど、色変換しなくても大丈夫なの? >>777
>>intelのx86拡張のまま64bit化
そもそもIA-64はx86拡張じゃないし TDeintで60i->30pにしたいのですが特定のシーンで変な画になってしまいます
ざっと見た限り下記のシーン以外は問題無いようです
ソース:https://i.imgur.com/FhZMU5l.png
TDeint:https://i.imgur.com/YqHVIb5.png
AviSynth+ 0.1 (r2772, MT, i386)
avsは以下の通りです
avsource = "hoge.ts"
video=LWLibavVideoSource(avsource,repeat=true,dominance=1) video AssumeTFF()
TDeint(mode=0,order=-1,field=-1,full=true)
ConvertToYUY2(interlaced=false)
return last
TDeintのcthresh=0とかも試してみましたが変化ありませんでした
アドバイスお願いします 自分のスクリプトでは
mthreshl=2, expand=10, cthresh=5
が追加されてるけど、なぜ付けるようになったかは覚えてない >>782
TDeint(mode=0,order=-1,field=-1,edeint=nnedi3(field=-1),emask=TMM2(mode=0,order=-1,field=-1),full=false)
うちにはこんな1行が残っていた。
オプションの意味もどこからコピペしたものかも定かではない >>783,784
>mthreshl=2, expand=10
この2つを足したところ、きれいに縞解除できました ありがとうございます!
emask=TMMと上記2つのパラメータは同時に指定できないようです(マスク処理をTMMが行うから?)
TMMを使用する場合は emask=TMM(length=18 くらいまで上げると良い結果になりました
mtqL,mthL,nt,minthreshあたりのパラメータを上げ下げするだけでは
>>782の縞は完全には消えませんでした
パラメータの意味を理解しきれていないので間違っているかも知れませんが…
一応サンプルを上げておきます
ttps://www.axfc.net/u/3964067 pass:avisynth >>785
役に立ったようでよかあった
TMMはChikuzenさんがTMM2ってのを作ってるよ
avisynthのバージョンさえあえば使ってみては avs2aviの64bitだと処理速度が上がると見かけたので試してみようと思い
MPEG2DecPlus64でd2vを読み込んでQTGMC(x64)を使うavsを使ってみたのですが正常に動かなかったです
上のavsはVirtualDubの64bitなら正常に動きました
d2vを読み込んでQTGMCを使うavsをavs2aviで処理させる事はできないのでしょうか?
何かご存知の方おられましたらご助言お願い致します。 >>787
VirtualdubCLIじゃダメなの? >>788
>>789
ありがとうございます
調べて見ます avs2pipemodやffmpegもあるし、いまどきavs2aviを使うことってあまりないね。 >>791
avs2pipemodは有名みたいですね
調べるとx265とかばかり出て来ますが
avs2pipemodでutvideoのULH2出力って可能でしょうか? 791さんじゃないけど
自分はavsのutvideo出力ならffmpeg使ってるなぁ
(VirtualdubCLI(x64)も前に使ってたけどffmpeg慣れたほうが便利いいので)
あと、処理速度あげたいならKTGMCのほうがいいかと。(Geforce要るけど)
avs2pipemodは使ってないから分からない・・・けどパイプだから単体で出力って無理じゃ? >>792
avs2pipemodは単体でAVI出力できるようなものじゃないので、
どうしてもUtVideoのAVIで出したいならavs2aviかffmpegだねえ。
ffmpegの場合、YUY2形式のinput.avsを渡すなら
ffmpeg.exe -i "input.avs" -colorspace bt709 -c:v utvideo "output.avi"
でULH2になる。
クロマサンプリング(4:2:0/4:2:2/4:4:4)は基本的にavsにあわせたフォーマットになる。
(上の場合はYUY2なので4:2:2となる。-pix_fmt yuv420p を指定して変換することもできる。)
ULY/ULHの使い分けについては、-colorspaceでbt709が指定されていればULH、それ以外(bt470bgを指定するといい)はULYになる。
ただ、どういう作業手順でやってるのかわからないけど、
そもそもavsからUtVideoのAVIで出力する必要があるのか考えてみた方がいい気もする。
直接x264とかでエンコするんじゃダメなんだろうか。 >>793
>>794
ありがとうございます
>>794
デインターレースした後でカラコレとか色々したいので中間ファイルとしてUtVideoを使っています
丁寧な説明ありがとうございます
試せるように頑張ってみます avs2pipemodとかのパイプ系は、
avs→avs2pipemod等→x265.exeという使い方。
(avs→x265.exeと直に出来ないから、パイプの出番だったハズ、うろ覚え)
自分も、中間ファイルとしてUtVideo使っているので同士デスナ。
元々Radeon使いだったのですが、処理速度を稼ぐためAvisynthNeo(&KTGMC)導入、
Geforce使いになりました。
>>794
説明どうもです。最近、ffmpeg使いだしたので参考になりました。
(UtVideo出力は検索しても情報が少なかったもので) AutoVfr以外で自動間引きできるツールありませんか?
5フレーム単位だと古いソースがよく誤爆します
AviUtlのafs(自動フィールドシフト)は24/30pまでで(そこまではやりやすかった)
60iまでは出来ません、そこまで出来ればと思うのですが・・・
最近だとハ○○コア○ール(伏字にします)ですね、お手上げでした >>798
fastじゃないほうを使えば誤爆は少ないのでは
def内は↓になるやつ
00000-05829 [24] (5,1,4) >>801
AutoVfrはFastは使ったことがないです
使ったのはハ○○コア○ール(伏字にします)、旧作DVD(こちらが凄まじかった、ちなみに○法○女○リ○ル○のは★○trikerS)
DVDはしょうがないのかもしれませんが・・・
>>799
AviSynthCuda必須でしたよね、GPUプラグインさえ滅多に使いません
FFT3dGPUのときはFFT3DFilterより速くてよろこんだくらいです
GTS450をまだ使っている状態ではKFMは難しそうですがどうなのでしょうか・・・?
(↑これかい!と突っ込まれそうw)
60i化は考えましたがとあるブログに60p化があったので最悪これがベストとなってしまうかも?
ALL60fpsはエンコ結果の容量が増えるので好ましくないとも思っています >>802
http://developer.nvidia.com/cuda-gpus
このページでCompute Capabilityが3.5以上じゃないと対応してないっぽい
GTS450は余裕の2.1で非対応
nekopanda様はAmatsukazeで忙しいかもしれないけど
AvisynthNeoとAviSynthCUDAFiltersのRelease版も最新のAmatsukaze準拠のものが欲しい >>802
autoVFRもダメとなると・・
じゃあ、autoVFR Fastで24fps部にafsを適応すればいいかも
avisynthでafsを使う方法をあるみたいだし >>804
AutoVfrだと24fps区間なのに判定不可で60fps判定になりませんか?
それが周期不定で出られると修正修正で時間だけが浪費するので厳しいかったです
>>805
使ったことがないですね、すっかり忘れてました
多分似たような結果になるかな、と予想してAutoVfrでいいかなと判断したと思います
READMEもまだ読んでいません、すぐ出きるかはわかりませんが実効して見ます >>806
そうだっけ?
指定フレーム以下は無視する設定があったような・・と思ったけど、ちょっと違ったみたい
もう自動は諦めてaviutl+afsで60i部のみ30p(「シフト・解除なし」+nnedi3 for aviutl)とするのが楽かもね どっかにx64のBassaudio.dllで使える古いbass.dllありませんか?
以前いろいろ試したんですが、あるバージョン以降、正常動作しなくなり、
古いバージョンで使ってましたが、そのファイルを間違って消してしまいました。 >>808
HDD漁ったら2.4.13.8のx64/bass.dllがあったけど
Bassaudioを使ってないから正常動作するかどうか分からん
あるバージョン以降ってどのくらい前のならセフなんだろう >>809
たしか正常に動くのが2.4.7か2.4.8くらいだった気がします。
(それより新しいとWAVファイル書き出し自体はできるが処理が戻ってこないのかプログラムが終了しない。)
2.4.10が落ちててたので試してみましたがやっぱだめでした。
x86版は最新で問題ないんですけどね。 最近avisynthを使い始めたものですが、
ffmpegにavsファイルを読ませてtsファイルをエンコードさせると音声が入らない、ストリームは入ってる(コーデック表示はある)けど無音、ってことがあるんですが、
avisynthのバグですかね? >>811
・どこのどのバージョンのAvisynthを使っているのか
・どんなavsを書いてるのか
・ffmpegのコマンドをどのようにしているのか
このあたりを書かないと話にならない。 いまさらAVSでBassaudioを無理して使い続ける必要はないと思うけどな。 >>811
>>812
OS:Windows10
avisynth:
AviSynthPlus-MT-r2772
avs:
TSFilePath="test.ts"
LWLibavVideoSource(TSFilePath, repeat=true, dominance=0)
AudioDub(last, LWLibavAudioSource(TSFilePath, stream_index=1, av_sync=true))
Trim(196,4480) ++ Trim(6280,18566) ++ Trim(20366,46048) ++ Trim(47848,49046)
ffmpeg:
ffmpeg version N-93562-g3e10223385
command:
> .\ffmpeg.exe -dual_mono_mode main -i "test.avs" -vf yadif -c:v h264_nvenc -preset slow -rc:v vbr_minqp -qmin:v 28 -qmax:v 30 -aspect 16:9 "test.mp4"
...続く ts file:
PS > .\ffprobe.exe "test.ts"
[mpeg2video @ 00000242e57af2c0] Invalid frame dimensions 0x0.
Last message repeated 10 times
[mpegts @ 00000242e57ac980] start time for stream 2 is not set in estimate_timings_from_pts
[mpegts @ 00000242e57ac980] PES packet size mismatch
Input #0, mpegts, from 'test.ts':
Duration: 00:20:06.73, start: 56879.596711, bitrate: 13946 kb/s
Program 1024
Metadata:
service_name : XXXXXXXX
service_provider:
Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, top first), 1440x1080 [SAR 4:3 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x110]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 255 kb/s
Stream #0:2[0x138]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:3[0x130]: Subtitle: arib_caption (Profile A) ([6][0][0][0] / 0x0006) 以上のような情報です。tsファイル10~20本に1本くらいの確率でエンコード後に音声が無音です。
無音になったときはavisynth+経由しないでエンコードしています。 そういうのって前番組からの音声の切り替わりが原因なのかな わかさトラップとか、dropが混じったままエンコさせちまったとかじゃね。 >>814
TSの扱いはよく知らんから無音の理由はわからんけど、ffmpegの -dual_mono_mode main ってのはAAC Decoder用のオプション。
音声AACのtsとかをffmpegに入力する場合には使えるけど、avs(音声はPCMになる)を入力する場合は効かないよ。
ログ見ると警告出てるのがわかると思う。
あと音声エンコードの指定が無いから自動でAAC 128kbpsになると思うけど、それでいいのかな。
-c:a aac -b:a 192k とか明示した方が良い気も。 ありがとうございます。勉強になります。
確かにわかさ問題も関係してるかもしれません。
冒頭5秒の前番組の音声
1/0モード(シングルモノ)
サンプリングレート : 48kHz
↓↓
対象番組の音声
2/0モード(ステレオ) 日本語
サンプリングレート : 48kHz
2/0モード(ステレオ) 日本語(解説)
サンプリングレート : 48kHz
と変わっているので。
ffmpegのオプションも見直してみます。 音声がらみでうまくいかないときはMurdocCutterで必要な映像の3GOP前からカットしてやれば
俺の場合はたいていうまくいってたな >>820 ですが、わかさ問題でした。
何本か試しましたが、冒頭カットで無音変換は無くなりました。
ありがとうございますm(_ _)m function is_1440_1920(clip)
{
# バージョン番号を文字列として取得
ver_str = width(clip)
# 32/64bitを表す情報を切り出す
ver_str = String(ver_str)
# 文字列を比較して x64 と等しいなら、true を返す
return StrCmpi( ver_str, "1920" ) == 0 ? true : false
}
# 以下をavsき記述
# if (is_1440_1920) {
# # is_1440_1920 が true なら、こちらのブロックが実行される
# ConvertBits(14)
# Spline36Resize(1440,1080)
# ConvertBits(10, dither=0)
# } else {
# # さもなければ、こちらのブロックが実行される
# ConvertBits(10)
# }
解像度による自動リサイズ関数を作ったんだけど
「# 以下をavsき記述」以降の工程を一行にすることはできませんか?
インタレなままaviutlに渡すことが多いから普段は無効、
avs内でプログレ化したときのみ頭の#を消して有効にできると便利なんですが # プログレかどうかを指定するスイッチ
progress=true
last = progress ? ( (width(last)==1920) ? リサイズしたのを返す : リサイズしてないのを返す) : last
return last
でいいんじゃないの。
・残ってるコメントからして関数は何かをコピペして改造したんだろうけど、
酷く冗長だから、ちゃんとスクリプトのことを調べて自分で考えて作れるようにしたほうがいいよ。
・元が1920ならわざわざ1440にしなくてもいいと思うけどファイルサイズ削減目的なのかな?
・なんでリサイズ前に16bitではなく14bit化してるのかわからん。
・というか 「14or16bit化→リサイズ→10bit化」 だと事前の「14or16bit化」はほぼ無意味だと思うので
「ConvertBits(10)→リサイズ」 だけでいいんじゃね?って思う。 すごい・・たった一行で実現できるなんて・・
リサイズ前のConvertBitsはamatsukazeに触発されて書いたんですが
そんなのどうでもよくなるほど素晴らしいです!
ありがとうございました! >>824
スクリプトの書き方などを勉強するいい方法ありますか? >>826
他の人の書いたきれいなコードを読むといいよ。QTGMCとかは割ときれい Tab文字で整形してるソースコードや、{ や }を入れるたびに毎回改行いれるやつはクソだけどな。 >>827
綺麗な呪文でわけわかめ
結局、同じような冗長なやつを焼き直しただけで終わったという・・ >>829
まあ見て読んだだけで理解して応用できたら天才中の天才感ある QTGMCは順に追っていって「なにをしようとしてるのか」をわかるとすごくためになるし
ちょくちょく使われてるhelper functionなんかそのまんまパクって活用できるようになると便利よ
QTGMC(preset="Fast")で決め打ちしてスクリプトの中追っかけるだけでも丸一日ぐらいかかるかもしれんが gispos版AvsPmodって、Windows_x86という表記は何?
Windows_x86-64という表記が紛らわしいんだけど・・・
あと、Neoで追加された構文にも対応してる?
https://github.com/gispos/AvsPmod >>832
arm系windowsが出てきたからなのかな? >>832
x64ってもともとAMDがx86-64として発表したものだからでねえの
あとAMD64とIntel64の実装差を考量してるとかいろいろあるんでない
あとNeoからではなく本家からの分岐だからNeoは非対応じゃないの
つかNeo構文使いたいなら素直にこっち使えよ
https://github.com/nekopanda/AvsPmod/releases doom9のフォーラムには
AvisynthPlus (pinterf) fork Neo r2822 compatible, added 'func' to avisynth value parsing
とあるが…
https://forum.doom9.org/showthread.php?t=175823 そういえばnekopanda氏、avisynthプラグイン・AvsPmodの更新サボってないか?
Amatsukazeは頻繁に更新しているけど… >>836
サボってるっつう表現はどうなんだろうな。
義務でやってるわけでもないんだし、Amatsukazeの方がメインであって、
Neo系単体シリーズとしてのリリースはあくまでオマケっていうスタンスなんじゃないの。
そもそも更新状態も
AvisynthNeo
最終リリースがr2822。ソースはr2824が最新。
AviSynthCUDAFilters
最終リリースが0.4.6(r224)。ソースは0.5.0(r227)が最新。
AvsPmod(Neo)
最終リリースがr464。ソースもこれが最新。
って感じだから大きく更新されたってほどでもないし、どうしても最新を使いたければAmatsukazeから持ってくることもできるし。 おまけどころか、Amatsukazeのベースでしょ
ただこれのソース管理が追いつかないのかな?
感謝はあれ、文句を言う筋合いはないけど、
個人的にはフィルタとNeoのリポジトリを一度整理
してくれると嬉しいです。あとAvsPmod_Neoも まぁ、avisynth側の反応がしばらくなかったから、モチベーションの違いはあるかもね
avisynthでの環境ができて、快適に使わせてもらっているけど
速度が倍になって、感謝しかねぇ
ソース読む限りではそれほど重要な変更でもないし、AvisynthNeoのほうは
まだAmatsukazeで動作試験中かもしれないし、急ぐならAmatsukazeから
そうでなければ単体からでいいんじゃなかな Amatsukazeの最新0.9.1.2の中身を確認してみたけど、
AvisynthNeo: バイナリのプロパティによるとr2822
AviSynthCUDAFilters: 更新内容からすると多分r227
のようだから、AvisynthNeoのr2824はまだテスト段階ということで単体バイナリを出してないだけじゃないの。
AviSynthCUDAFiltersの方も、r227の単体バイナリはリリースされてないけど
r224との差分は30fps上限VFRという多分わりとニッチな需要しかない機能と、KEdgeLevelの改良だけだし。
両者ともCUDAのStream対応ってのが入ってるようで、ググってみると並列性を上げて処理速度向上みたいなことが書かれてるから、
今はそのへんの改良を試みてる途中で、うまくいくようならまとめて新バイナリを出す予定なのかもね。(素人考えなので全然違うかもしれないけど)
昨年11月以降、単体バイナリの更新がされてないけど、単にその後あまり更新されていないだけ。
別にソース管理が追い付いてないなんてこともなさそうだし、
>>838の言ってるリポジトリの整理って具体的に何を望んでるんだろ。 >>841
それに近いかも
フィルタと本体もバージョンが合っていないと動かないしね
ビルドするときどれとどれを組み合わせるとか勘でやってる
ドキュメントちゃんと読んでないだけかもしれませんが 正直、avisynthはロゴ抜きと、Trimさえできれば他はいらない。
リサイズとかインタレ解除の類はエンコーダに内蔵されたやつで十分だしな。 avisynth+をビルドしてみたんだけど、ちょっと問題が・・・
・インストーラー付きでビルドできない
・64bit版しかビルドできない
プロパティの詳細の製品名の所のx64_64がunknownになる AvisynthNeoのビルドって、Directshow関係はbaseclassesとDirectX SDK (August 2009)が必要なのか…
前者はここにあるけど、後者はインストールしないといけないのか…(入れたくない)
baseclassesはSamples→Win7Samples→multimedia→directshowの中にある
https://github.com/microsoft/Windows-classic-samples > DirectX SDK (August 2009)が必要
セットアップのEXEを解凍して必要なDLLとAXだけとりだしてregsvr32で登録させれば? >>846
DirectX SDKのセットアップファイルからIncludeフォルダを抜き出せばいいんだった
>>847
>>848
なくてもビルドはできる
ただ、DirectShowSource.dllもビルドするっていう場合は必要みたいだけど DirectX SDK(June 2010)のIncludeフォルダでもできるか試したけど、こちらも普通にビルドできた。 neo
32bit版でビルドできた人いる?
うちの環境だと64bit版しかビルドできない(x64しか選べない) >>851
CmakeでWin32用のを作ればビルドは通るよ >>854
んん?CMakeでWin32ビルド用設定にして
プロジェクトファイル作ればビルドは通るよ この画面で、Optional platform for generatorをWin32に指定すればいけたわ
https://i.imgur.com/SJSHSA6.png
ただ、相変わらず製品名は、x86_64にはならずunknownのまま・・・(赤線参照)
https://i.imgur.com/pvwY2Qx.png >>856
Win32ならi386とかだよ。arch.hだか何かの記述がunknownなんじゃないかVS2019なら >>856の2枚目間違って64bitの奴をキャプってしまった
arch.hとversion.hって、どっちも.inが付いているんだよな
その2つのファイルをいじればなんとかなりそうな気がする ごめんやっぱわからないわ・・・
>>858は無視して 何か解決したっぽい
生成されたarch.hの中にあるunknownという文字をi386もしくはx86_64に書き換えてやるといけた
これが正しい方法ではないかもしれないけど・・・ 結局正しい方法は何?
nekopanda氏に聞いてみたいんだけど、連絡先不明・・・ あと、ビルドしたら配布しているr2824よりavisynth.dllが4割以上縮んだ >>861
このレベルはいちいち答えてくれなそう
c言語勉強すればパズルも解けるのだろうし avisynth neoに頻繁に更新されているpinterfの修正箇所を入れる場合、どうすればいいんだっけ >>861
AviSynth+はXPサポートの為に使用するVC++ツールセットを "v140_xp" or "v141_xp" としていますが、
VS2019から使用可能なツールセットに "v141_xp" が用意されていない場合はARCH判定処理(TargetArch.cmake)で失敗し、
ARCH文字列("i386" "x86_64")を得られずに "unknown" が設定される様になっています。※ pinterf/AviSynthPlusで確認
XPサポートが要る場合はVS2019インストーラーを起動して「Visual Studio 2017 - Windows XP (v141_xp)」を入れる、
不要な場合は CMakeLists.txt を変更してXPサポートを切り捨てる(例:↓)のが正しい対策になるかと思われます。
https://gist.github.com/maki-rxrz/a65679d05aaa5efb203299eff1e2faea#file-vs2019-no-xp-support-patch
※ ビルドはまだ行っていませんがCMakeを実行して目的通りの arch.h が得られる事までは確認
XPサポート無しVS2019でのビルドしか行わないというなら、単純に "v141_xp" を "v142" へと変更するだけでも良いはずです。 ソースコードを改ざんしてunknownの場合、x86_x64として動作するように細工すれば? >>866
thk!
やっぱりそこだったのか・・・ AvisynthNeoって、r2739がベースなんだよね…
r2740以降の修正を簡単に取り入れる方法はないものか…
実は修正箇所を手作業でやったけど、めんどくさくなって投げた VisualStudioって適用ボタンがグレーアウトしてても
無理やり押して設定を更新できるよね・・・アレなんなんだ? MPEG2DecPlusをVS2019でビルドできなくね?
https://pastebin.com/tYFW1CVN >>866
これですが、
vs2008から全て入れてるから何も問題が出なかったのかな AviSynthCUDAFilters、CUDA Toolkit 10.1を入れてビルドできるか実験
vcxprojファイルのCUDA 8.0.propsをCUDA 10.1.targetsを書き換えてやったが、
cuda_runtime_api.hが開けない(error C1083)
avisynth.h関係で条件演算子 ?: への オペランド 3 は 'void' 型ですが、オペランド 2 は throw 式でも 'void' 型でもありません(error C3447)
が出て、結局ビルドできたのは以下の3つ
GRunT
KDebugTool
KUtil >>873
x64は10.1で出来たような覚えが
いま多分つかってるし
一つだけ違ったかも >>873
CUDAkitの環境変数狂ってると上手く行かなかったり
ややこしい >>878
確認点が多いから面倒くさい
10.1でやってるつもりが、環境変数が8.0だったりとかありがち。その逆も。
他のソースコンパイルしたときに直し忘れてたり、
環境変数が再起動しないとすぐに反映されなかったりで。。。
build前に一度 *.cu ファイルのプロパティからコマンドライン確認したほうがいい ソースを入れ直して再チャレンジ
x64は、nvccを使わない3つとKFMとKTGMCがビルドできた。
それ以外はエラーになっちゃう
x86は、nvccが32bitコンパイルはvs2013以前でやれと怒られて、例の3つしかビルドできず 追記
MFC入っていなかったことに気付いた
v142 ビルド ツール用 C++ MFC (x86 および x64)を入れたら、KNNEDI3がビルドできた そういえば、masktoolsをビルドしようと思ったんだけど、
debug-avs26-16bit
profile-avs26-16bit
release-boost
release-boost-dualsign
release-LLVM-boost
release-no-boost
release-no-boost-dualsign
と色々あるんだけど、どれを選んだらいいのか・・・
あっ、pinterf版の話 へーno-boost版のプロジェクトあらかじめ作ってくれてるんだ
個人的にはdualsignの意味が知りたいところ プラグインを可能な限り自ビルドで揃えてるんだけど、/archの設定で迷う
有効にすると逆に遅くなるという話も聞いたので、どういう場合に使った方が良いか使わない方が良いかの見分け方は? NeoのAvsP_modの最新版ですが、r2822との組み合わせで、
一応使えていますが、一度 F5 でプレビューするとフリーズしてしまいます。
配布されているAvsP_modのソースから作り直せば解決するかと思ったのですが、
同梱の *.py 群がどうも配布されているバイナリと違うような気がしています。
・avisynth_cffi.py とかのNeo版の新しいのがある
・コンパイル環境が間違っている
・少しだけソースを直す
のいずれかで解決するのかと思いますが、一番上の原因でしたら
差し支えなければ、修正の仕方を教えていただきたいか、ソースが欲しいです
見当違いでしたら無視してください >>884
/archで遅くなることがたまにあるね
メモリの割当とかのコストの問題なのかなぁ
計測するしかないけど精密なやり方はわからないから
もう常につけちゃってるよ ただのAvsPModもビルドは通るけど動かなくなってる。。。
昔は普通に動いてたのに。。。
Python27のバージョンとか関係あるのかな
いろいろ不整合が起きている気がする
VS2008のx64ビルド用ツールもダウンロードできなくなってる・・・
python27コンパイル用のVC++でやるしかない MPEG2DecPlusをVS2019でビルドできない原因
MPEG2Decoder.h
335行目 std::vector<std::string> Infilename; ビルドとか、C++の話は、絶賛スレでやれよ
それか、次スレのスレタイから初心者抜け
ビルドとか、C++の話がもうすでに初心者レベルなら、ごめんなさい スレチレスのスルーすらできないやつ(初心者)が玄人をを気取るな。 ビルド関係はやっぱこっちに行くわ
スレタイにTVTestとEDCBが入っているけど、DTV関連ツールの話題はやってもいいよね?
【TVTest】ビルドした・するスレ【EDCB】その3
https://mevius.5ch.net/test/read.cgi/avi/1548937698/ Neoの関連はビルドとは切り離せないからなぁ
Neoがそもそも初心者向けじゃないということですかね・・・
でもこれだけ簡単にビルドできる世の中になったので
自分が玄人とは思わないあなぁ 端的にまとまってるならビルドの話しても構わないとは思うんだけど、
まとまりもなくだらだらと続けられると「ここはお前の日記帳じゃねーんだ」って言いたくなる。 >>888
AVISynthAPI.cppに
#include <string>
#include <stdexcept>
を追加したらビルドできた >>894
あれっ?
追加してもうちの環境だと、まだMPEG2Decoder.h絡みのエラー出る >>895
あとしたことと言えば、AviSynth+のヘッダを追加インクルード指定したぐらい とりあえずエラー文をコピペしたら?
「エラー出る」じゃ漠然とし過ぎてエスパーでも分からないと思う エラー内容は>>871を参照
43行目以降は無視して >>883
pinterf版masktools2のバイナリのwith_dual_filter_signaturesのフォルダにあるreadme-when-to-use.txtを読めばわかるはず ただ、LLVM-boostとno-boostの意味が分からない >>895
MPEG2Decoder.hはAVISynthAPI.cppをインクルードしないんだから
MPEG2Decoder.hもいじらないとだめだろ >>895
Cloneしたソースのブランチ・タグが間違ってるんじゃないの?
デフォルトでmasterじゃなかったから 解決
AVISynthAPI.cppとMPEG2Decoder.hに、#include <stdexcept>を追加すれば無事ビルドできた
VS2019でEDCBをビルドするとエラーになる話(現在は解決)で思い出した Neoのavs_coreフォルダにあるCMakeLists.txtの↓って何だ?
https://pastebin.com/d7VqF5De cuda版masktoolsをビルドしようとしても、avisynth.hがねぇぞ!と怒られるんだけど・・・
インクルードディレクトリをavisynth.hのあるパスにしてるんだけど認識されてない
あんたバカァと嘆きたくなる 結論
VisualStudio2019+CUDA Toolkit 10.1では、そのままではAvsCUDAとcuda版masktoolsのビルドはできない
この組み合わせでビルドできたよと言う人は報告たのむ /arch:AVX2を付けた方が良いかいつも悩むんだけど・・・
逆に遅くなったり不安定になって落ちたりするのが怖くて・・・
ちなみにmvtools2は/arch:AVX2を有効にしてビルドしたらエラー吐いたので、仕方なくデフォ設定(32bit版はSSE2、64bit版は設定なし)でビルド そういえばTDeintのx64版って、古いビルドしかないのね・・・
素直にyadifmod2を使えっていうことか >>912
jpsdrさんかpintrf(plusの開発を引き継いだ人)が移植してたはず pinterfのTIVTCのソースに入ってるけど、そのままではx64のビルドはエラーが出てNG
x86はOK >>908
0.4.6 の AvsCUDA の x64 については VS2019+CUDA 10.1 でビルドできたよ
ただしあんまり意味わかっていないし、エラーに対処していったのみ
C++17で変わった点を辻褄合わせているだけだと思うから速くなったかもわからん
1)
"Convert.cu" と "resample.cu" と "turn.cpp" の
"if constexpr" の部分を "if _CONSTEXPR_IF" に全部置換
2)
Neo-r2822の"avisynth.h"をインクルードするように変更して
C++オプションに /Zc:ternary- を書き込む
これで .avs に
AvsCUDA_Spline64Resize(1280,720).OnCUDA(1,0)
とか書いて使えているが・・・ リサイズぐらいサクッとCPUでやればいいのに。別に重くもないだろう? >>918
どういう訳か俺の環境では
nvcc fatal : Stray '[' character
が出てダメ >>916
そういえばx64は存在しないのか?
x64はインラインasmの部分を切り出して
書き換えないと駄目なのだろうね >>918
neo使ってる場合は何のCPUリサイザが良いですか? ごめん、>>919はmasktools2の方だった
AvsCUDAは問題なくビルドできた AvsCUDA
またビルドに失敗するようになった
nvcc fatal : Stray '[' characterが消えない >>923
ここで延々とブツブツ呟かれても迷惑だから、自分のTwitterかなにかでやってくれ。 スレ汚してすまん
フォルダ名に日本語かスペースがあるとダメだった
とりあえず、全部ビルドできたのでAvsCUDA関連はここまで AviSynth CUDA Filters
とりあえず全ビルドできたんだけど、
KDebugTool.dll
KTGMCTest.exe
KUtil.dll
KMaskTools.dll
って何?
KUtil以外(Amatsukazeに同梱)、作者は配布していなかったはず
ということは基本的に不要っていうことなのかな? 可逆圧縮(avi)で中間ファイルを作りたいんですが
avisynthで読めるのはどれがおすすめですか? avisynth neo r2824でbcs使うと、下の部分が鏡像みたいにならない?
プラスからリサイズの仕様変わったのかな? 一応スクリプトはこんな感じ
これだと、下部が一部ウネウネした感じになる
まあ、プログレ化してからBCSをかけるのが良いが・・
本当はResizeBCSではなくnnedi3_rpow2で1440x1080にできたら良いんだけどね
SetMemoryMax(2048, type=DEV_TYPE_CUDA)
MPEG2Source("d2vのパス")
Trim(43107, 44171)
BCSInterlacedResize_mod()
OnCPU(2).KTGMC(Preset="Slower", tr2=2, SourceMatch=3, Lossless=2).OnCUDA(2)
ResizeBCS(704, 396) ちなみに>>930のスクリプトで、Avspmodでシークしまくったりコマ送りしまくったりすると、画面が乱れたりCUDA周りでエラー吐を吐いたり Neo2822だとどうなるんだろう?
もう忘れてしまったけどNeo2824は変なノイズ入ったりして
CUDAの問題なのかな?って印象を持った記憶があり、使うのやめてる
あれは限定的な問題だったのだろうか >>930
SetMemoryMax は不要では?
neoは64bitしかないんだし
あとneoはl-smash worksとセットで使うものみたいな刷り込みがある >>933
typeがCUDAの方のSetMemoryMaxだから
GPUの性能に合わせて調整したほうがいいんじゃないの?
んで、CPUの方が書いてないからいいのではないかと >>936
そういうのはちゃんと元のリンク貼った方がいいんじゃないかな。後者のr941というのは1年前のだし。
"+3"とか"r941"とかどういう変更がされたのかよくわからんけど・・・。
L-SMASH-Works-r935+3-win64-20190401.7z (2019/04/01)
https://forum.doom9.org/showthread.php?p=1870564#post1870564
LSMASHSource_r941_MSVC_hydra3333.7z (2018/05/30)
https://forum.doom9.org/showthread.php?p=1843162#post1843162 QTGMC v3.358sで、プリセットをVery SlowかPlaceboにすると、画面暗くならない? と思ったら、v3.362sだった・・・
英語版Wikiにはv3.358s以降更新されていないからこうなる・・・ >>932
以前試したけど、BCSの下部のうねうねは消えなかったよ >>940
そうなのですね
32bitが+MT、64bitがNeo なので
無理なものは32bitでやるしかないですかね
あれこれ言っても主力はAmatsukazeで、
自分が勝手にNeoを単体で使ってるだけなので・・・ avsからUtvideoのaviを出力したいんだけど、avs2aviを使う以外の方法ある? >>942
virtualdubで出来るよ。
x64かx86をavisynthと同じ物を使えば大丈夫。
詳しくはwebで! 見落としてた・・・
>>793-794にffmpegでもできるって書いてあったわ >>944
Neo(+KFM)+ffmepgで試したらできた
AVSを経由するのは高品質Deintするため?まだよくわかってない >>956
>AVSを経由するのは高品質Deintするため?
GPUに長時間負担をかけないようにするため
まずはKTGMCでBOB化して、その後NVEncでエンコ
480i素材をMPEG2Sourceで読み込んで、OnCPU(2).KTGMC(Preset="Slower", tr2=2, SourceMatch=3, Lossless=2).OnCUDA(2)でやったら、ほぼ実時間でエンコ完了 低画質で0.5倍速な動画をAviUtl使って倍速エンコすると実用的なのは解りましたが、
元動画が高画質だと逆に劣化して容量も増えるどころか1/3位に減ってます。
容量は増えて良いのでお勧めの設定とかってありますか?
ちなみに上記の劣化は拡張x264GuiExの「高画質」って設定で書き出した結果です。
あと、AviUtlのこの方法で書き出したファイルは
再編集の為に読み込むと灰色画面となって失敗するのは仕様ですか? 今頃BCSとかCullResizeとか
何してるんだか気になって眠れない 基本的なことなんですけど
v = LSMASHVideoSource( "xxxxx.mp4")
a = LWLibavAudioSource( "xxxxx.mp4 = 1 )
a2 = LWLibavAudioSource( "xxxxx.mp4", stream_index = 2 )
Audiodub(v, a, a2)
とかしたら、さすがに引数のエラーが出るのですが
一つのビデオクリップと複数のオーディオクリップを
合わせるにはどうすればいいのでしょうか。 a = LWLibavAudioSource( "xxxxx.mp4 = 1 )
じゃなくて
a = LWLibavAudioSource( "xxxxx.mp4", stream_index = 1 ) >>951
合わせる=主副2つの音声ストリームを合成するって意味なら
Audiodub(v, Mixaudio(a, a2))
そうではなく独立して取り扱いたいけど2度手間が嫌という事なら
(条件式) ? Audiodub(v, a) : Audiodub(v, a2)
とか。条件式にGetProgramName()などを使うと、
avs2pipemod_sub.exe等リネームしたバイナリでは副音声が出せたりと便利だったりする >>953
ありがとうござます。
しかしそうではなく、音声の2ストリームをmuxした状態で扱いたいのです。
最初からmuxされた音声はそのままでいいのです。
それならVirtualdub2でで直接読み込めばいいじゃないかと、言われるのですが
PGSのBD字幕を直接読み込みたいので、Avisynthを使ってSupTitleという
プラグインを使いたいのです。
更にできれば、ソフトサブにしたいのですが
SupTitle("xxxx.sup")
などとするとハードサブで出力されますね。
(PGSやVOBSUBなどの画像形式でも字幕のオンオフができればソフトサブと認識していますが間違いでしょうか。)
PGSをidx+subに変換してVSFilterを使って追加で読み込みをさせるしか方法はないのでしょうか。
Mixaudio面白いですね。使う機会があるかもしれません。 コンテナにごちゃごちゃパッキングしたいのなら、パッキングツールでやるのが簡単じゃね? >>954
それならAudiodub(v, MergeChannels(a, a2))とすればchが追加されていく
例えばステレオ音声の場合a2はクリップのch3〜。ただ、こういうやり方をしても意味は無いような…
>>955の言うようにMuxingツールの領分なので
条件分けして主・副等で出力し、最終的にコンテナに追加していくのがセオリーだと思う
idx+subならmp4boxを使ってmp4コンテナに入れられるよ。Supのままだと、ん〜mkvは対応してたっけ? >>955
>>956
字幕を入れたまま画像を見ながら切り貼りしたいので単にmp4boxなどでマージするのはきついと
思っています。 ああ、条件分けして別々に出力してからですね。
考えてみます。 精度の良い逆テレシネプラグイン・関数ってないかな?
DoubleWeaveとSelectEveryの組み合わせが一番良いんだけど面倒臭くて・・・
あとCMとの境目で本編とCMがフィールドがブレンドされた映像にも悩まされてる・・・ >>960
そんな質問をする時点で人生損してる
逆テレシネにこだわるのなんてやめた方が絶対幸せだよ >>960
逆テレシネに絶対はない
こだわるだけ無駄だから諦めて円盤買え >>960
AutoVFRが鉄板
geforce積んでるならamatsukazeもいい autoVFRは自動でDoubleWeaveとSelectEveryしてくれるようなものだから画質も良く軽い
質問者はワッチョイ隠してるけど、これは釣られたのか? AutoVFRよりDupMC2Defの方が好きだったな
懐かしい 自分も最初はDupMC2Defを使ってたな
理由は忘れたけどAutoVFRに移行して
もう5、6年ぐらいお世話になってるはず amatsukazeって、テレシネ周期解析できたっけ?
できるならどうやるんだろうか? neo r2822で試したけど、dupmc2defはdefupが読み込んでくれず、autovfrはI don’t know what “result” meansだらけで使い物にならず…
neoで正常に周期解析ができてる人いない? neoでやるにはavsを一部書き直す必要があるらしい(調べたら出てくると思う)
first passはx86版(無印とかplus)でやったほうが手っ取り早いかと >>968
KFMDeintなんてものが存在しているんだから
できるんじゃないの? >>960
こういうやつでしょ
https://light.dotup.org/uploda/light.dotup.org596420.png
編集中は間違いなくカットしたはずなのに
エンコし終わった動画見たら、本編とCMの境目に1フレームだけCMが残ってるっていう
俺も悩まされたけど
このブレンドフレームは、AvsP のプレビューだと正常なフレームに表示されてしまうのが原因みたい
だから、CMカットだけは AviUtl に読み込ませて確認してる
AviUtl だと、ブレンドフレームが正しく混ざった状態で表示されるので >>960
自動24fps系でいいならTIVTC24P6()が縞とかその辺に強かった気がする
ppを変数化してデフォルトを7に変えて使ってるけどね
AutoVFRもいいけどパラメータ設定が甘いせいか結構周期変化直後の誤爆がおおいので
自動化に組み込む人のパラメータどうなってるんだと思いながらやっているなー あとCM前後のやつは局によっても長さまちまちになることもあるんだしとばっさりカット
どうしても使いたいなら範囲指&片フィールド倍化して使えばいいんじゃ? MPEG2DecPlus
VS2019でもビルドできるように修正されてた
ちなみにTMM2もTMM2.hに、
#include <stdexcept>
の追加が必要 TDeintの64bit版で新しい奴は、JoshyDの奴しかないんだよな・・・
なので、TIVTC24P6はyadifmod2を使うように改造してやった animeivtcのmode=3は重すぎる
容量は増えるけどKTGMCでBob化したほうが何倍も早い bobなぁ・・
個人的にはbob化してエンコードするぐらいなら
x264でインタレ維持エンコードしたほうがいいと思う animeivtcのmode=3って中身は QTGMC().TDecimate(1,3,5) だぞ >>984のURLはコレ
http://hayateppp.blog.fc2.com/ブログ-entry-1.html
↑ブログの部分をblogに修正してね OnCPU(2)
KMergeStatic(KTGMC(Preset="Slower", TR2=2, SourceMatch=3, Lossless=2), last, KAnalyzeStatic(last))
OnCUDA(2)
TDecimate(1, 3, 5)
高速化できないかなと思って↑をやったら、フリーズした TDecimate使うぐらいなら
bob化したままエンコードしたほうがマシ >>986
報告ありがとー。直した。avisynth.dll更新して
↓これで23fpsくらい出てた
SetMemoryMax(3000,type=DEV_TYPE_CUDA)
ColorBarsHD(1920,1080).ConvertToYUV420(true).AssumeFPS("ntsc_video")
OnCPU(2)
KMergeStatic(KTGMC(Preset="Slower", TR2=2, SourceMatch=3, Lossless=2), last, KAnalyzeStatic(last))
OnCUDA(2)
TDecimate(1, 3, 5) このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 837日 20時間 1分 10秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。