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/ w3difなどでbob化してるだけじゃね
ま、avisynthだとyadifmod2、TDeintで妥協するか、QTGMCで画質を追い求めるかの二択だから
その隙間は欲しいところではある D3DVP、CPU負荷は大きく減って大助かりだがあまり高画質とは思えんかったな。
他フィルタとの相性も微妙だし、Avisynth+でしか使えないのも不便 Avisynth+にせずに、Avisynthにとどまる理由というかメリットってなんだろ。 エンコ時間がかかるかもしれないが現状環境が安定していればそのまま安定でいける
入れ替えた場合のプラグイン相性や動作確認などで消費するであろう手間と時間がかからない
ハードウェアのドライバとかもそうだけど安定動作を求めるなら下手に更新しないのも手
時間が取れない場合は特にね
もちろん問題があってだましだまし使ってる場合は別だけどさ Avisynth+ r1576からpinterf版に更新したらTDeintでTMM使うとエラー出て使えなかったから今もr1576使ってるわ chikuzenさんが書き直してTMM2に転生したから、そっち使うといいと思う
ちなみにplus r2000あたりで互換性が無くなってるからr1576じゃ使えないと思うけど
>>595
互換性かな
ハードがSSE止まりとかあんまり重い処理しないとかなら無印のほうが安全だと思う 古い環境で安定してて満足してるならそのまま使うのは全然いいけど、
新しい機能やフィルタが使えないことに文句言うなってのはあるな
古いバージョンなんて誰もメンテしないし、開発者からしたら
新旧の両方に対応するのは、作業が増えて面倒になるだけ ちゃんと動作する_gpu25.dllのx64版があれば
avisynth+やavisynth64やavisynth3へスグにでも乗り換えるのに。
QTGMCとかWarpsharpとかfft3dgpuとか重めのフィルタもスイスイ動かせる
PrefetchAndCache()が重宝するからなかなか_gpu25.dllを卒業できない。 32bitはAviSynth
64bitはAviSynth+
って環境にしよう 32bitは最適化した自ビルドのAvisynthMT
64bitはAvisynthPlus Neoだな
32bitはAviUtlと組み合わせて使うときぐらいだけになってきた
でも遅くはない。ThreadRequeastとITSが安定して動くし 皆さんMT処理って何使ってるんです?
PCを2700Xに入れ替えたもののCPU使い切れなかったり使い切れないまま落ちたりでうまくいかなく... AVSは全体的なCPU負荷はせいぜい25%ぐらいで抑えたほうが複数エンコさせたときにいろいろ捗る。 >>603
32bit版AVSはThreadRequestだなぁ
デフォルトパラの10倍以上の数値入れると速い
MTは使わない
64bit版Plusはprefetchおまかせ
フィルタはみんな最適化自ビルドしてる plusのMT版はx86もx64もQTGMC・txt60mcHybridもすさまじく重くなる
少し前に出た人じゃないけどr1576(x86)使ったほうが速度はマシでThreadRequest入れてる
60iテロップが無ければMT版入れられるんだけど・・・ Neoじゃないやつはprefetch1つしか書けないからね・・・ _gpu25のやつは何個でも、フィルタごとにprefetchを割り当てれる。
追加個数が大漁に増えてもGPUへの負荷は微々たる量だし
x86でしか使えないから、avisynth.dll内で取り扱えるメモリアロケーションの上限がだいぶ厳しいけど >>602
なるほど、そういう住みわけも有りなのね
plusの64bit版はなんかのバグで結局使ってないや(確認したらawarpsharp.dllでエラー出るって書いてた
>>606
自分の場合はQTGMCのセットアップが簡単になっただけで値千金に思える
無印(というかSE't氏版MT)では相性だかなんだかでちゃんと動かないことが多かった 32bitAVSでThreadRequest使うときは
終始SetMTMode(5,1)だな
一番安定する 昔のアナログテレビっぽい感じを出したくて
地デジのソースを
crop( 180 ,0 , -180 ,-0)
AddGrain(23)
ReduceBy2()
AddGrain(23)
ReduceBy2()
blackmanresize(720,480)
とかやってみたんですけど、
ゴーストや縞模様や垂直同期ずれみたいなのって再現する方法ってありますか? >>611
ゴーストはLGhost使えばいんじゃね? 110CSの某番組をLWLibavVideoSourceで読み込んだらフレーム数が少ないんだけどなんで?
repeatフラグはtrueでソースにドロップはない。 >>613
それ、俺もなるは
popさんのL-SMASH Works r935 release2なんなんだけど
サンプルを提供するにしても旧verでの挙動を確かめてからのほうがいんだろかって考えたら
めんどくさくて元のDGIndexに戻っちゃった >>611
古いプラグインだけど、VirtualDubのOldCinema Filterってのがそのまんま使える気がする
LoadVirtualDubPlugin()で読み込めばsynthで使える
ゴーストはovelayで座標ずらしたクリップを透過率x%で重ねてしまうのはどうだろ >>613
MurdocCutterで頭少し切ってやると、ちゃんとならない?
たまにその症状になるけど、これで大丈夫なケースが多かった いろいろアドバイス頂いて
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 ■ このスレッドは過去ログ倉庫に格納されています