Avisynth 初心者質問スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Avisynthの初心者質問スレです
・質問する前に
1.まずは、過去ログを読むか検索エンジンなどを使って調べましょう
2.次に同じような質問がないかCtrl+Fでスレッド内を検索しましょう
・VapourSynthの話題はできるだけ専用のスレでお願いします
・荒らし・煽りは綺麗にスルーしましょう
■前スレ
Avisynth 初心者質問スレ Part8
http://echo.2ch.net/test/read.cgi/avi/1463062591/
■関連スレ
・Avisynthを絶讃ιょぅょ Part32
http://echo.2ch.net/test/read.cgi/avi/1486535501/
・お前らのショボイAvisynthスクリプト貼ってください part4
http://echo.2ch.net/test/read.cgi/avi/1486693045/
・VapourSynth Part2
http://echo.2ch.net/test/read.cgi/avi/1488452387/
■外部リンク
・Avisynth wiki(英語)
http://avisynth.nl/index.php/Main_Page
・avisynth.info (旧 AviSynth Wiki、日本語)
http://www.avisynth.info/
・AviSynth ニュース
http://news.avisynth.info/ いろいろアドバイス頂いて
https://imgur.com/a/PHjSUn8
上がオリジナル
下が以下のスクリプトを書いた結果です。
crop( 180 ,0 , -180 ,-0)
ReduceBy2()
LGhost(1, 10, 30,1, 40, 50)
ReduceBy2()
NoiseGenerator( Gaussian = true ,Amount = 40 ,LumaOnly = false )
blackmanresize(720,540)
LoadVirtualDubPlugin("C:\vdub\msu_oldcinema_20.vdf","MSU_Oldcinema",0)
ConvertToRGB32()
MSU_Oldcinema(247, 223, 181, 0, 1, 10, 10, 15, 70, 3, 20, 5, 50, 150, 0, 3, 100)
ConvertToYV12()
ソースはフリーオ買って最初に取った10年前の地デジソースです。
画角が4:3にぴったりだったんで使ってみました。
ゴーストが出てるとアナログって感じがしますね サムネじゃ判らなさそうなので
http://k.pd.kzho.net/1540564353115.jpg
こんな感じです。
プラグインを教えて頂きありがとうございます。 つーか、なぜ事故の映像を選んだ?
なんども事故の映像みせられてもグロ扱いされるだけだろうに。 >>624
死体が写ってる訳でもないのにグロ扱いしなさんな。
地デジ化前で画角4:3に適した映像でテロップの黒抜きがある方がゴーストが判りやすいからだけど? 質問です
AssumeTFF()、AssumeBFF()は必ずいけなくてはいけないのでしょうか?(今までは入れていなかった)
周期は合わせているのに縞が出まくります
出たのはBS11のエロマンガ先生 #04、#05、ゴブリンスレイヤー #04です(それまでは出ていない)
先週のソードアート・オンライン アリシゼーション #04は問題なしです
AviSynth+r1576(x86)、L-SMASH Works r1474(修正版?)、DGIndexで確認しましたが変化無しです
ご教示お願いします >>627 追記
触った範囲ではBSフジ、地上波(TBS)はAssumeTFF()が無くても問題なし
該当のBS11もAssumeTFF()をつければ問題なしです
他の局はまだ触っていません Assumeなんとかは表記しなければ自動なんじゃなかったっけ
自動でミスったら嫌だから自分で調べて合うのを表記するんじゃないの 付けなくていいよRFFで途中で変わったりするとトラブルの元になるだけ
dgindexだと作られるファイルの中に書いてあるからRFFでも無指定でなんの問題も無いし function getParity2(clip c,int "f"){
c
f=default(f,0)
gp=getParity()?true:false
(f==2)?((gp)? AssumeTFF().SeparateFields() : AssumeBFF().SeparateFields())
\:(f==3)?((gp)? AssumeTFF().ComplementParity().SeparateFields() : AssumeBFF().ComplementParity().SeparateFields())
\:((gp)?AssumeTFF() : AssumeBFF())
return last
}
テキトウに。 あ、記述間違え
L-SMASH Worksはr935 release2です >>627
付けないと問題があって付けると解決するなら付ければいい
どんなavsなのか全部見てみたい感じもある >>633
TSFilePath1=InputPath + "ゴブリンスレイヤー04.ts"
V1=LWLibavVideoSource(TSFilePath1, cache=true, stream_index=-1, repeat=true, threads=0).AssumeFPS(30000,1001)
A1=LWLibavAudioSource(TSFilePath1, stream_index=1, av_sync=true, layout="stereo")
AudioDub(V1,A1)
#AssumeTFF()
T1=43
T2=5196
T3=6996
T4=25186
T5=26986
T6=46345
T7=48145
T8=48593
Trim(T1,T2)++Trim(T3,T4)++Trim(T5,T6)++Trim(T7,T8)
Its(def=InputPath + "ゴブリンスレイヤー04.def", fps=-1, chapter=InputPath + "chapter.txt", output=InputPath + "timecode_v2.txt") ロゴとかは省略で
defファイルも省略しましたが解除は
putin999氏の早見表を参照
(何かNGワードになったようです) avsファイルとdefファイルを2senのロダに借りうpすればよかったんじゃね? なんだかんだでAssumeTFF()関係なしの周期変化に対応できてないだけじゃねーの?
Autovfrなどの周期検出設定煮詰めないでそのまま使えばそりゃ縞になるだろう
まあ煮詰めてもだめなときはだめだろうけどさ
参考程度に使って目視確認でおかしかったら自力で調整しないと
あとフレームレートスレとかも見ていたほうがいいとおもうぞ Vinverseはブレンド解除みたいなかんじだから
普通にtivtcで縞があったらtdeintみたいな簡単なのでいいと思う(というか自分はそうしてる >>627
L-SMASH WorksがBFFを返すのって↓これじゃない?
https://pop.4-bit.jp/?p=8519#comment-896
> デフォルトのffmpegではMPEG-2 Videoのフィールド適応ピクチャーのフィールドオーダーが強制的にBFFとして扱われてしまいます。
RFFが使われてなければTFFで問題ないと思うからAssumeTFF()はいつも付けておけばいいと思う
RFFがあると本当にBFFになっていることがあるから、LWLibavVideoSourceにdominance=1を追加して、
強制的にTFFを返すようにしておけばOK >>641
BS11ではRFFはないはずだから当面はAssumeTFF()をつければいいということですね
ありがとうございます あーそっか
このバグでBFFって認識されたフレームでdominance=1指定するとフィールドオーダー狂うから指定しないほうが良いか
本当はパッチ当てたLSWでdominance=1 + AssumeTFF()が一番良いんだろうけど >>634
そのAVSだとdrop箇所があった場合その箇所を起点に豪快に音ズレしそうな気がするな。 avs作る前にdropのチェックは先に行うと思うけど
dropしてたらその時考える、一例だけど今年の台風(何号かは忘れたけど土曜深夜〜日曜朝だった)でdropして複数番組を諦めた
dropっていうレベルじゃなかったけどね というかdropによる音ズレにまともに対応できるプラグインがない Dropの音ズレはFAAD改造版0.7のTS読みで
-Fオプションの「〜のエラーフレームを無音」を指定テンコ盛りにすると結構頑張ってくれるw
※完璧とは言っていない dropがあるファイルはmpeg2repairで修復してたけど、マイナーな手法なのかな? >>648
昔2senに上がってた改造版DGIndexが吐き出すd2v+aacを使って
DGDecodeさせて、DelayTimeを正しく設定できていれば
本来あるはずの音ズレは別の世界線に逃げていく。
ただしTS以外の音ズレは対処できないのが残念。
最初からVirtualDubでAvs読み込んでエンコすれば音ズレとか気にしなくていいんだけどな 大雨の影響でBS30分番組中25分くらいdropした番組はどうやっても修復できなかった それはよくある。
そういう場合、EIT情報だけエクスポートして、TSは消してるな。 >>567
遅レスなんだが、参考にさせてもらたよthx AviSynthplusのPrefetch(n)っていうのはMTの開始
例:SetFilterMTMode("DEFAULT_MT_MODE", MT_SERIALIZED)
とセットでいいのでしょうか?(SetFilterMTModeがないとエラー?)
初歩的な質問ですみません Prefetchはそれより上をマルチスレッド化する関数
DEFAULT_MT_MODE設定しなくてもデフォでMT_MULTI_INSTANCEになってるから、SetFilterMTModeなくても動く
SetFilterMTModeは文字通りフィルタ個別やデフォルトのMTモード設定するための関数 指定した色のピクセル数を数える方法はないでしょうか?
Overlay(v1,v2,mode="difference")で差分が一定以上あるところのみ自動で抜き出したいと考えています LumaDifferenceとか使えばできんじゃね >>652
昔のエロビモザイクと同じだな
無いものは無い Neoのインストール版があったら便利と思っちゃうのは自分だけ?(ただの我侭とも言う) Avisynth.dllからして
Neo+AVXxで最適化ビルドしたものにどうせ差し替えるから
今のインストーラーで十分だし・・・
SSE2最適化のNeoとか同梱されててもいらんなぁ 大抵、自分でビルドするより
配布元もバイナリのほうが早いから自ビルドなんてしない >>663
それが明示されてるならそうするけど・・・ >>663
自分もビルドできない
古いPCのままだからAVXxも無い(SSE4.1までしかない、一応i7ではあるけど・・・) AVXnに対応したCPUが載らないマザーは
PCIeのバスも貧弱そうだし、大したGPUも載らなそう
つまり、Neo使う意味あまりなさそう・・・ x264afsと言うのが、avisynth用のafsと聞いたのですが
使い方がよくわかりません
afsのパラメータ設定ができたり、
タイムコードを吐いてくれるのでしょうか? AVIUTLのafsって逆テレシネでしか使ってなかったけど
Avisynthに移行してからいくつもある自動逆テレシネスクリプトから
好みの奴使うようになってからぜんぜん気にならなくなったな
アナログ時代ならともかく今のデジタル物ならいらない気がするがどうなんだろう いらないじゃ言い方が悪すぎるな
選択肢の一つとしてあるけど他に好みのがあるから
使う機会はいまのところ無いかなって感じか 今でも優秀
放送波な実写映画はafs、円盤ソースならavisynthが良好 x264afsのafsはパラメータ設定できるものなのですか?
使い方のドキュメントも見つけられず… itsを使ってvfrエンコをしたいのですが
・メイン処理部分
its文
共通処理
・24fps処理の関数部分
24fps処理
・60fps処理の関数部分
60fps処理
という流れのavsを書いてます。
今回共通処理部分に24fps処理を行った場合、60fps処理を行った場合
それぞれに違う処理を行おうと変数にそれぞれ違う値をセットして
if文で分岐させようとしているのですが上手く動作せずに悩んでいます。
こんな感じで
・メイン処理部分
global syori = 0
its文
共通処理
if (syori == 1) {
処理1
} else {
処理2
}
・24fps処理の関数部分
24fps処理
syori = 1
return last
・60fps処理の関数部分
60fps処理
syori = 2
return last
ここでdefで指定した範囲の60fps処理部分で変数syoriに2が入らずに処理1に分岐してしまってます。
どなたかどこがおかしいか指摘頂けないでしょうか
avisynth+2728
を使っています。 itsの後に共通処理関数を走らせようとしてるけどうまくいかないってことでいいんだよね?
global変数はフレームごとに割り当てられるんじゃなくて全フレーム共用だから
itsの中身が 24→60→24 だったらsyoriは全フレーム1になるし、24→60なら 全フレーム2になると思う
なので分岐されない
itsの中で共通処理関数もやるようにすれば想定の動作になると思われる ありがとうございました。
そういう事だったんですね。
本当にありがとうございました。 指定したピクセルの情報を取得する方法を教えて下さい
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分のフレームしかないんだけど。
なんか、俺の日記みたいな書き込みばっかりで、ごめん。 ■ このスレッドは過去ログ倉庫に格納されています