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/ 一回全部消して入れ直したら、無事動作するようになった。 しかし、アイコンが真っ白いままだったので、フォルダの場所を変えざるを得なかった… 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と同じく素直にタイムコード出せるようにしてほしいの ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる