Avisynth 初心者質問スレ Part9 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ Avisynth+上で64bitエンコーダーを使用した場合
pluginはすべて64bitで揃える必要がありますか? 当然そうなる
全部64bitのプラグインで揃えられない時(どうしても使用したい32bitのプラグインがある場合)は
中間ファイル等を出力して32bit/64bitを切り替えながらやるしかない、と思う
俺は中間ファイル派だけど他のやり方があるのかもしれん MP_pipelineを使うとどうとか読んだ気はするけど
億劫で試したことない pipeline処理するツールはなん種類かある
x86とx64じゃプラグインが重いほど差が出るからどうにかしてx64プラグイン見つけるかソースあるなら自分でビルドするか他のプラグインで処理するかした方がいい レスありがとうございます
やっぱり64bitで揃えないといけなかったんですね
使いたいpluginに64bitでは揃えられないものがあるので諦めます すみません やはり再度質問させてください
Its.dllの64bitバージョンは存在しないのでしょうか?
それと
RemoveGrainHD.dllにRepairSSE3.dllは内包されている
mt_masktools-26.dllの現在の名称はmasktools2.dll
であっているのでしょうか・・・
解答よろしくお願いします ttps://github.com/nekopanda/Its/releases >>313
pinterf氏のRgToolとMaskTool2でいいんじゃね? >>314
ありがとうございます 一応Itsが動くようになりました
>>315
RemoveGrainとRepairの64bitは無事見つかりました
MaskTool2も大丈夫でした
その後NNEDI3の問題が発生し 一応解決したのですが
今度はNVEncC64が強制終了食らって身動きできなくなりました
恐らくQTGMC関連だと思うのですが 原因が特定できないので 完全な64bit化は断念します
動く範囲でエンコード速度を見ていたところ32bitのときとさほど変化がなかったのも断念する原因です
ただAutoVFRで解析するためのエンコードだけは Avisynth+に変更しただけでエンコード速度が1.4倍ほどあがったので
これだけでも価値はあったかなと思っています
皆さんアドバイスいただきありがとうございました >>317
ありがとうございます そこはすでにチェック済みでした mpeg2を読み込む際にRGBモードにできませんか?
(DVD2AVIとMPEG2DECを使用したが希望の結果は得られなかった)
シネマクラフトエンコーダーで直接MPEG2を読むのが目的です。 色空間の拡張は自動で行われるの?
いわゆるTV階調(16-236)からRGB階調(0-256)へ RGBが必要って珍しいね
RGBで圧縮するコーデックなのかなぁ シネマクラフトエンコーダーって15年以上前のMPEG2エンコーダーだよな・・・?
(シリーズ自体はその後もひっそり続いてるようだが・・・)
いまどき使うもんじゃないし、正規品を持ってたor買ったとも思えないし、
古い記事を見た狂気の割れユーザなのか、タイムスリップしてきたのか・・・ >>324
そうだよね、オワコンってやつだよね。。 >>319
https://ameblo.jp/tenshoku-gokui/entry-12265148335.html
前にここで紹介されてたけど、シネクラなんて使うより、avisynth+hcencの方が断然綺麗にダウンコンバートできるよ。 ありがとうございました。
ConvertToRGBを試しています。("BT601"とかオプションを付けたらそれらしい結果になった)
そもそも何がしたいかと言うと、フルスケールのMPEG2動画をTV階調(16-236)に直したいのです。
CCEは試用版で試しています。
CCEは直接読めないので、aviutl+mpeg2プラグインで読んで、avi(haffyuv)で書き出してから読むとか考えましたが、
結構な時間と大容量が必要なので、いい方法はないものか?という所です。
hcencはDVDforgerっていうので使ったことありますが、うちでは非常に遅いので難しいです。 >>327
手軽に綺麗に変換したいなら、あまり知られてないようだが、DVDfabの動画変換がけっこう高速かつ高画質。
cceはかなりぼやけた画像になりますよ >>328
ありがとうございます。残念ながら目的の変換はできませんでしたが。
cceでぼけるのはリサイズした時でしょうかね。入力がSD解像度では全然ぼやけません。 >>329
そうです、そうです。
ダウンコンバート(リサイズ)を伴わないのであれば、m2v専用高速エンコーダとしてcceはありだと思います。 >>327
元ソースが何であれ、avisynthのl-smashで読ませ、hcencでm2vに書き出す方法ではダメなのでしょうか?
わざわざaviという中間ファイルも不要です。
dvdforgerでhcencを選択するのではなく、hcencgui単体で使用します。
cceと遜色ないくらい高速だと思うのですが。。 avsスクリプト内の任意の変数が未定義か定義済みか検出する方法を教えてください
(エラー出力でmeansエラーが表示されるケースです)
現在は、
blankclip()
#test=true
try {
(test) ? nop : nop
} catch (err) {
test=false
}
(test) ? subtitle("true") : subtitle("false")
と言った形で未定義時のエラーを拾っているのですが、真/偽以外の数値やクリップの場合もエラー判定されしまい上手くいきません
string()で囲ってしまえば回避可能ですが綺麗な形ではない気がして…よろしくお願いします Avisynth+環境でQTGMC(wikiでdownloadした最新版)を使用時に
VirtualDUB32bitやAviutlなどの32bit環境だと
”System exception-integer Divide by Zero (0除算エラー?)
c:/省略/QTGMC.avsi,line 918
c:/省略/QTGMC.avsi,line 473”
が出てしまいます。
VirtualDUB64bitやx264_64bitでは問題ありません。
これはなにが原因なのでしょうか? 続報です
>>334で使用したスクリプトは
Setmemorymax(2048)
aviSource("test1.avi")
Deint24
Prefetch(8) #コメントアウトしても同じ
return last
ですが
読み込みファイルを
video=LWLibavVideoSource("test01.mp4")
audio=LWLibavAudioSource("test01.mp4")
AudioDub(video,audio )
や
videoDGSource("D:\j\rupin_hen\03.dgi")
audio=wavSource("D:\j\rupin_hen\03.wav")
AudioDub(video,audio )
ならば問題なく入出力できました
元のtest1.aviはUt_video+PCMでしたので
これをHuffyuv_mt+PCMに変えましたがゼロ除算エラーが出ました。
なぜ入力がAVIでフロントエンドが32bitのときだけエラーになるのでしょう? >>334
etMemoryMaxは要らないと思うけど
とりあえずQTGMC.avsiの918行目と473行目をを見てみては 918 diff = mt_makediff(Ref, Input, U=3,V=3 )
473 repair0 = (IsClip(srchClip) || Rep0 == 0) ? binomial0 : binomial0.QTGMC_KeepOnlyBobShimmerFixes( bobbed, Rep0, (RepChroma && ChromaMotion) )
918などどうして除算エラーになりえるのかもわかりません あ、そうそう肝心なことを書き忘れたけど、「wikiの最新版」じゃなくバージョンを書いたほうがいいのと
プラグインをAvisynth+用に書き直されたものを使ってるのか(Rgtoolsとかmasktools2とか)も書いた(&試した)ほうがいいよ
それとavisynth+のバージョンも
とりあえず
aviSource("test1.avi")
QTGMC()
Prefetch(8) #コメントアウトしても同じ
return last
で試してから周辺環境を見直してみてはどうだろう Avisynth+自体がr2636に更新されましたので差し替えました
QTGMCのver.3.357です
QTGMC使用dll
http://avisynth.nl/index.php/QTGMCにあるCore Plugins and scriptsとOptional Plugins and Scriptsのdllは
AviSynth+ x64 plugins
http://avisynth.nl/index.php/AviSynth%2B_x64_plugins
にあるものを使用しています
そして
aviSource("test1.avi")
QTGMC()
Prefetch(8) #コメントアウトしても同じ
return last
としてもやはり同じエラーです
なお今回の症状で当方は特に困っているわけではありません
前記の通りAVIsourceを回避したりそもそも64bitアプリだけ使うならエラーが起きていないからです
ただ単に「32bit環境で内部関数であるAVIsource使用時のみ起こりうるエラー」というのが不可解なので質問してみました 自分もそんなに詳しい人間じゃないけど
AVISourceの直後にinfo()書いて見る
変な色空間で読み込まれていたら処理出来ないかも? >>331
l-smashを調べてやってみましたが、動きませんでした。(古い環境なので…)
MPEG-2 VIDEO VFAPI Plug-Inを使った方がファイル指定が簡単なんですが、異常なmpgファイルが出来上がりました。kmplayer等では正常再生せず。
hcencですが、コントラストの弱いディテールが潰れぎみです。DC精度10ビットにしても変わらず。
量子化マトリクスで調整できるんでしょうか。 またAvisynthPlus+CUDA(64bit)環境作るぞ
半年前ぐらいはあんまりキチンと動いてくれなかったけど
そろそろ安定したでしょうか >>342
もし差し支えなければ、その元動画ファイルの一部でもいいので、アップしていただければ、こちらでm2vに変換してみますが。。
ちなみにマトリクスはavamat6を使用しています。 avsを読み込める動画プレイヤーってGOM Player以外にあるのでしょうか?
AvsPmodだと音声が出力されないので 手動でカットする位置を決める際に分かり辛い場面があるので質問してみました >>346
警告が出て コーデックかフィルタがインストールされていない可能性があると言われます
tsファイルをL smash worksで読み込みさせていて AvsPmodで動画自体は再生されているので
コーデックが入っていないということはないと思うのですが・・・
ちなみにavsの中身はこんな感じです
TSFilePath="tsファイルへのパス"
LWLibavVideoSource(TSFilePath, repeat=true, dominance=0)
AudioDub(last, LWLibavAudioSource(TSFilePath, stream_index=1, av_sync=true, layout="stereo"))
MPCはx86 x64両方試しましたがダメでした
試しにDirectShowでも読み込ませてみましたがすぐMPCが強制終了してしまいます
何が足りないのでしょうか・・・ >>344
動画はTV番組録画ものですが、どうなんだろう。
あまり良いサンプルとは思えないので、とりあえず静止画を切り出しました。
http://uploader.skr.jp/src/up10300.jpg
hcencは単体の新しい0.28です。ColorYUV(PC->TV)をかけたので薄くなってます。
茶色い洋服の模様がCCEでは残っていますが、HCencは消えています。
量子化マトリックスとかいじってみましたが、変化は感じませんでした。(レートは6Mbps位)
まあビットレートを10Mとかやたら上げれば潰れも少なくなったけど… 👀
Rock54: Caution(BBR-MD5:253fc2aa556f23fd380715eaf660424e) >>348
あー 確かにそうですね なんで気づかなかったんだろう >>347
MPCといっても、BEの方の内臓フィルタ(スプリッタ)にはAvisynthの項目がないっぽい。
LAV Filtersを入れて優先設定するか、HCを使えば普通に再生できると思う。
まあ>>348の言うとおりAviUtlの方がよさそうだけど。 >>351
レスありがとうございます
MPC-HCを使ってLAV Filtersも入れたんですがやはり再生されませんでした
おとなしくaviutl使います >>352
解決しちゃったっぽいが
convertToYUY2()
が足りないんだと思う >>352
どれも最新にしてMPC側でLAVの各フィルタの優先登録もしたのかな?
それでもダメとなると、変な設定してるか、変なフィルタが邪魔してるくらいしか思いつかないや。
>>353
それは関係ない。 >>353さんの方法で無事動画が再生されました
長時間にわたりレスしていただきありがとうございます これでGOMプレイヤーとおさらばできます んん・・・?なんだそれ。普通ならYV12(I420)も再生できるはずだが・・・。
I420だけ何かが阻害してるとかなのかな。まあ解決したならいいか。
いまいち釈然としないけど、>>353は関係ないとか言ってすまんかった。 L-SMASH-Works絡みです
・L-SMASH-Works-r929-20170225-32bitやL-SMASH-Works-r929-20170224-64bit
・LSMASHSource-AviSynth-plugin-r929-msvc-64bitやLSMASHSource-AviSynth-plugin-r929-msvc-32bit
の違いってありますか?
フレームレートスレで出たL-SMASH-Works-r929-ffmpeg-fix2は後者だと思いますが前者はバグは無いのでしょうか? >>357
普通そういうのはURLも書くもんだと思うが・・・まあAvisynth Wikiのとこなんだろうが根本的に勘違いしてる。
バグ
・ffmpegのfield picture structure関連のバグ。最近のBSのTSデコードで映像が崩れることがあるというもの。
今年2月上旬にffmpeg本家にnekopanda氏のパッチが入ったので、
その後のffmpegをリンクしてビルドしたL-SMASH Worksを使えば問題ない。
Avisynth wiki: http://avisynth.nl/index.php/LSMASHSource
・L-SMASH-Works-r***〜は、Avisynth用がSharedビルド(?)で、AviUtl用とVapoursynth用も含む。
・LSMASHSource-AviSynth-plugin-r***〜は、Avisynth用のみ。Staticビルド。
・ffmpegのパッチはOpus関連で1つ当ててるようだが、それ以外は不明。
・r929は昨年2月にビルドしたものなので、当然上記のバグは修正されていない。
・VS2015ビルド
フレームレートスレで出たnekopanda氏版: https://github.com/nekopanda/FFmpeg/releases
・Avisynth用とAviUtl用。
・ffmpegは3.4に上記のバグ修正パッチを当てたもの。
・MSYS2/GCCビルド >>358
内容が同じなら書かなかったのですが・・・例えばx86で比較すると(AviSynth用)
L-SMASH-Works-r929-20170225-32bit
・avcodec-57.dll (10.3MB)
・avformat-57.dll (1.59MB)
・avresample-3.dll (147kb)
・avutil-55.dll (653kb)
・LSMASHSource.dll (524kb)
・swscale-4.dll (496kb)
LSMASHSource-AviSynth-plugin-r929-msvc-32bit
・LSMASHSource.dll (9.36MB)
L-SMASH-Works-r929-ffmpeg-fix2
・LSMASHSource.dll (11.3MB)
自分は前者しか使ってなかったのでこの容量の違いから後者の差し替えかな、と単純に思ったわけです
細かくご教示ありがとうございます >>359
ファイル構成が違うのは、ビルド時の設定で、staticリンクしてるか、dynamicリンクしてるかの違い
ファイルが1つしかないやつはstaticリンクで全部そいつに含まれてるから
中身の違いとはあまり関係ない >>フレームレートスレで出たnekopanda氏版: https://github.com/nekopanda/FFmpeg/releases
dr = True で映像出ないな >>362
ただの誤判定じゃ?、ウィルス判定したBaidu自体があれだし とは思うんですけども・・
ところで、↓をThreadRequestを使うようにするにはどうしたらいいんでしょうか?
https://github.com/chikuzen/AvsReader/blob/master/YUY2Converter.avsi
作者のChikuzen様のBlogにてThreadRequest使わないと速度が出ないとのことなので
ThreadRequestについて調べてるのですが・・ threadrequestってなぜか姿消したよね
ソースコードとってあってよかったよ avisynthのフレーム補完スクリプトを使用する時、30fps以下の動画にのみ適用する記述ってどうすればいいですか?
60fpsの動画再生時にも何かしているようで処理が重くて動画がカクついてしまいます avisynthのフレーム補完スクリプトなんていくらでもあるわけで
スクリプト自体貼ってくれないとアドバイスしようがない >>367
すいませんこれです
http://i.imgur.com/x49hclY.png
もし動画が30fps以下ならこのコードを適用、それ以外なら何もしないといった感じにしたいです hokanClip = (FrameRate() <= 30) ? InterFrame(〜) : last
hokanClip
でいいんじゃね。 >>369
スゲー一瞬で解決しました!ありがとう! スクリプトを動かしているプロセスの実行ファイルのフルパスを取得したいのですが
どうしたらいいのでしょうか?
http://forum.doom9.org/showthread.php?p=1260276#post1260276
で配布されているProgramName.dllプラグインを試してみたのだが、取得できるのは
フォルダーパスが省略されて "ファイル名.拡張子" だけとなっています。
呼び出し元のアプリ毎の処理をスクリプト側で?:演算子を使って条件分岐させる必要が
出てきたのに、対処法が見つからなくて困っています。 >>372
使用アプリはコンソールアプリとは限らないためバッチファイルは使えません。
1つのスクリプトを複数のアプリで共有しなければならないケースが最近よくあります。
特に、多数のメディアプレイヤー等のDirectShowアプリから呼び出される
ffdshow video processorでAvisynthを使う時、ffdshow標準のプリセット自動読み込み機能
だけでは対応しきれない複雑な条件分岐を?:演算子とユーザー定義関数で実装する必要性が
出てきました。
そのためにも、呼び出し元のアプリが何であるかをはっきり識別できる必要があります。
ProgramName.dllプラグインは "C:\foo\foo.exe" も "C:\ber\foo.exe" も共に "foo.exe" を
返してしまうためこの2つを区別することができません。
またバッチファイルのIFコマンドなども、対応アプリがコンソールアプリ等コマンドラインでの
自動実行に対応したものでなければなりません。 状況がよくわからんので見当違いになってしまうかもしれんが
C:\bar\foo.exeをfoo_bar.exeに名前を変えて運用してしまう とか 実行ファイルのパスによって処理を変えるという時点で、
前提条件を見直した方がよさそうな気はするよね。 呼び出し元のアプリごとに処理が代わるならそれごとにスクリプト組むのが普通だわなぁ
同一スクリプトでコメントアウトで対処することも多いけど
呼び出し元アプリがCLIだけじゃないっていうんだからバッチで振り分けてるわけではなく
ユーザー自身がそのスクリプトをどのアプリに食わせるか判断してるわけだし
自分で判断できるなら自分でコメントアウト箇所いじれるでしょという気はする >>376
ffdshowでAvisynthを使うという例が書いてあるんだから、
「複数のアプリがffdshow経由で同一スクリプトを呼び出すので
そのスクリプトの中でアプリごとの分岐処理がしたい」
という要望自体は理解できるんじゃないか? ttps://github.com/enccc/AviSynth-GetProgramName2/releases
GetProgramNameがフルパス取得できないらしいので、新しく作り直してみた
名前は衝突しないようにGetProgramName2(bool "full_path")にしてる
full_pathはデフォルトでfalseだから何もしなければGetProgramName()と同じように動くはず
GetProgramName2(true)とするとフルパスが取得できると思うんだけど、どうかな?
おまけでGetProgramName2_Util.avsiも付属してる
オートローディングするなりImport()するなりしておけば、GetProgramName2()をGetProgramName()で呼び出せたり、
GetProgramDir()でフルパスからプログラム名を除いたフォルダ名までのファイルパスを返してくれる
1時間半ぐらいで書き上げた手抜きの即席プラグインなのでうまく動かなかったらすまねぇ・・・
それと動作に追加でインストールが必要なランタイムはないはず ごめん追記で書かせてもらうけど・・・
仕様として、内部でワイドバイト文字列からマルチバイト文字列に変換してるんだけど、
その時に変換できない文字があると「?(半角疑問符)」に置き換わるようになってます
なので使うときはそういう文字がないようにしないと
取得したプログラム名やパスを文字列比較などに掛けて分岐する時に問題が起こるかもしれない
まぁよほどファイル名やファイルパスに特殊な文字を使ってないと引っかからないと思うので
そこまで気にしなくてもいいはず
このプラグインの原案は結構前に出来上がってたんだけどやる気失ってた所だった
ちょうどピンポイントに困ってる人がいたのでやる気振り絞って書ききってみた 動くか分からないけど・・・ >>378
横から光の速度で頂いた
2バイト関連は確認してないが、32bit/64bit共にエラーなく動いてるthx >>378
わざわざプラグインを作ってくれてありがとうございます。
早速試してみましたが、残念なことにうまく動作しませんでした。
まず、アプリのパスが "C:\folder\app.exe" であり、環境変数%Path%に "C:\folder" が
追加されているものとします。
そして、コマンドプロンプトから
>app
として起動した場合、
GetProgramName2(true) = "app"
GetProgramName2(false) = "" (長さ0の文字列)
となってしまいます。
一方、
>"C:\folder\app.exe"
とちゃんとフルパスを打ち込んで起動した場合は、
GetProgramName2(true) = "C:\folder\app.exe"
GetProgramName2(false) = "app.exe"
と正しい値を返してきます。
たぶん起動時のコマンドラインをそのまま解釈している仕様のためと思われます。 あとそれから、今かなり強引な手法でアプリのフルパス等のプロセス情報を取得する方法を
思いつきました。
まず、AvisynthからVBScriptの実行を可能にするwarpsharp.dllプラグインを導入します。
次に、VBScriptからWin32APIをはじめ任意のDLLを呼び出し可能にするSFC miniを導入します。
そして、SFC miniを使ってkernel32.dllのGetCurrentProcessId()関数を呼び出しアプリの
プロセスIDを取得し、これに基づくプロセス情報のオブジェクトをWMIを使って取得するコードを
VBScriptで書きます。
あとはこのVBScriptをwarpsharp.dllプラグインのWScript()/WSInvoke()フィルターを使って
呼び出すだけです。
時間があるときにこのVBScriptのコーディングに挑戦してみようと思います。 >>381
空文字列が返ってくるのはすまねぇ俺のミスだ
ちょっと今修正してる
ご指摘の通り、コマンドライン引数を取得して呼び出したプログラムの文字列を取り出すから、
呼び出したコマンドがフルパスじゃないの想定してないんだよね・・・
修正方法は考えるけどちょっと時間かかるかも ttps://github.com/enccc/AviSynth-GetProgramName2/releases
怪しそうな所少し変えたけど空文字返ってくるのはこれで直ってる? 連投ごめんなさい
ttps://www.axfc.net/u/3904037
> そして、コマンドプロンプトから
> >app
> として起動した場合、
これをちょっと何とかしてみようとやってみた 手元でavs2pipemod -y4mp input.avsとすると、
GetProgramName2(false)でavs2pipemod.exe、GetProgramName2(true)でC:\hogehoge\avs2pipemod.exe、
と表示されててパット見改善できたっぽいんだけどどうかな?
ちゃんと動くようなら正式にソースコード書き換えたいんだけど・・・
私は寝るので本格的に反応できるのは明日の夕方以降になるかもしれません ID:o1+lgvL90さんじゃないけど
勝手に直したよ
GetProgramName2_0.1.1_mod
https://www.axfc.net/u/3904208
コマンドライン引数のパス情報を使うのをやめてWin32 APIから直接パス取得するようにした ttps://github.com/enccc/AviSynth-GetProgramName2/releases
手元では問題ないっぽいからアップした
バイナリは>>385と殆ど変わらないはず
>>386
ごめん入れ違いになったけどGetModuleFileNameを使うやつ今あげちゃった
後日読んで参考になった所あったらソースにいれちゃうね avisynth2.5.8MTを使ってて、avisynth+を導入してみたのだが、その後aviutlを起動すると応答なしになる。
avisynth.dllを元に戻すと正常に使えるようになるので、ここだと思うのだけど、+にする場合、他に何か必要なものあるんです?
結構調べたのだけどわからず…
もしかして、以前の2.5.8がいたらダメとかある?
環境
os:windows7 64bit pro
avisynth2.5.8MTは同居 >388
例えば
Avisynth 2.6.0 MT 32bit
Avisynth+ xxxx 64bit
の同居はできるけど、32bit同士は同時同居はできないんじゃ?
avisynth.dllの差し替えが毎回必要になると思うのと
両方で使えるプラグインだけに絞らないと変になりそう >>388
AviUtl側でAVSを読むために使っている手法というかプラグインは何? >>388
うーん
やはり+入れてるのに、2.5.8がいるのが悪いのかな
>>390
pop@4bit氏のL-SMASH Worksつかってますね。
2.5.8ではavspmodからaviutl呼び出して、編集とか可能です。
aviutl単体で起動しても、応答なしになります。 「同居させてる」ってどういうこと?
以前のavisynth.dllを残したままplusを導入することはできないと思うのだけど・・ >>392
同居というか、設定ファイルとかは残してるってだけですね。
systemの方には+のavisynth.dllしかおいてないです。
なんか、avsfilterが悪さしてるっぽいのを、参考サイトの管理人から教えていただいたので、帰宅したら試してみます。 全体的に説明不足すぎる。何をもって同居と言ってるのかさっぱりわからん。
設定ファイルってなんのことだよ。「2.5.8がいる」ってどこにだよ。
どのバージョンのAvisynth+をどういう方法でインストールしたのかとか
状況を他人にわかるように説明する努力くらいしてくれよ。 そもそもAviSynthに設定ファイルなるものは存在しない
そして同時に複数のAviSynthは同居できない(32bitと64bitとで別バージョンを使う場合を除く)
AviSynth側の問題なのかAviUtl側の問題なのか切り分けてない
わざとなのか天然なのかわからないが問題が発生する状況を詳細に書かずぼかしている
これで解決させられるほどこのスレエスパー揃いじゃないよ
他の人も言ってるけど何をしたら問題が起こるのかを特定して、その現象が発生する最低要件を見つけて、
これ以上簡単に再現する方法が無いだろうというところまで絞り込んだ上で質問したほうが質問する側も回答する側も回答しやすいし解決しやすい あれ?ID被ってるや
午前中に書き込んでる人とは別人なのでよろ 2.5.8環境は完全に捨ててr2664なり+CUDAにした方がいいんじゃないの 同居といってるのは、C:¥Program Files (x86)¥にavisynth+と2.5.8があることを指してます。
事象は>388で言っていますが、avisinth+導入して、avisynth.dllが差し変わるとaviutlが起動しても応答なしになります。
http://avisynth.nl/index.php/Avisynthplus/Downloads
ここから、本家r1574を入れたあと、avisynth+r2664を入れています。
aviutlは99hのバージョンです。
おそらくaviutl側の問題だと思ってますが、どのようにしたらaviutlがavisynth+で動くようになりますでしょうか? >>398
avsfilterはaviutlからavisynthのプラグイン・関数を使うためのやつだっけ?
おそらくavsfilterのソースを改造するしか対処法はないと思う
とりあえず2.5.8なavisynth.dllをavsfilterと同じディレクトリに置いてもダメだったら諦めるしかないと思う r1574のインストーラだと、古いAvisynth環境をバックアップするというオプションがあるんだっけか。
AviUtlも古いし、avsfilterなんぞ今時使うこともないだろうから、
AvisynthもAvisynth+もAviUtlも一度全部アンインストールして、
AviUtl 1.00とAvisynth+ r2664をゼロからインストールした方がいいと思うよ。 試しにavsfilterでWarpSharp呼び出してみたけど+だと応答無しになるね
>>399が書いてる通りaviutlのフォルダに2.5.8のdllとavsfilter置いとけば一応動く >>399
そうです
aviutlでavisynthのプラグイン使えるようになるやつです。
先程帰宅したので、avsfilter.dllを2.5.8のディレクトリから外したら、起動できるの確認できました。
avisynth+だとavsfilter.dllはNGなのがわかってスッキリしました。
皆様ありがとうございます。 理解できてない気がするので質問です
インストーラすると
avisynth.dll (x86)他、avisynth.dll (x64)他
ができますが自分は今はx264(x64)をx86で実行させていますがavisynth.dll(x64)で実行させるにはどうしたらいいのでしょうか?
(そうすればパイプを通さ無くなるのとavisynth.dllのx64が使えるため早くなる・・・はず)
x86とx64の両方のインストールはロゴ確認、Trimがあるためaviutlがあったほうが便利なので使っています
ご教示お願いします x264(x64)をx86で実行はできません
もっと正しい環境を書いてください >>403
もうちょっとわかりやすく説明しようか 日本語や用語の使い方からして怪しいぞ avs2pipemod -y4mp "input.avs" | x264(x64) - --profile high [option] --demuxer y4m -o output.mp4
AVSはx86だと思いますが違いますか?(AvsPmod(x86)で読ませています) パイプ入力をやめたら早くなるとかいうものじゃないと思う(パイプ入力のペナルティーは最小の意味)
avs2pipemod64.exe(つまり64bit版)をフロントエンドに使えば64bit版avisynthが使われる >>406
avs2pipemodがx86ならAviSynthもx86が呼び出されているね
もしAviSynth x64を使いたいなら、x264 x64に直接読ませればいい avs2pipemodのx64版を使ってもいいけどな
君の書いてる書式に合わせるなら
x264(x64) "input.avs --profile high [option] -o output.mp4
当然ながらAviSynth側もx64が使われるんでプラグインとかも要チェック >>407-408
試してみます、ありがとうございます(まだもやもやしていますが・・・) >>409
・64bit(x64)のアプリからavsを呼び出せばx64のAvisynthが使われる
・32bit(x86)のアプリからavsを呼び出せばx86のAvisynthが使われる
という極めて単純な話なんだが・・・。 >>409-410
説明ありがとうございます(まだ稼動はしていませんが・・・(avsのinportでerrorが出たため))
>>411
2,58→2.58MT→2.6MTSEt氏ビルド→2.6.1Alpha1→AviSynth+
の順番で切り替えていきました、2.6MTが長かったです
+が出たのは把握していましたが難しそうだったので2.6.1Alpha1を使ってみて
貧弱なPCでのやりくりで疲れてr1576(x86)を使ってみてそこそこ速度が出たのでr1576のままいくか
r2664MTへいくかは迷ってます(txt60mcHybrid/ivtc_txt60mcがr1576より遅くなったので)
※CUDAは非対応らしく諦めました >>412
32bitは 2.6MT
64bitは +CUDA
だわ
2.6MTは息が長いな・・・
電気代を気にしてGPUがしょぼいから
まだまだ32bitつこうてるわ DVD2AVIのスレが落ちてるのでここで
DGIndexのBS11対応版、最近のBS11のTSで
フィールドオーダー入れ替えますか?が出るね
YES押したらおかしくなるのでNO押してる
新しい対応ビルド待ち >>414
GUIを起動しなんたらflagsの設定を変える AviSynth2.6 MTを導入したところL-SMASH Worksで読み込みをすると
「[Fatal]: Failed to avformat_open_input」
と表示されて読み込めないのですが、相性の問題なのでしょうか...?
ちなみにDirectShowSourceでは真っ暗になったり画面崩壊したりするいつもどおりの状態ですが、使えることは使えました。 お世話様です。
クリップの一部を別クリップの同じシーンに差し替えるという編集をしたいんですが
「クリップ1のフレームAからフレームBまでの範囲を、クリップ2のフレームXから同数の
フレーム分だけ置換する」というようなユーザー定義関数はありませんか? >>418
パッと思いつかないんだけど、構想ができてるのなら自前で作ってしまっていいと思うよ >>419
この機に覚えますか・・・
>>420
試そうかと思ったんですけど、これってクリップ2(sourceClip)の開始フレーム指定とか出来ないのでは? >>420
そういやRemapFramesってあったなぁ
>>421
ttps://pastebin.com/Xhnu7j2s
頭の体操ついでに作ってみた ものすごく簡単なチェックしかしてないから動かなかったら済まない
細かいエラーチェックしてないから完成度高めたければ自分で弄ってくれ >>422
ありがとうございます。参考にさせてもらいます。 いよいよだったら音声を分離
2つのクリップをtrimしたのち結合して音声audiodubしか思いつかんは >>418
RemapFramesに入っている関数で楽にできる。
ReplaceFramesSimple(V01,V02,mappings="[0 250] 300 [400-500] ")
これでV01の映像上にV02の映像をマッピングで指定したフレームのみ置き換え。
詳しくは英語wikiにも書いてあるけど、それでわからなくて俺でわかることなら少しはサポートできるかもね よくよく考えたら、これだと同フレームしか差し替えできないからだめか
もう面倒だからほかの人も言っているtrimを使って力業でもいい気がしてきた。
V01.trim(0,100)++V02.trim(50,100)++V01.trim(150,300)
こんな感じでさ さっきかいたやり方だと1フレームづつずれると突っ込まれそうなので修正
V01.trim(0,99)++V02.trim(50,99)++V01.trim(150,299) >422さんのスクリプト見たら自分の書き込みが悲しくなったのでとりあえずMod作成。
ReplaceClipMod(clip base, clip alt, int start_base, int start_alt, int length)
baseクリップの設定開始フレームからaltクリップの開設定フレームをlength分だけ置き換えます
しょぼいスクリプトに張ろうかと思ったけど無いので次に。 function ReplaceClipMod(clip base, clip alt, int start_base, int start_alt, int length)
{
Assert( !(start_base < 0 || start_alt < 0 || length < 1), "ReplaceClip: start must be the positive number")
Assert( !(FrameCount(base) < start_base + length), "ReplaceClip: length is too large (check the frame count of base)")
Assert( !(FrameCount(alt) < start_alt + length), "ReplaceClip: length is too large (check the frame count of alt)")
audio = KillVideo(base)
video = (length == 1) ? trim(alt, 0, -1) : trim(alt, start_alt, start_alt + length -1)
video = (start_base == 0) ? video : (start_base == 1) ? trim(base, 0, -1) + video : trim(base, 0, start_base -1) + video
video = (FrameCount(base) == (start_base + length)) ? video : video + trim(base, start_base + length, 0)
return HasAudio(base) ? AudioDub(video, audio) : KillAudio(video)
} >>430
>422さんのはbaseクリップの設定開始フレームから設定終了フレームまでをaltに置き換える
ReplaceClip(V01,V02,50,100) は
ReplaceFramesSimple(V01,V02,mappings="[50 100]") と同等。
>429を使って同等にするなら
ReplaceClipMod(V01,V02,50,50,50)
ただmodのほうはbaseクリップとaltクリップの開始フレームをずれして設定ができる
ReplaceClipMod(V01,V02,50,200,50)
これはbaseクリップの50フレームから50フレーム分をaltクリップの200フレームから50フレームに置き換えることができる V01 = V01.ShowFrameNumber(x=24, y=48, size=36, text_color=$ffffff)
V02 = V02.ShowFrameNumber(x=24, y=48, size=36, text_color=$ff00ff)
ReplaceClipMod(V01,V02,50,200,50)
こうやってフレーム数を表示させながら確認するとわかりやすいよ あ、また書き間違えてた
ReplaceClip(V01,V02,50,99) は
ReplaceFramesSimple(V01,V02,mappings="[50 99]") と同等。
と50フレームにしたほうがわかりいいね またもやミス発見
video = (length == 1) ? trim(alt, 0, -1) : trim(alt, start_alt, start_alt + length -1) は
↓
video = (start_alt == 0) && (length == 1) ? trim(alt, 0, -1) : trim(alt, start_alt, start_alt + length -1)
に変更したほうがいいな 割と需要あったみたい?だからちょっと丁寧に書き直したよ
ttps://pastebin.com/vy851k1i
start = 1 の時に不正な動作をするのを修正
endが0や負の数の時に不正な動作をするのを修正 というより入力したらエラー出して弾く
2つの入力クリップの解像度と色空間さえあっていれば、
映像のフレームレート、音声の有無、音声のサンプリングレート、音声のサンプルタイプが違っていても処理を可能とした
今までどおり、フレームレートも音声も全てbase側のものを使うようになっている
altの方にoffsetをつける用にした方が良いのかなとは考えたけど中身がすごく複雑になるし、
ReplaceClip(base, alt.Trim(x, y), start, end)
みたいにして調整できるし良いかなって・・・ >>436
> altの方にoffsetをつける用にした方が良いのかなとは考えたけど中身がすごく複雑になるし、
> ReplaceClip(base, alt.Trim(x, y), start, end)
> みたいにして調整できるし良いかなって・・・
それだと
ReplaceClipMod(V01, V02, 200, 100, 50)
みたいな感じでbaseクリップより若いaltの開始フレームだとまた書くのが面倒になるのでは?
って思ってもみたり
まあ俺もMod作っておいてなんだけど、普段ならtrimだけで処理するよなーと >>437
確かに普段はTrimでするかな というより、普段から映像置き換えとかしないからなぁ・・・
あえて関数を作ったりプラグイン関数を導入してまでやろうとしなかったっていうのが正解に近い >>72
作者さんまだ見てらっしゃるかわかりませんが質問です。
こちらの関数を使うと不正なストリーム出力扱いにされるんですが、
原因わかりますでしょうか?
※AvsPmodの場合
-----
Traceback (most recent call last):
File "avsp.pyo", line 9061, in OnMenuVideoToggle
File "avsp.pyo", line 13855, in ShowVideoFrame
File "avisynth.pyo", line 462, in GetFrame
WindowsError: [Error -1073741795] Windows Error 0xC000001D
-----
※MPCの場合
-----
CAVIStreamSynth: System exception - Illegal Instruction at 0x6e972509
-----
ちなみに最後のTDecimateを取り除くと一応エラーを出さずに表示できます。
(勿論意図した出力結果ではありませんが) >>439
tdeintは相性がきつい感じだからyadifmod2にでも置き換えたらいいのでは
とりあえず↓な感じにしたら動いた
function TDecimate24P7A2(clip clip){
video=clip
Interp=video.nnedi3(field=-1)
mask_clip=combmask(video,cthresh=10,mthresh=10)
clip_0=video.yadifmod2(edeint=interp)
clip_deblock=video.yadifmod2(edeint=interp).deblock(quant=16)
filt_clip=MaskedMerge(clip_0, clip_deblock, mask_clip,MI=60)
clip1=video.yadifmod2(mode=0)
clip2=clip1.mt_lut("128", chroma="0", offx=120, offy=24, w=420, h=230).mt_lut("128", chroma="0", offx=260, offy=920, w=1320, h=80).TDecimate(mode=1,clip2=filt_clip)
return clip2
}
セットアップするのがめんどくさかった
eedi3と smoothD2は消したけどお好みで >>441
レスありがとうございます。
ただ貼っていただいた関数でも解消しなかったので、読み込みプラグインを
最小限にして手あたり次第試してみたのですが、CombMask-1.1.0を
CombMask-1.0.0に変更したところ件のエラーは出なくなりました。
が、出力されたクリップのロゴ部分にNR効果が適用されているようには
見えないのですが、私この関数の効果を勘違いしてます? ロゴじゃないね
圧縮効率が悪くなるインタレ縞だけフィルタリングするものだから >>443
なるほど、回答ありがとうございます。
今 BS11overlay() でやってるロゴとテロップ消去が楽になるかと期待しましたが、
そんなうまい話は無いですね・・・(編集すごくメンドクサイ) join_logo_scpによる自動化おすすめ(関連スレ https://mevius.5ch.net/test/read.cgi/avi/1484985868/
最終的なエンコードは誤爆するTIVTC24P2とか使わずautoVFRで超ラクチン 60iテロップを24p化する際、60iテロップの開始フレームと終了フレームを指定するにはどのようなavsを書けばよいのでしょうか? >>448
調べてから聞こうぜというか公開されてる他人のavsも見るようにしようぜ、いろいろ参考になるから
あと大抵の初歩的なことは1日2時間調べるのを10日くらいやれば解決するぞ
こっちのやり方だと
t01 = Trim(6667,7071).TIVTC24P2()
t02 = Trim(7072,7971).txt60mcHybrid_hol(2,bobtype=3,txt_t=960,txt_b=1030,debug=0)
t03 = Trim(7972,25367).TIVTC24P2()
t01++t02++t03
などとやっておいてからAudioDubで音声結合かな
基本的に連続区間最後のtrim以外は5の倍数範囲指定でやってる
まれに区間先頭終端が縞のときがあるけどそのときはtrim値修正したり
該当フレームだけを処理したりしてるな directshowsource("hoge.avi")
total_frames = FrameCount()
str = String(total_frames)
writefile("hoge_total_frames.txt",str)
こんな感じでデータを書き出したあと
Avisynthを呼び出したアプリをすぐに終了したい場合はどのようにしたらいいのでしょう?
検索すると、avs2avi a.avs -n o とか avsutil a.avs play などとヒットするのですが
avs2aviの方はコンバート設定のGUI画面が
avsutilの場合は、長々と動画を読み込んでしまいます
テキストファイルを出力して、さっさと終わる方法を教えてください
お願いします avs2pipemod使うなり、avs2aviでも4cc決め打ちで設定するなりすればできるはずだが・・・ あ、なるほど。いわれてみれば当たり前の話ですね
ありがとうございます
ただ何かちょっとすっきりしませんね…
例えば、return文を使うとか、何かお約束の方法があっていいような感じも 実行時に上からスクリプト読んで順次実行してるわけではないから
returnは目印にならない >>450 >>453
avs2pipemod.exe -info でいいんじゃないの。
あと、総フレーム数を書き出すだけなら、WriteFileStart()にしたほうがいいと思う。 aviutilやvirtualdubで開いてから、5〜10秒後にtaskkillコマンドで閉じるとか >>450
何でdirectshowsource使ってんの?
トラブルの元になるから、lsmashsource使ったほうがいいよ みなさんありがとうございます
>>454
"スクリプト"内では式を評価するのは上からですよね?
それとは別ですが、returnはすべてをまとめて最終的に何を返すか
というコマンドだと理解してるので、それを"無"にするとかの方法がないものか
と思った感じです
見当はずれだったらすみません
>>455
以前、ffprobeを試したときそれも試してみましたが、空のファイルが出力されて
ダメでした。ちなみに、ffprobeだとファイル自体が出力されません
>>456
実はそれ、今までffplayで使ってた方法です
killするタイミングを得るために、別の処理が必要になるのでスマートじゃないかと
もう一つ、ffmpeg -t でやる方法もあるんですけど、出力されるファイルの内容が
おかしくなる現象で現状使えない感じです
結局のところ、>>451が一番いい方法、ということになるようですね >>458
avs2pipemod _avs_ --benchmark -trim=1,1
これでいいんでない? >>455
先ほどは拙速な返事をしてしまい、すみませんでした
WriteFileStart()を使い、avs2pipemod.exe -info で、きれいに書き出せました!
こうやって挙動に違いが出るもんなんですね。勉強になりました
ありがとうございました >>460
これでもきれいにできました!
ありがとうございます あれ、別にWriteFile()でも問題ないと思ってたけど、試してみたらうまく出力されないな。
WriteFileStart()じゃないとダメだったのか。
勘違いしてたのでこちらも勉強になったw AvisynthNeo用に、以下のファイルに差し替えたらクラッシュ…
https://github.com/nekopanda/AviSynthPlus/issues/1
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "./avsp.py", line 18897, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "./avsp.py", line 18884, in OnInit
File "./avsp.py", line 5227, in __init__
File "./avsp.py", line 6238, in LoadAvisynth
ImportError: No module named avisynth_cffi 32bit版では問題なし
64bit版はエラーが出るってってどういうことなんだ… と思ったらまたエラーが…
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "./avsp.py", line 18897, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "./avsp.py", line 18884, in OnInit
File "./avsp.py", line 5227, in __init__
File "./avsp.py", line 6238, in LoadAvisynth
File "avisynth_cffi.pyo", line 784, in <module>
File "cffi\api.pyo", line 450, in verify
File "cffi\verifier.pyo", line 112, in load_library
File "cffi\verifier.pyo", line 201, in _write_source
IOError: [Errno 2] No such file or directory: 'ここまで省略\\lib\\library.zip\\avisynth_cffi_ext.c' AVSPのフォルダに
AviSynth.dll と DevIL.dll を入れてるけど
そういう使い方で良いんだよね? かまわんよ
あと、レジストリいじってプラグインフォルダ作るといい 一回全部消して入れ直したら、無事動作するようになった。
しかし、アイコンが真っ白いままだったので、フォルダの場所を変えざるを得なかった… Avusynth-CUDA-r2533でscriptclip系を使うとデッドロックしていたのを修正していましたが
AvusynthNeoではどうなんでしょうか? >>472
+CUDAの修正は全部入ってるよ
バージョンアップでプラグインのインターフェースが変わったから互換性がないってだけ >>473
ありがとうございます
+CUDAは使えない(PCが貧弱)のと+MTで極端に重くなるのでNeo入れてみようかと・・・ 某ファンクラブ会員向けDVDなのですが今年から担当がDTVに無知なものに変わったようで
23.976fpsで撮影→プルダウンで29.97fpsに→インターレース解除で二重化
という変な仕様になっています
5フレーム中2フレームづつ二重化で残像だらけの映像が現れる状態です
この残像が出てる連続したフレームの共通部分を抽出すればある程度まともな映像になるのではないかと考えていますが
うまいスクリプトがわかりません
どなたかお知恵を貸してくれませんか?
ソース抜粋
https://www.axfc.net/u/3917431 AvisynthNeoとAvisynthPlusCUDAは
なにが違うんでしょうか 日本語のあるパスだと、ScriptDir()の戻り値がうまくいかんのだが、なんかいい方法ない?
とりあえずバッファ不足っぽいので
function StrFromUtf8mod(string text){
len = StrLen(text)
return TrimRight(LeftStr(StrFromUtf8(text + FillStr(len * 3)), len))
}
scriptdir = StrFromUtf8mod(ScriptDirUtf8())
で逃げてはみたんだが >>479
ありがとう
今、Neoをインストールして確認した
radeonだけど乗り換えます 自ビルドしたNeoが使えないです
extern const AVSFunction Device_filters[] = {
{ "OnCPU", BUILTIN_FUNC_PREFIX, "c[num_prefetch]i", OnDevice::Create, (void*)DEV_TYPE_CPU },
{ "OnCUDA", BUILTIN_FUNC_PREFIX, "c[num_prefetch]i[device_index]i", OnDevice::Create, (void*)DEV_TYPE_CUDA },
{ "OnCPU", BUILTIN_FUNC_PREFIX, "n", OnDevice::Create, (void*)DEV_TYPE_CPU },
{ "OnCUDA", BUILTIN_FUNC_PREFIX, "n[device_index]i", OnDevice::Create, (void*)DEV_TYPE_CUDA },
{ 0 }
};
ここの "n" って文字がunknownだと怒られる >>481
すみません、AvsPmodの問題っぽいかもです AviSynthNeoはAviSynth+MTとは違うもの? >>484
改造版でエラー消えました!ありがたく使わせていただきます CPUでKFMDeint使おうとテストしているんだけど、内部で呼び出しているKFMのフィルタは
MT_MULTI_INSTANCE でいけるのかな?
MT_SERIALIZED の結果と比較しても、パッと見大丈夫そうではあったけど…
MT_NICE_FILTERではダメっぽかった 昔からの自作環境があるからAmatsukazeは使ってないけど、
中のスクリプトは参考になり、Neo、笑えるほど爆速で使えてます
VFRもやりたいけどどうもプレーヤー側が貧弱なのでCFR動画しか作ってないけど KTGMCを使ってx265で720pの動画を作るのに40fpsとか出るよ
neo凄すぎ 環境変数にセットした数値を読み込んで、その値をKNLMeansCLフィルタの"device_id"引数に
渡そうとしているのですが、環境変数の読み込みに使用しているGetSystemEnvフィルタが
値をString型で返してしまうので、Script errorになってしまいます。
Avisynth内蔵フィルタを調べてみたのですが、Stringをintに変換するフィルタが見つからず、
何かいい方法はありませんか? こっちも貼っておくか。
Internal functions - Avisynth wiki
http://avisynth.nl/index.php/Internal_functions >>492-493
すいません、そのページは読んでいたんですが見落としてました。
Value()でfloat型が得られたので、Int()に再度読み込ませて希望通りの結果になりました。
ありがとうございます。 AvisynthNeoはDGindexが動かないのでしょうか?
TSをLWLibavVideoSourceで読むと無事動くのですがDGindexだとエラーが出てしまいます >>495
もちろん *.d2v にして読ませてるよね?
たまに *.d2v 内に書かれているフルパスの位置が違ってたりして
読めなかったりする人がいる >>495
あと、Avisynth Plugin フォルダに DGDecode.dll を入れてなかったりとか
32bit版には32bit版のdll, 64は64のが必要だぞ >>496
パスを確認して読み直したら無事読めました
早とちりしてしまいました
ありがとうございました 逆テレシネをするのにKFMを使いたいんですが
どのように記述すれば良いのでしょうか
元のファイルはPVとか音楽の放送ものです
KFMDeint(mode=2)
こんな感じはダメかな
presetとかpassとか必要ないですか >>499
それで大丈夫だよ
ただCPUだと遅いから
LWLibavVideoSource("ソースパス").OnCPU(2)
KFMDeint(mode=2, cuda=true)
って感じでCUDAオンにすると速くなる
解析を2パスにしたい場合は、
KFMDeint(mode=2, cuda=true, pass=1)
で最後のフレームを呼び出した後、
KFMDeint(mode=2, cuda=true, pass=3)
でフレームを生成すると2パスになる
pass=1はどんな方法でも最後のフレームを呼び出せればOK
AvsPmodでいきなり最後のフレームを表示しようとすると
長時間固まるからあまりお勧めしないけど LWLibavVideoSource("ソースパス").OnCPU(2)
KFMDeint(mode=2, cuda=true)
をやってみたら無事動きました
詳しい説明ありがとうございました neo r2741 で
SetDeviceOpt(DEV_CUDA_PINNED_HOST)
を有効にすると
jpsdr/aWarpSharpMT v2.0.1 の aWarpSharp2 で access violation が出る
SetDeviceOptをコメントアウトすると問題ないんだけど、なんでだろ? >>503
ありがとう&なるほど
向こうの問題ですね
流石にasmの修正は素人には手に余る
速度を取るかaWarpSharpMT使うか…
まぁ、warpsharp使うケースは少ないから、そんときゃ速度あきらめるか おや?
エンコード結果で、途中で画像が停止するんで原因調べてたら
KFMかKTGMCかわからんけど
ログには
ERROR: [CUDA Error] 2: out of memory @366
が記録されるけど、エンコードは続いちゃうんだね >>500-501
KFMの2passのやり方がうまくいきません
AVSPModで最後のフレームを呼び出すって
どうやるんですか?
あと、解析結果ファイルやタイムコードみたいのは
出ないのですか?
できれば教えていただきたく >>505
それは後段フィルタ、もしくはavisynth呼び出し側の問題
CUDAメモリ確保に失敗したら、例外が出るはずで、
それを握りつぶして処理を継続させちゃう実装になってるとそうなる
amatsukazeで普通に使えばちゃんとエラーで止まる
まともな実装なら例外を握りつぶさないでちゃんとエラーで
停止するなりすると思うんだけど・・・
>>506
> AVSPModで最後のフレームを呼び出すってどうやるんですか?
シークバーを最後まで持っていく、もしくは、Run analysis passを最後まで実行する
シークバーでやると長時間GUIが固まるから、Run analysis passで進捗状況見ながらやるのがおすすめ
CLIだったらavs2pipemodとかで出力をnulに突っ込むようにして流せばいい
> 解析結果ファイルやタイムコードみたいのは出ないのですか?
解析結果はKFMDeintのfilepathで指定したファイルにバイナリで吐かれる
デフォルトファイル名は"cycle.dat" >>507
x264 r2901 + neo r2741 だから後続のフィルタかな、例外拾って無視してるの
まぁ、再生すればすぐわかる問題だし、気にしないことに
サンクス AviutlでAvisynthを使ってフレーム補完がしたいんですけど、MP4の動画を読み込むのにスクリプトにLSMASHVideoSourceを使ったらエラーが出て読み込めません。
DirectShowSourceでも同じくエラーが出ます。
aviの動画はAVIsourceで問題なく読み込めます。
Aviutlの入力プラグインの優先度でLSMASHを一番上にしてもダメでした。
LSMASHのAvisynthフォルダにあるdllをAvisynthのPluginsフォルダに入れる方法もLoadPluginを使う方法もエラーが出て読み込めませんでした。
LSMASHVideoSourceではScript error: there is no function named "LSMASHVideoSource"
DirectShowSourceではDirectShowSource:Could not open as video or audio
LoadPluginではLoadPlugin: unable to load "○○", Module not found. Install missing library?とそれぞれ出ます。
Avisynth2.6.0、L-SMASH_Works_r935_pluginsを使用してます。
PCのOSはWindows10 64bitです。
色々調べてみたんですが原因が分かりません、解決方法が分かる方いますか? >>513追加です。
LSMASHVideoSourceのスクリプトはLSMASHVideoSource("○○,mp4")
DirectShowSourceのスクリプトはDirectShowSource("○○.mp4")
LoadPluginを指定する方法のスクリプトは以下の様にしてみました。
LoadPlugin("〇〇")#〇の部分にLSMASHSource.dllのパス
file="○○.mp4" #〇の部分に動画のパス
LSMASHVideoSource(file)
AudioDub(LSMASHAudioSource(file)) AviUtilの、 l-smash worksの導入、avisynthの利用の設定を失敗している
ミスは自分で見つけること AviutlでAVSを読み込んでエラーって話だと思うけど
Avisynthはもちろん32bitだよね?
Aviutlは32bitなのにAvisynthのdllが64bitじゃ無理だからね。 >>513
L-SMASH_Works_r935_pluginsのAviSynthフォルダにある
Readme.txtを読んでVCのランタイムを入れる win10って標準だとvisual c++ 2013の ランタイム入ってないの? >>515さん >>516さん >>517さん >>518さん >>519さん
解決できました!初歩的な間違いをしてた様です。
自分のPCにインストールされてるランタイムはVisual C++ 2015(標準?)だったんですが、
ランタイムは最新のやつでいいと勘違いして2017をインストールしてました。
Readme.txtに書いてあるURLからVisual C++ 2013をインストールしたら問題なく読み込む事ができる様になりました。
皆さんありがとうございましたm(__)m pop氏のサーバーが見れなくなってるけど
何かあったのかな? rss履歴みるに
8月29日の午前3時から、サーバのメンテナンスだって書いてあった Its で24,30,60用の関数それぞれでKFMDeintを呼び出しているんだけど、
CUDA側のメモリ使い果たしてcache shrink してしまう
エンコードは進んでいるから無視する手もあるけど…
1050Ti の 4GB で足りてないんだけど、なんか上手い方法はないだろうか? >>524
KFMDeintに24p,30p,60pの3クリップを返すモード(mode=3)を追加した。
複数のクリップ返すからちょっと使い方が独特なので↓これ見て
https://github.com/nekopanda/AviSynthCUDAFilters/wiki/KFMDeint
あんまテストしてないから何か問題あった教えて >>525
多謝多謝
軽くテストしてみたけど、2.5GB以内で収まる感じでいけました
これからいろいろ試してみます 重複フレームを自動削除、フレームを解体して任意のFPSに
再構築できる? 1sec60fpsを解体して2sec30fpsで再構築とか 教えてチャソでスマソ。
24fpsのビデオの重複フレームをオートで検出して削除、
さらにfpsの概念を消去し、重複フレームを削除した後の、
fpsに拘束されていないフリーのフレームの集合体を新たに時間系列で
任意のfpsで再構築(re-packing)、ここまでAvisynthで出来るんじゃろか? >>532
よくわからんけど重複フレームを削除して可変フレームレートにしたいってこと? 同じ絵が続いても現代のエンコーダは効率よく圧縮してくれるのでやめたほうがいい
変態VFRは後で取り回しが非常にしづらい上に大して縮まない 重いフィルタリングさせたり、次世代の激重エンコーダに8kを処理させるなら、時間がそれなりに短縮できそう >>536
これTAS動画用のフィルタだし完全に同一フレームじゃないと駄目かもな ノイズと動きの区別って難しいからな
>>539
他のもあるんだし、いろいろ試せばよいのでは?
エンコード前に解析パスが必要になるケースが殆どだろうから、面食らうだろうけど
あと、VLCはvfrに弱いので、他のソフトで再生確認しましょう ハイスコアガールって24、60混合だけど
自動テレシネの方法が調べても出てこないです
簡単にテレシネする関数ないですか?
Tdeint、QTGMCを使うなどの方法があればいいのですが >>544
そこまでしてVFRしたいか?という・・・
QTGMCで60fpsでとっておけばいいじゃん・・・ >>544
KFMDeintでできるよ
Amatsukazeに突っ込むのが一番楽だけど >>546
ありがとう。
Amatsukazeは知らないので、ちょっと調べてみます。 24,60混合って言っても24の方が多いからVFRにすればフレーム数半分程度まで減るし
24部分はQTGMCより逆テレシネの方がきれいだしね
自動でやってくれるから手間もかからないし >>544
AutoVFRとかを利用してもいけるけど
>545と同じでそこまでしてVFRしなくてもいいんじゃ?って感じだけどね
あそこまで混在激しいと誤爆率もすごそうだし
60p、60i(インタレ維持)、VFR、カクついても気にしないなら30p、24p(自動系)も試して
自分の目で確かめてどれが一番妥協できるかどうかやってみたら?
細かいこと気にしないなら30p、24pでも妥協できると思うけどね
なんとしてでもVFRできれいにやりたいなら手動でやるのをお勧めしたいがそうじゃないしな > Aviutlでフィールドシフト
それVFRにならないから・・・ ハイスコアは全BOBでいいだろ
フレーム数多くてもエンコーダがうまくやってくれるし 自動判定はAmatsukazeが強いわ
自分の環境だと、何故かハイスコア3話と5話はエンコードそのものに失敗するけど、
その他は今の所うまく行ってる 誤爆率は高めでもいいなら
BOB().SelectEven
でも結構いけるけど上下のパンにかなり弱い
でも何も考えないで出来るから簡単
BOB()を他にすれば制度は上がるかもしれないけど Amatsukazeって強力なGPUないと
使えないんじゃ >>546
そういえば技術的には、あのVFRってどう実現しているんだろう?
俺が知らないだけだろうけど、タイムコードを出力しているようでもないし。
いやさ、Amatsukaze以外でKDeintのVFRっていけるのかしら? という疑問なんだけど そういやAmatsukazeがないとタイムコード出力できないからKFMDeintだけじゃVFRにできないね >>556
CPUでもできなくはないけど、QTGMCとか重いフィルタ結構使ってるから遅すぎるんだよね timecodeなら
avs2pipemod --info input.avs
ではダメ?
x64はまだ非稼動だから正直よくわからないですが誰でも思いつく手段ということで KFMDeintは2passすればできるって前に作者さんが言ってたけどまだ試してない
Amatsukaze経由じゃないとタイムコード出ないの? 2passは精度が少し上がるだけ。タイムコード出力するのと2passは関係ないよ
AviUtlの自動フィールドシフトとかは1passでタイムコード出力するし
タイムコード出力する機能はAmatsukazeにしかないから出ない
24や30の部分は同じフレームが重複して出力されるから
Amatsukaze使わなくても>>536のようなフィルタ使えばVFRにできるかも Amatsukazeのtempフォルダみると、v0-0-main.timecodeという mkv ver.2 形式のタイムコードがあるね
KFMDeintとかKFMCycleAnalyzeでも出てくるんだろうか
KFMDumpFMで出てくるテキストのバイナリだと聞いた気がするが それはAmatsukazeが出してるんだよ
KFMDeintのpass=2or3でフレーム継続時間を付加して出力するけど、
これを解釈してタイムコードに変換するプログラムをAmatsukaze以外知らない DumpでTFM+TDecimateみたいなのが出てくるかと思ったけど、60fpsの全然違う物が出てきて諦めた記憶 KFMDeint(pass=3)の後ろにExactDedup置けばAmatsukazeとほぼ同じタイムコード出力できたわ
これで大丈夫っぽい というわけで、Amatsukaze使わなくても、KFMDeint+ExactDedupでVFRいける TFMと同じく素直にタイムコード出せるようにしてほしいの VFRなんてよほどの事がなければやらんわ
60の部分は一旦bob化してから(5,0,2)みたいな感じで24fpsに間引けば概ね平滑に動く AvisynthはVFRにネイティブ対応してないからやりにくいよな
>>572
それだと若干カクカクになっちゃうから、真の24fpsにするのに
玄人はmvtools使って中間フレームを生成するんだよ >玄人はmvtools使って中間フレームを生成するんだよ
これは頭に「自称」を付け忘れてるね 素人な俺はivtc_txt60mc使ってるわ
これじゃなきゃカクカクして話しにならんし AviSynthPlus-r1576をインストールしてTemporalSoftenをつかってみたのですが
UVでは効果がありませんでした。
chroma_thresholdが引数にあってもUVには関係がないということでしょうか?
AVISource()
TemporalSoften(4,4,8,15,2)
return last
どこかおかしいでしょうか? まずr1576を使ってる時点でおかしいかな。最新はr2728-MTだし。
Avisynthplus/Downloads - Avisynth wiki
http://avisynth.nl/index.php/Avisynthplus/Downloads
Releases ・ pinterf/AviSynthPlus ・ GitHub
https://github.com/pinterf/AviSynthPlus/releases
TemporalSoftenは使ったことないので知らん。 公式の安定版だしr1576というのはおかしくないと思うけど… TemporalSoften動作?バグ?の修正がMTのほうで入ってたからそれかな?
自分、TemporalSoften使ってないから調べもなんもしてないけど >>579
r1576は「公式の安定版」ではなく、「公式のリリースがそこで途絶えただけ」でしょ。
そのあと色空間の拡張やら諸々の修正等が入ってるんだし、今更r1576をわざわざ使う意味もない。
そのへんをちゃんと理解した上で、それでもr1576を使うというなら止めないけど、
わざわざr1576の挙動を確認してくれる人なんて、まずいないと思うよ。
>>580が言うように、TemporalSoftenに関する変更もいくつか入ってるようだし。 >>576
そうそう、中間フレーム生成しなきゃカクカクして話にならんよな >>583
ivtc_txt60mcって、60iテロップ部分を24fps化した時に移動量が均等に見えるように
MVTools2を使って中間フレーム(補間フレーム)を生成して使うものだと思うんだが、
なにがアホなんだ・・・? VFRに対応してない環境がほとんどだった昔ならいざ知らず
今はテロップ部(or テロップのあるフレーム)のみBOB化してVFRにしてる人がほとんどでなかろうか
速度もBOB化するほうが早いし、テロップもとても滑らか >>583
君に同意って意味だったんだが、何がアホなんだ・・・
まぁ俺もそんな面倒なことしないでVFRにするんだけどね >>585
VFRで全く問題ないと思うけど、>>583のような初心者にはやっぱり敷居が高いんだと思うよ 最近VFR面倒くさくなって
Q(K)TGMC して SelectEven()
結果サイズもあんまり変わらないし・・・
あとまだ再生環境しょぼいから 60iテロップ類はavsを通さずにffmpeg(v4.0以降)に全部丸投げした方がヌルヌルするけどな 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 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を超えています。これ以上書き込みはできません。