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/ あとそれから、今かなり強引な手法でアプリのフルパス等のプロセス情報を取得する方法を 思いつきました。 まず、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だと怒られる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる