X



Avisynth 初心者質問スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@編集中 (バッミングク MMfe-I3cq)
垢版 |
2017/03/10(金) 22:36:24.20ID:YdwoUOlPM
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/
0356名無しさん@編集中 (ワッチョイ bbec-Osi7)
垢版 |
2018/03/11(日) 17:37:07.12ID:SslWpV+I0
んん・・・?なんだそれ。普通ならYV12(I420)も再生できるはずだが・・・。
I420だけ何かが阻害してるとかなのかな。まあ解決したならいいか。
いまいち釈然としないけど、>>353は関係ないとか言ってすまんかった。
0357名無しさん@編集中 (ウソ800 71b3-zdq4)
垢版 |
2018/04/01(日) 08:29:58.51ID:Tj+4rur00USO
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は後者だと思いますが前者はバグは無いのでしょうか?
0358名無しさん@編集中 (ワッチョイ c1ec-2GNe)
垢版 |
2018/04/01(日) 13:12:10.73ID:sgDki2Kw0
>>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ビルド  
0359名無しさん@編集中 (ワッチョイ 71b3-zdq4)
垢版 |
2018/04/01(日) 13:55:54.63ID:Tj+4rur00
>>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)

自分は前者しか使ってなかったのでこの容量の違いから後者の差し替えかな、と単純に思ったわけです
細かくご教示ありがとうございます
0360名無しさん@編集中 (ワッチョイ 39c3-kUw7)
垢版 |
2018/04/01(日) 15:01:44.27ID:fJRC81vP0
>>359
ファイル構成が違うのは、ビルド時の設定で、staticリンクしてるか、dynamicリンクしてるかの違い
ファイルが1つしかないやつはstaticリンクで全部そいつに含まれてるから
中身の違いとはあまり関係ない
0366名無しさん@編集中 (アウアウカー Sa47-p2KG)
垢版 |
2018/04/12(木) 21:17:59.43ID:ykoRBd2aa
avisynthのフレーム補完スクリプトを使用する時、30fps以下の動画にのみ適用する記述ってどうすればいいですか?
60fpsの動画再生時にも何かしているようで処理が重くて動画がカクついてしまいます
0371名無しさん@編集中 (ワッチョイ a38a-ltLK)
垢版 |
2018/04/17(火) 05:45:26.69ID:+KyDGZ420
スクリプトを動かしているプロセスの実行ファイルのフルパスを取得したいのですが
どうしたらいいのでしょうか?

http://forum.doom9.org/showthread.php?p=1260276#post1260276
で配布されているProgramName.dllプラグインを試してみたのだが、取得できるのは
フォルダーパスが省略されて "ファイル名.拡張子" だけとなっています。

呼び出し元のアプリ毎の処理をスクリプト側で?:演算子を使って条件分岐させる必要が
出てきたのに、対処法が見つからなくて困っています。
0373371 (ワッチョイ a38a-ltLK)
垢版 |
2018/04/17(火) 06:27:39.17ID:+KyDGZ420
>>372

使用アプリはコンソールアプリとは限らないためバッチファイルは使えません。

1つのスクリプトを複数のアプリで共有しなければならないケースが最近よくあります。

特に、多数のメディアプレイヤー等のDirectShowアプリから呼び出される
ffdshow video processorでAvisynthを使う時、ffdshow標準のプリセット自動読み込み機能
だけでは対応しきれない複雑な条件分岐を?:演算子とユーザー定義関数で実装する必要性が
出てきました。

そのためにも、呼び出し元のアプリが何であるかをはっきり識別できる必要があります。

ProgramName.dllプラグインは "C:\foo\foo.exe" も "C:\ber\foo.exe" も共に "foo.exe" を
返してしまうためこの2つを区別することができません。

またバッチファイルのIFコマンドなども、対応アプリがコンソールアプリ等コマンドラインでの
自動実行に対応したものでなければなりません。
0376名無しさん@編集中 (ワッチョイ b39f-LJHW)
垢版 |
2018/04/17(火) 15:26:52.40ID:mewX3XQG0
呼び出し元のアプリごとに処理が代わるならそれごとにスクリプト組むのが普通だわなぁ
同一スクリプトでコメントアウトで対処することも多いけど
呼び出し元アプリがCLIだけじゃないっていうんだからバッチで振り分けてるわけではなく
ユーザー自身がそのスクリプトをどのアプリに食わせるか判断してるわけだし
自分で判断できるなら自分でコメントアウト箇所いじれるでしょという気はする
0377名無しさん@編集中 (ワッチョイ 23ec-ycE0)
垢版 |
2018/04/17(火) 15:57:04.67ID:GjWzJu8g0
>>376
ffdshowでAvisynthを使うという例が書いてあるんだから、
 「複数のアプリがffdshow経由で同一スクリプトを呼び出すので
  そのスクリプトの中でアプリごとの分岐処理がしたい」
という要望自体は理解できるんじゃないか?
0378名無しさん@編集中 (ワッチョイ 83f7-ycE0)
垢版 |
2018/04/17(火) 19:59:40.99ID:o1+lgvL90
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時間半ぐらいで書き上げた手抜きの即席プラグインなのでうまく動かなかったらすまねぇ・・・
それと動作に追加でインストールが必要なランタイムはないはず
0379名無しさん@編集中 (ワッチョイ 83f7-ycE0)
垢版 |
2018/04/17(火) 20:02:28.10ID:o1+lgvL90
ごめん追記で書かせてもらうけど・・・

仕様として、内部でワイドバイト文字列からマルチバイト文字列に変換してるんだけど、
その時に変換できない文字があると「?(半角疑問符)」に置き換わるようになってます

なので使うときはそういう文字がないようにしないと
取得したプログラム名やパスを文字列比較などに掛けて分岐する時に問題が起こるかもしれない

まぁよほどファイル名やファイルパスに特殊な文字を使ってないと引っかからないと思うので
そこまで気にしなくてもいいはず

このプラグインの原案は結構前に出来上がってたんだけどやる気失ってた所だった
ちょうどピンポイントに困ってる人がいたのでやる気振り絞って書ききってみた 動くか分からないけど・・・
0381371 (ワッチョイ a38a-ltLK)
垢版 |
2018/04/17(火) 20:51:23.59ID:+5wi3VTr0
>>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"
と正しい値を返してきます。

たぶん起動時のコマンドラインをそのまま解釈している仕様のためと思われます。
0382371 (ワッチョイ a38a-ltLK)
垢版 |
2018/04/17(火) 21:13:26.71ID:+5wi3VTr0
あとそれから、今かなり強引な手法でアプリのフルパス等のプロセス情報を取得する方法を
思いつきました。

まず、AvisynthからVBScriptの実行を可能にするwarpsharp.dllプラグインを導入します。
次に、VBScriptからWin32APIをはじめ任意のDLLを呼び出し可能にするSFC miniを導入します。

そして、SFC miniを使ってkernel32.dllのGetCurrentProcessId()関数を呼び出しアプリの
プロセスIDを取得し、これに基づくプロセス情報のオブジェクトをWMIを使って取得するコードを
VBScriptで書きます。

あとはこのVBScriptをwarpsharp.dllプラグインのWScript()/WSInvoke()フィルターを使って
呼び出すだけです。

時間があるときにこのVBScriptのコーディングに挑戦してみようと思います。
0383名無しさん@編集中 (ワッチョイ 83f7-ycE0)
垢版 |
2018/04/17(火) 21:25:17.28ID:o1+lgvL90
>>381
空文字列が返ってくるのはすまねぇ俺のミスだ
ちょっと今修正してる

ご指摘の通り、コマンドライン引数を取得して呼び出したプログラムの文字列を取り出すから、
呼び出したコマンドがフルパスじゃないの想定してないんだよね・・・

修正方法は考えるけどちょっと時間かかるかも
0385名無しさん@編集中 (ワッチョイ 83f7-ycE0)
垢版 |
2018/04/17(火) 22:23:50.41ID:o1+lgvL90
連投ごめんなさい

ttps://www.axfc.net/u/3904037

> そして、コマンドプロンプトから
> >app
> として起動した場合、

これをちょっと何とかしてみようとやってみた 手元でavs2pipemod -y4mp input.avsとすると、
GetProgramName2(false)でavs2pipemod.exe、GetProgramName2(true)でC:\hogehoge\avs2pipemod.exe、
と表示されててパット見改善できたっぽいんだけどどうかな?

ちゃんと動くようなら正式にソースコード書き換えたいんだけど・・・

私は寝るので本格的に反応できるのは明日の夕方以降になるかもしれません
0387名無しさん@編集中 (ワッチョイ 83f7-ycE0)
垢版 |
2018/04/18(水) 20:42:51.66ID:MIe0FIfX0
ttps://github.com/enccc/AviSynth-GetProgramName2/releases

手元では問題ないっぽいからアップした
バイナリは>>385と殆ど変わらないはず

>>386
ごめん入れ違いになったけどGetModuleFileNameを使うやつ今あげちゃった
後日読んで参考になった所あったらソースにいれちゃうね
0388名無しさん@編集中 (ワッチョイWW f66c-4hNP)
垢版 |
2018/04/23(月) 02:04:21.25ID:I4MdbuMi0
avisynth2.5.8MTを使ってて、avisynth+を導入してみたのだが、その後aviutlを起動すると応答なしになる。

avisynth.dllを元に戻すと正常に使えるようになるので、ここだと思うのだけど、+にする場合、他に何か必要なものあるんです?
結構調べたのだけどわからず…
もしかして、以前の2.5.8がいたらダメとかある?

環境
os:windows7 64bit pro
avisynth2.5.8MTは同居
0389名無しさん@編集中 (ワッチョイ 4ee8-Mp6C)
垢版 |
2018/04/23(月) 09:27:00.91ID:9OsjQ0bU0
>388
例えば
Avisynth 2.6.0 MT 32bit
Avisynth+ xxxx 64bit
の同居はできるけど、32bit同士は同時同居はできないんじゃ?

avisynth.dllの差し替えが毎回必要になると思うのと
両方で使えるプラグインだけに絞らないと変になりそう
0391名無しさん@編集中 (アウアウアー Sa06-4hNP)
垢版 |
2018/04/23(月) 10:41:01.15ID:OyNqVxyza
>>388
うーん
やはり+入れてるのに、2.5.8がいるのが悪いのかな

>>390
pop@4bit氏のL-SMASH Worksつかってますね。
2.5.8ではavspmodからaviutl呼び出して、編集とか可能です。
aviutl単体で起動しても、応答なしになります。
0393名無しさん@編集中 (アウアウアー Sa06-4hNP)
垢版 |
2018/04/23(月) 14:27:23.93ID:OyNqVxyza
>>392
同居というか、設定ファイルとかは残してるってだけですね。
systemの方には+のavisynth.dllしかおいてないです。
なんか、avsfilterが悪さしてるっぽいのを、参考サイトの管理人から教えていただいたので、帰宅したら試してみます。
0394名無しさん@編集中 (ワッチョイ e3ec-9jjH)
垢版 |
2018/04/23(月) 15:06:30.23ID:2weNB93n0
全体的に説明不足すぎる。何をもって同居と言ってるのかさっぱりわからん。
設定ファイルってなんのことだよ。「2.5.8がいる」ってどこにだよ。
どのバージョンのAvisynth+をどういう方法でインストールしたのかとか
状況を他人にわかるように説明する努力くらいしてくれよ。
0395名無しさん@編集中 (ワッチョイ 9bf7-9jjH)
垢版 |
2018/04/23(月) 18:25:07.77ID:9OsjQ0bU0
そもそもAviSynthに設定ファイルなるものは存在しない
そして同時に複数のAviSynthは同居できない(32bitと64bitとで別バージョンを使う場合を除く)
AviSynth側の問題なのかAviUtl側の問題なのか切り分けてない

わざとなのか天然なのかわからないが問題が発生する状況を詳細に書かずぼかしている

これで解決させられるほどこのスレエスパー揃いじゃないよ

他の人も言ってるけど何をしたら問題が起こるのかを特定して、その現象が発生する最低要件を見つけて、
これ以上簡単に再現する方法が無いだろうというところまで絞り込んだ上で質問したほうが質問する側も回答する側も回答しやすいし解決しやすい
0398名無しさん@編集中 (アウーイモ MM47-4hNP)
垢版 |
2018/04/23(月) 19:36:49.88ID:PRutvX9eM
同居といってるのは、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+で動くようになりますでしょうか?
0399名無しさん@編集中 (ワッチョイ 8311-9jjH)
垢版 |
2018/04/23(月) 19:48:23.46ID:2g6F1r+U0
>>398
avsfilterはaviutlからavisynthのプラグイン・関数を使うためのやつだっけ?
おそらくavsfilterのソースを改造するしか対処法はないと思う

とりあえず2.5.8なavisynth.dllをavsfilterと同じディレクトリに置いてもダメだったら諦めるしかないと思う
0400名無しさん@編集中 (ワッチョイ e3ec-9jjH)
垢版 |
2018/04/23(月) 20:23:45.09ID:JATYulIJ0
r1574のインストーラだと、古いAvisynth環境をバックアップするというオプションがあるんだっけか。
AviUtlも古いし、avsfilterなんぞ今時使うこともないだろうから、
AvisynthもAvisynth+もAviUtlも一度全部アンインストールして、
AviUtl 1.00とAvisynth+ r2664をゼロからインストールした方がいいと思うよ。
0402名無しさん@編集中 (ワッチョイWW f66c-4hNP)
垢版 |
2018/04/23(月) 21:14:04.71ID:I4MdbuMi0
>>399
そうです
aviutlでavisynthのプラグイン使えるようになるやつです。
先程帰宅したので、avsfilter.dllを2.5.8のディレクトリから外したら、起動できるの確認できました。
avisynth+だとavsfilter.dllはNGなのがわかってスッキリしました。

皆様ありがとうございます。
0403名無しさん@編集中 (ワッチョイ 71b3-SD/1)
垢版 |
2018/04/26(木) 19:29:32.40ID:R1YFXgVZ0
理解できてない気がするので質問です
インストーラすると
avisynth.dll (x86)他、avisynth.dll (x64)他
ができますが自分は今はx264(x64)をx86で実行させていますがavisynth.dll(x64)で実行させるにはどうしたらいいのでしょうか?
(そうすればパイプを通さ無くなるのとavisynth.dllのx64が使えるため早くなる・・・はず)
x86とx64の両方のインストールはロゴ確認、Trimがあるためaviutlがあったほうが便利なので使っています
ご教示お願いします
0407名無しさん@編集中 (ワッチョイ 8111-luqG)
垢版 |
2018/04/26(木) 20:48:48.89ID:b86qoxGH0
パイプ入力をやめたら早くなるとかいうものじゃないと思う(パイプ入力のペナルティーは最小の意味)
avs2pipemod64.exe(つまり64bit版)をフロントエンドに使えば64bit版avisynthが使われる
0408名無しさん@編集中 (ワッチョイ 51f7-luqG)
垢版 |
2018/04/26(木) 20:59:10.25ID:68Na+cUR0
>>406
avs2pipemodがx86ならAviSynthもx86が呼び出されているね
もしAviSynth x64を使いたいなら、x264 x64に直接読ませればいい avs2pipemodのx64版を使ってもいいけどな

君の書いてる書式に合わせるなら
x264(x64) "input.avs --profile high [option] -o output.mp4

当然ながらAviSynth側もx64が使われるんでプラグインとかも要チェック
0410名無しさん@編集中 (ワッチョイ d9ec-luqG)
垢版 |
2018/04/26(木) 21:19:54.49ID:GGiJnHZv0
>>409
・64bit(x64)のアプリからavsを呼び出せばx64のAvisynthが使われる
・32bit(x86)のアプリからavsを呼び出せばx86のAvisynthが使われる

という極めて単純な話なんだが・・・。
0412名無しさん@編集中 (ワッチョイ 71b3-SD/1)
垢版 |
2018/04/26(木) 22:54:49.73ID:R1YFXgVZ0
>>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は非対応らしく諦めました
0414名無しさん@編集中 (ワッチョイ faca-HRP5)
垢版 |
2018/05/18(金) 18:22:42.73ID:3s94tuv30
DVD2AVIのスレが落ちてるのでここで
DGIndexのBS11対応版、最近のBS11のTSで
フィールドオーダー入れ替えますか?が出るね
YES押したらおかしくなるのでNO押してる

新しい対応ビルド待ち
0416名無しさん@編集中 (ワッチョイ 768a-3Krt)
垢版 |
2018/05/20(日) 15:21:44.13ID:7RxsV8Ba0
AviSynth2.6 MTを導入したところL-SMASH Worksで読み込みをすると
「[Fatal]: Failed to avformat_open_input」
と表示されて読み込めないのですが、相性の問題なのでしょうか...?
ちなみにDirectShowSourceでは真っ暗になったり画面崩壊したりするいつもどおりの状態ですが、使えることは使えました。
0418名無しさん@編集中 (ワッチョイ b91f-UI4l)
垢版 |
2018/05/24(木) 22:31:56.67ID:ctuezOHy0
お世話様です。
クリップの一部を別クリップの同じシーンに差し替えるという編集をしたいんですが
「クリップ1のフレームAからフレームBまでの範囲を、クリップ2のフレームXから同数の
フレーム分だけ置換する」というようなユーザー定義関数はありませんか?
0421418 (ワッチョイ b91f-UI4l)
垢版 |
2018/05/24(木) 23:09:48.81ID:ctuezOHy0
>>419
この機に覚えますか・・・

>>420
試そうかと思ったんですけど、これってクリップ2(sourceClip)の開始フレーム指定とか出来ないのでは?
0422名無しさん@編集中 (ワッチョイ 29f7-vxiR)
垢版 |
2018/05/24(木) 23:19:48.84ID:KusmJ/ym0
>>420
そういやRemapFramesってあったなぁ

>>421
ttps://pastebin.com/Xhnu7j2s
頭の体操ついでに作ってみた ものすごく簡単なチェックしかしてないから動かなかったら済まない
細かいエラーチェックしてないから完成度高めたければ自分で弄ってくれ
0425名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/25(金) 12:28:18.59ID:g3WNEyH+0
>>418

RemapFramesに入っている関数で楽にできる。

ReplaceFramesSimple(V01,V02,mappings="[0 250] 300 [400-500] ")

これでV01の映像上にV02の映像をマッピングで指定したフレームのみ置き換え。
詳しくは英語wikiにも書いてあるけど、それでわからなくて俺でわかることなら少しはサポートできるかもね
0426名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/25(金) 12:43:07.71ID:g3WNEyH+0
よくよく考えたら、これだと同フレームしか差し替えできないからだめか

もう面倒だからほかの人も言っているtrimを使って力業でもいい気がしてきた。

V01.trim(0,100)++V02.trim(50,100)++V01.trim(150,300)

こんな感じでさ
0428名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/25(金) 18:24:16.52ID:g3WNEyH+0
>422さんのスクリプト見たら自分の書き込みが悲しくなったのでとりあえずMod作成。

ReplaceClipMod(clip base, clip alt, int start_base, int start_alt, int length)

baseクリップの設定開始フレームからaltクリップの開設定フレームをlength分だけ置き換えます
しょぼいスクリプトに張ろうかと思ったけど無いので次に。
0429名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/25(金) 18:24:51.05ID:g3WNEyH+0
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)
}
0431名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/26(土) 07:43:33.88ID:KhWbCmOb0
>>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フレームに置き換えることができる
0432名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/26(土) 07:47:47.80ID:KhWbCmOb0
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)

こうやってフレーム数を表示させながら確認するとわかりやすいよ
0434名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/26(土) 08:48:18.23ID:KhWbCmOb0
またもやミス発見

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)

に変更したほうがいいな
0436422 (ワッチョイ 29f7-vxiR)
垢版 |
2018/05/26(土) 20:19:47.15ID:mlSWbOkk0
割と需要あったみたい?だからちょっと丁寧に書き直したよ

ttps://pastebin.com/vy851k1i

start = 1 の時に不正な動作をするのを修正
endが0や負の数の時に不正な動作をするのを修正 というより入力したらエラー出して弾く

2つの入力クリップの解像度と色空間さえあっていれば、
映像のフレームレート、音声の有無、音声のサンプリングレート、音声のサンプルタイプが違っていても処理を可能とした
今までどおり、フレームレートも音声も全てbase側のものを使うようになっている

altの方にoffsetをつける用にした方が良いのかなとは考えたけど中身がすごく複雑になるし、
ReplaceClip(base, alt.Trim(x, y), start, end)
みたいにして調整できるし良いかなって・・・
0437名無しさん@編集中 (ワッチョイ 93a2-Ockd)
垢版 |
2018/05/27(日) 11:12:23.39ID:ijryAf5q0
>>436
> altの方にoffsetをつける用にした方が良いのかなとは考えたけど中身がすごく複雑になるし、
> ReplaceClip(base, alt.Trim(x, y), start, end)
> みたいにして調整できるし良いかなって・・・

それだと
ReplaceClipMod(V01, V02, 200, 100, 50)
みたいな感じでbaseクリップより若いaltの開始フレームだとまた書くのが面倒になるのでは?
って思ってもみたり

まあ俺もMod作っておいてなんだけど、普段ならtrimだけで処理するよなーと
0438名無しさん@編集中 (ワッチョイ 29f7-vxiR)
垢版 |
2018/05/27(日) 22:43:25.25ID:hFtjh66a0
>>437
確かに普段はTrimでするかな というより、普段から映像置き換えとかしないからなぁ・・・
あえて関数を作ったりプラグイン関数を導入してまでやろうとしなかったっていうのが正解に近い
0439名無しさん@編集中 (ワッチョイ 151f-kM6D)
垢版 |
2018/05/31(木) 00:30:07.50ID:WELP8hsS0
>>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を取り除くと一応エラーを出さずに表示できます。
(勿論意図した出力結果ではありませんが)
0441名無しさん@編集中 (ワッチョイ 4511-msj4)
垢版 |
2018/05/31(木) 14:08:32.32ID:CVkP/tbo0
>>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は消したけどお好みで
0442439 (ワッチョイ 151f-kM6D)
垢版 |
2018/05/31(木) 23:37:10.80ID:WELP8hsS0
>>441
レスありがとうございます。
ただ貼っていただいた関数でも解消しなかったので、読み込みプラグインを
最小限にして手あたり次第試してみたのですが、CombMask-1.1.0を
CombMask-1.0.0に変更したところ件のエラーは出なくなりました。
が、出力されたクリップのロゴ部分にNR効果が適用されているようには
見えないのですが、私この関数の効果を勘違いしてます?
0444439 (ワッチョイ 151f-kM6D)
垢版 |
2018/06/01(金) 21:28:51.50ID:iG6Eca5h0
>>443
なるほど、回答ありがとうございます。
今 BS11overlay() でやってるロゴとテロップ消去が楽になるかと期待しましたが、
そんなうまい話は無いですね・・・(編集すごくメンドクサイ)
0447名無しさん@編集中 (ワッチョイ d610-/vbK)
垢版 |
2018/06/03(日) 17:39:17.80ID:VcUUsYyc0
セロテープ どーです

http://satch.tv/?mref=787
0448名無しさん@編集中 (ワッチョイWW cd9e-k5Cw)
垢版 |
2018/06/05(火) 17:07:33.42ID:FIoLoMgC0
60iテロップを24p化する際、60iテロップの開始フレームと終了フレームを指定するにはどのようなavsを書けばよいのでしょうか?
0449名無しさん@編集中 (ワッチョイ 3aa2-667V)
垢版 |
2018/06/05(火) 18:18:11.97ID:jDgYb/2J0
>>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値修正したり
該当フレームだけを処理したりしてるな
0450名無しさん@編集中 (ワッチョイ 168a-Tt8s)
垢版 |
2018/06/06(水) 02:55:55.65ID:p90NIYP90
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の場合は、長々と動画を読み込んでしまいます
テキストファイルを出力して、さっさと終わる方法を教えてください
お願いします
0453名無しさん@編集中 (ワッチョイ 168a-Tt8s)
垢版 |
2018/06/06(水) 03:18:17.68ID:p90NIYP90
あ、なるほど。いわれてみれば当たり前の話ですね
ありがとうございます

ただ何かちょっとすっきりしませんね…
例えば、return文を使うとか、何かお約束の方法があっていいような感じも
0456663 (テトリス MM5e-Ftq7)
垢版 |
2018/06/06(水) 14:03:50.85ID:6ONh6wemM0606
aviutilやvirtualdubで開いてから、5〜10秒後にtaskkillコマンドで閉じるとか
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況