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/ なんだかんだで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分のフレームしかないんだけど。
なんか、俺の日記みたいな書き込みばっかりで、ごめん。 >>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でいいと思うけど ■ このスレッドは過去ログ倉庫に格納されています