Avisynth 初心者質問スレ Part5at AVI
Avisynth 初心者質問スレ Part5 - 暇つぶし2ch749:名無しさん@編集中
12/12/09 12:58:55.44 2zWr4F1g
何のためにビルドしたいのか意味わからんけどRemoveGrain.cpp内で定義を切り替えればいいだけ

750:名無しさん@編集中
12/12/09 20:36:01.13 xM9nQH+q
>>750
定義の切り替えはこれかな?
//#defineMODIFYPLUGIN1// creat Repair plugin instead of RemoveGrain, 0 = compatible with RemoveGrain
//#defineSHARPEN1
//#defineBLUR 1
//#defineSSE2_TEST// ISSE2 version that can be used side by side with the SSE version
//#defineDEBUG_NAME// for debugging
//#defineISSE2// P4, Athlon 64, Sempron 3100
//#defineISSE3// Prescott P4
//#defineCVERSION// for debugging only

ちなみに、MODIFYPLUGINを有効にすると、SHARPENまたはBLURの定義は使用できなくなる(どっちも有効にするとエラーが出る)

751:名無しさん@編集中
12/12/09 22:26:40.30 xM9nQH+q
>>749
速度がどれだけ向上するかだけど、実際に測ってみたら誤差の範囲内だった
xhmikosr氏そのまま…12.25fps
xhmikosr氏のソースを自ビルド…12.21fps
どちらもRemoveGrainとRepair

スクリプト内容
MPEG2Source("E:\test.d2v")
DoubleWeave.SelectEvery(5, 0, 3)
LSFmod(defaults="slow")

752:名無しさん@編集中
12/12/09 22:40:34.51 xM9nQH+q
>>750
Repairをビルドしたい場合は
//#define MODIFYPLUGIN 1の//を削除すればOK

RSharpenをビルドしたい場合は
//#define SHARPEN 1の//を削除すればOK

ただし、>>750の通り、MODIFYPLUGINとSHARPENを同時に有効にするとエラーが出るので、どちらかに絞ろう
また、ファイル名はRemoveGrainのままなのでリネームする必要もある

SSE2を有効にしたい場合は//#define ISSE2、SSE3を有効にしたい場合は//#define ISSE3の//を削除する
両方の//を削除すると警告が出るので、どちらかに絞ろう

753:名無しさん@編集中
12/12/09 23:17:01.58 KVDQHmPd
>>751
で、一番肝腎な本家(kassandro氏)との比較はないの?

754:名無しさん@編集中
12/12/09 23:34:27.54 xM9nQH+q
>>751
1の値間違ってたのでもう一度

オリジナル版?(SSE3のバグ修正版)…13.24fps
xhmikosr氏そのまま…13.25fps
xhmikosr氏のソースを自ビルド…13.21fps

スクリプト内容は>>751と同じ

755:名無しさん@編集中
12/12/11 20:26:33.34 RsA1bZGX
次世代フレームサーバー、VapourSynthを流行らせよう!
スレリンク(avi板)

756:名無しさん@編集中
12/12/11 23:40:41.11 rjc9JaH9
VapourSynthなんてみんな知ってるし
いちいち出張してこなくてもいい
興味があれば自分から調べる

757:名無しさん@編集中
12/12/14 10:39:41.51 1hLTNfdK
放送局のロゴ解除について質問があります

↓の手順でロゴデータを作成し透過性ロゴフィルタでロゴを消しているのですが
一部の放送局(サンテレビ)では綺麗に解除出来なくて、悩んでおります
ロゴデータは3時間分のアニメを閾値8で作成しています。

他の放送局では非常に綺麗に解除されているので、不思議でなりません
動くようなロゴでもなく、フィードin,outがある訳でもない、ロゴなんですが謎です

対処、対策などあればよろしくお願いします

1)以下のようにしたavsをAviUtlで読み込む
※YV12toYUY2は、tritical氏の「ddcc」フィルタに含まれる関数です。
DGDecode_MPEG2Source("???.d2v")
YV12toYUY2(itype=0,interlaced=true,cplace=0)

2) 4:2:0化フィルタ(設定:縦1 横1 プログレッシブ・オフ)をオンにしてロゴ解析をする
※色変換の設定は、入力出力ともデフォルトのBT.601のままにしておけばよいです。

758:名無しさん@編集中
12/12/14 11:21:59.59 Yu7PyP0d
サンテレビは 1920x1080 なのが原因とか
通常は 1440x1080

759:名無しさん@編集中
12/12/14 11:34:32.13 1hLTNfdK
BS11も1920x1080ですがこちらは綺麗に解除できているんですよね

760:名無しさん@編集中
12/12/14 11:40:43.96 tjOTbPrD
サンテレビっていうかデジタル放送ソースは709だろ?なんで601なんだ。バカじゃないの?

761:名無しさん@編集中
12/12/14 11:45:15.57 1hLTNfdK
BT.709なのに入力をBT.601にする理由はEraseLOGOがBT.601で処理することを前提にしているかららしいです

ただ、もちろん709でもロゴデータは作り試しましたが結果は同じでした

762:名無しさん@編集中
12/12/14 12:03:10.81 h2oXzHRQ
>>757
こんな物で、妥協をすると言う手はある。

URLリンク(www.nmm-hd.org)

763:名無しさん@編集中
12/12/14 12:03:22.79 ceE7Rj/F
サンテレビのロゴがどんななのか(濃淡とか)は知らないけど、むしろロゴスキャンしすぎではなかろうか
俺はロゴデータスキャンする時は・・・
・スキャン範囲がなるべく単一色になる部分だけ残してTrim
・なるべくいろんな色を各100フレームくらい拾えるようにする(黒白赤緑青が基本)
・トータルで1000~2000フレーム程度
これで綺麗に消せる

764:名無しさん@編集中
12/12/14 12:04:19.09 vqgX4Ih/
>>761
サンテレビでうまくいかないのは単純にノイズが多すぎるからだと思うので
logoNR使ってみて

765:名無しさん@編集中
12/12/14 12:08:15.57 tjOTbPrD
ていうかaviutilで読み込んでインタレ解除された状態でロゴ解析してるとかじゃないのかい?
avs側からdelogo経由でロゴ抜きするときはとりあえずインタレ解除前に処理するのがセオリー

766:名無しさん@編集中
12/12/14 12:11:33.95 Yu7PyP0d
>綺麗に解除出来なくて

具体的に
ロゴの位置がずれる、ロゴの大きさが合わない、うっすらロゴが残る、など

>3時間分のアニメ

解析ソースに問題はないのか?
全フレームにロゴが表示されてないとダメだけど
途中でCMが入ったりしてロゴが消えたりしてるとか

あとは、フィルタの適用順がおかしいとか
AviUtlでよけいなものをONにしてるとか
色々あるよ

767:名無しさん@編集中
12/12/14 12:11:36.52 tjOTbPrD
書き忘れ

ていうかaviutilで読み込んでインタレ解除された状態でロゴ解析してるとかじゃないのかい?
avs側からdelogo経由でロゴ抜きするときはとりあえずインタレ解除前に処理するのがセオリー
aviutilでロゴ解析するときも解除前の映像で解析しないとつじつまが合わない。

768:名無しさん@編集中
12/12/14 12:27:44.61 1hLTNfdK
>766
具体的にはシーンによってうっすら残ったり、透明にくり抜いたような状態です、完全に消えているシーンもあります

解析ソースはCM部分、フェード部分は全て削除しています

フィルタの適応順はロゴ解析が先頭で、他の4:2:0化フィルタ以外すべてOFFです

>767
おっしゃる通りもちろんロゴ解析においてインタレ解除はしていません

769:名無しさん@編集中
12/12/14 12:31:52.78 1hLTNfdK
>762>764
↓のようにavspmodでマクロ出力した記述に
logoNRをどう差し込んで良いのか分からず断念してました

DGSource("hoge.dgi")
AudioDub(last, WavSource("hoge.wav"))
AssumeFrameBased.AssumeTFF()
Trim() ++ Trim() ++ Trim()
audio = KillVideo()
EraseLOGO(logofile=".lgd",pos_x=0, pos_y=0, depth=128, yc_y=0, yc_u=0, yc_v=0, start=0, fadein=0, fadeout=0, end=, interlaced=false)
EraseLOGO(logofile=".lgd",pos_x=0, pos_y=0, depth=128, yc_y=0, yc_u=0, yc_v=0, start=0, fadein=0, fadeout=0, end=, interlaced=false)
Src = KillAudio()
oldcount = Src.FrameCount
oldfps = Src.FrameRate
T1 = Src.Trim()
.
.
T2 = Src.Trim()
.
.

改行が多いと叱られたで一部のみ記載します

770:名無しさん@編集中
12/12/14 13:00:12.70 1hLTNfdK
とりあえず
logoNRを
src = DGSource("hoge.dgi")

dlg = src.EraseLOGO(logofile="hoge.lgd",pos_x=0, pos_y=0, depth=128, yc_y=0, yc_u=0, yc_v=0, start=1, fadein=0, fadeout=0, end=0, interlaced=false)
logoNR(dlg, src, chroma=true, GPU=true, l=0, t=0, r=-0, b=-0)
return last

こんな感じで使ってみましたが変化なしでした

771:名無しさん@編集中
12/12/14 15:24:07.98 pUv206Ay
>>770
GPU=trueならFFT3DGPU()が動くか確認。
動かないならdllを入れるか nr="" でTNLMeans等の好きなNRを登録すればOK
あと、範囲指定を忘れてる。SUNなら l=1716,t=66,r=-98,b=-984 くらい?
元々破綻したフレームにロゴ消しを試みてるので綺麗に消えるワケないから諦めも肝心だよ。

釣りだと思うが ID:tjOTbPrD をマネしちゃダメだぞ。

772:名無しさん@編集中
12/12/14 16:12:32.44 1hLTNfdK
>771
指摘どうもです
FFT3DGPU()は正常に動いてます
範囲指定ってロゴの座標ですよね
この座標の指定値をどこから取得してくるのかわからかなかったので
レスして頂いた値でlogoNRを適用してみましたが、改善はしませんでした

SUNの話ををしている時点で関西だとお気づきでしょうが、地デジ、BS、CS
全チャンネルの中でSUN、KBS京都この2局のロゴだけはうまく消せません
元々消しにくい局なのか、そうではないのか・・・

773:名無しさん@編集中
12/12/14 16:22:01.56 yYw9BP+W
綺麗に消えないのは完全にレート不足
その2局は地デジなのに1920x1080なんてアホなことやってるから
ちょっと動いただけで映像が破綻するので諦めるしかないよ

774:名無しさん@編集中
12/12/14 16:25:42.41 1hLTNfdK
ぁ、なるほどやっぱり局の問題なんですね
その答えが頂けてスッキリしました

775:名無しさん@編集中
12/12/15 01:07:13.61 vawui5LZ
>>773
アホ具合で言うなら、地デジでフルセグ1920x1080+1セグをマルチ編成してる奈良テレビが優勝だと思う。

776:名無しさん@編集中
12/12/15 01:33:46.47 fs3DRk+O
自局の放送映像見て何も思わないんだろうか
内部の人は

責任というかプライドというか大事なものがすっぽりと欠落してる
と見る度に思う

777:名無しさん@編集中
12/12/15 01:49:57.38 vawui5LZ
(話振っといて何だけど、奈良テレビに関しては見るものが無いので何とも思わない。)

778:名無しさん@編集中
12/12/15 03:20:38.15 tDYwJK9c
SUNのプライドは、阪神戦ホーム7回裏の応援でも音割れしない音質と、
バックスクリーンのカメラから撮ったバッターボックスの画質(選手以外ほとんど静止画)だッ!

779:名無しさん@編集中
12/12/15 08:59:35.17 DUz1VduA
あー確かに音はいいんだよなーSUN
ヘッドフォンで聴いてると違いが分かる

780:名無しさん@編集中
12/12/15 14:33:33.88 rrR2VUK9
そういえば今度サンテレビで巨人の星の特別版を放送するんだな
巨人のアニメなんて需要無いのに何を考えてんだか。

781:名無しさん@編集中
12/12/15 14:41:42.50 tDYwJK9c
クリケット巨人の星への布石か?

782:名無しさん@編集中
12/12/15 15:31:25.49 Us6TCRbe
でも巨人の星って、つまるところ負け組巨人選手と勝ち組他球団選手達の話でしょ
姉と、昔は自分を好きだった女を寝取られ、相棒と親父も他球団で大活躍

783:名無しさん@編集中
12/12/15 16:49:35.87 sbQKhVQh
特別編は花形メインでしょ

784:名無しさん@編集中
12/12/15 23:09:46.20 IWzaWPhz
MPEG2Source("hogehoge.d2v", cpu=0)
AudioDub(last, WavSource("hogehoge.wav"))
AutoDeint()
Zoom(false,114514,893893,30,30,206,0,0,154)
#~ ここで24fps化する何か
Spline36Resize(1280,720,0,0,-0,-0)
return last

Zoom関数でL字解除する時にAutoDeintしてから24fps化したいんですけど、ここで何を使えばいいか教えてください。

785:名無しさん@編集中
12/12/16 04:36:27.44 65Ya2lUm
>>784
あなたのやりたいことは、とにかくL字を消したいってことだよね?
だとしたらそれ用の関数が作られているので、それを使うのが一番簡単
URLリンク(anibin.blogspot.jp)
ただし、L字の始点・終点部分はフレームがダブったり欠けたりするのは防ぎようがない
当然周期ズレを起こすので、L字部分だけ別処理をして最後にくっつけるのがいい

786:名無しさん@編集中
12/12/16 13:40:16.64 Ix57bxYq
>>785
ありがとうございます、説明不足でした
・本編は24fps
・L字開始終了部分が30fps
・Zoom関数の前ににAuto24FPS()を使うと干渉縞が出る
・Zoom関数の後ににAuto24FPS()を使うとかくつく
ので、これをきれいに解除するにはどうすればいいかと考えてました

787:名無しさん@編集中
12/12/16 13:41:29.96 Ix57bxYq
訂正:
・Zoom関数の後ににAuto24FPS()を使うと干渉縞が出る
・Zoom関数の前ににAuto24FPS()を使うとかくつく

788:名無しさん@編集中
12/12/16 14:03:22.80 9crH/NfE
Autoを使う限りカクツキは避けられない。
L字の入りと出が60iで映像も微妙に欠け具合が変わってるからね。
なので手動で分割するかDeLetterL系を使うしか無い。

789:名無しさん@編集中
12/12/16 14:06:50.12 Ix57bxYq
ありがとうございました、精進します。

790:名無しさん@編集中
12/12/16 14:20:16.55 Ix57bxYq
すいませんちょっと言い訳します
AutoのかくつきそのものっていうよりL字開始終了のところのです
>784で書いた
AutoDeint()
Zoom()
の順だとL字解除は満足いくので、そのまま24fps化できないかなと考えてました

791:名無しさん@編集中
12/12/17 00:32:58.62 r9lUXmKn
SelectEvery(5,,,,)でも使えば

792:名無しさん@編集中
12/12/17 02:33:34.12 WyJ/vVJl
>>791
ありがとうございます
Trim毎に適したプルダウン設定を当てればいいんですね、検索しながらやってみてます

793:名無しさん@編集中
12/12/17 03:09:32.96 WyJ/vVJl
\++Trim([,).AutoDeint().Zoom(false,,,,,,,,).SelectEvery(5, 0,1,2,4)

こんな感じにできました、本当にありがとうございました。

794:名無しさん@編集中
12/12/25 22:53:03.84 NZRaeL+A
ユーザー定義関数の中で外部プラグインて使えますか?
delogo(EraseLogo )を使いたいんだけど引数のエラーでうまくできない。

795:名無しさん@編集中
12/12/25 23:20:23.61 S0nsm3xZ
使えますよ、自作の関数の中にEraceLogoを入れて設定を楽に出来るようにしてます

796:名無しさん@編集中
12/12/26 02:08:53.90 9RZbB8tO
デジカメの時間軸ノイズ除去で出た残像を後から軽減するようなフィルタありませんよね?

797:sage
12/12/26 06:01:59.74 60m0Q35Z
>> 795 ありがとうございます。
無事、ユーザー定義関数内でEraselogoが使えるようになりました。
使えているという言葉に励まされ、試行錯誤&ぐぐっていたら↓↓こんなの見つけまして

お前らのショボイAvisynthスクリプト貼ってください part4
74 :名無しさん@編集中:2010/04/07(水) 07:35:18 ID:VC766J+4
# ロゴ表示開始又は終了地点でトップかボトムのどちらかの
# フィールドしかロゴがかかってないフレームのロゴを除去し
# クリップ全体でなくその単一フレームのみ返す関数

function HalfFieldDeLogo(clip clp, int "framenumber", bool "topfieldlogo", string "logofile"){
c=clp.Trim(framenumber,framenumber)
d=c.EraseLOGO(logofile=logofile,interlaced=true)
dc = d.SeparateFields() + c.SeparateFields()
cd = c.SeparateFields() + d.SeparateFields()
weaved = (topfieldlogo == GetParity(clp)) ? dc.SelectEvery(4,0,3).Weave() : cd.SelectEvery(4,0,3).Weave()
return weaved.AssumeFPS(Framerate(clp))
}


引数の""が必要ということだったようです。プラス上の74氏のもパク・・参考に1フレームのみの
片フィールドロゴ消しも関数に合成。avsの方の記述が非常に簡略化できました。
ありがとうございます。

798:名無しさん@編集中
12/12/27 02:16:52.18 RhaP3lNq
>>797に書かれている関数って
具体的にどうやって使うの?

EraseLOGO()の後にHalfFieldDeLogoを使うのですか?

厚かましいですが
使用例をお願いします

799:名無しさん@編集中
12/12/27 02:43:26.74 febelYdl
片フィールドロゴ消しなんてfadein=1/fadeout=1でいいんじゃないの?
普通に考えたら濃度はフィールド単位で増減させてるはずだから
fadeout=1なら0フィールド目100%、1フィールド目0%になるんじゃね?

800:名無しさん@編集中
12/12/27 03:22:00.85 0usd2WtL
>>798
HalfFieldDeLogo(適用したいフレームナンバー, トップフィールドならtrue, ロゴファイルのパス)
単純にこう
片フィールドだけ除去したいならEraseLOGO()は不要ってこと
(関数内でEraseLOGOを使ってるから、DLLを消してはダメ)
2つ目の引数については、要はロゴの出始めで片フィールドならトップ=trueでロゴの終わりで片フィールドならボトム=false
俺は片ロゴ除去にはDwShift()・UnDwShift()を使ってるからこの関数は使ってないけどね

具体例・・・1フレームが片フィールドロゴ、2-10フレーム目が普通のロゴ、11フレーム目が片フィールドロゴ
HalfFieldDeLogo(framenumber=1, topfieldlogo=true, logofile="logodata")
EraseLOGO(start=2, fadein=0, fadeout=0, end=10, depth=128, logofile="logodata", interlaced=true)
HalfFieldDeLogo(framenumber=11, topfieldlogo=false, logofile="logodata")

DwShift使用だと
EraseLOGO(start=2, fadein=0, fadeout=0, end=10, depth=128, logofile="logodata", interlaced=true)
DwShift(true)
EraseLOGO(start=1*2-1, fadein=0, fadeout=0, end=1*2-1, depth=128, logofile="logodata", interlaced=true)
EraseLOGO(start=11*2, fadein=0, fadeout=0, end=11*2, depth=128, logofile="logodata", interlaced=true)
UnDwShift(false)

801:名無しさん@編集中
12/12/27 07:38:29.40 6hXboJCZ
trueとfalseが逆だと思ったので、確かめてみた

上ふたつが表示はじめ、下二つが終わり際の片フィールドロゴに対する処理

c = HalfFieldDeLogo(framenumber=527, topfieldlogo=false, logofile=Lfile) #ok
d = HalfFieldDeLogo(framenumber=527, topfieldlogo=true, logofile=Lfile) #だめ

a = HalfFieldDeLogo(framenumber=6818, topfieldlogo=false, logofile=Lfile) #だめ
b = HalfFieldDeLogo(framenumber=6818, topfieldlogo=true, logofile=Lfile) #ok

TFFなら出始めはfalseで終わり際がtrueということかと。
あとこれは1フレームしか返さないので後で他のフレームと結合する必要があり,ちょっとめんどいかも。

そのへんをまとめてユーザー定義関数にしておくとEraseLOGOと手間があまり変わらずに片フィールドロゴの
処理までできてお手軽です。
(ていうかみなさんはスクリプトとかで自動化してたりするものなのかな?)

802:名無しさん@編集中
12/12/27 07:40:36.17 6hXboJCZ
初めて書いてみたものでお目汚しですが、こんな感じ。

function simpleErsLOGO(clip clip, int "start", int "end", int "apS", int "apE", string "logofile")
{
apS = default(apS,0)
apE = default(apE,0)
#通常ロゴ消し
clip =clip.EraseLOGO( logofile=logofile, start=start, end=end, interlaced=true)
#片フィールドロゴ消し
# 最終フレーム番号の取得
final_frame = clip.FrameCount() - 1
#開始地点片フィールド ロゴ消し
framenumber = (apS == 1) ? start-1 : nop()
Sfr = (apS == 1) ? clip.HalfFieldDeLogo(framenumber,topfieldlogo = false, logofile=logofile) : nop()
clip = (apS == 1) ? Trim(clip,0,framenumber-1) ++ Trim(Sfr,0,0) ++ Trim(clip,framenumber+1,final_frame) : clip

#終了地点片フィールド ロゴ消し
framenumber = (apE == 1) ? end+1 : nop()
Sfr = (apE == 1) ? clip.HalfFieldDeLogo(framenumber,topfieldlogo = true, logofile=logofile) : nop()
clip = (apE == 1) ? Trim(clip,0,framenumber-1) ++ Trim(Sfr,0,0) ++ Trim(clip,framenumber+1,final_frame) : clip
return clip
}
#### start end は普通の(片フィールドではない)ロゴの開始終了フレームを入力
# apS apE は前後の片フィールドロゴの有(1)無(0)
# 書き方例
#simpleErsLOGO( start=526, end=6817, apS=1, apE=1, logofile=Lfile)
#simpleErsLOGO( 526, 6817, 1, 1, logofile=Lfile)

803:名無しさん@編集中
12/12/27 10:59:21.37 FNUh8h/P
>>802
良い関数ですね。

うちでは通常のロゴ消しと半ロゴ消しは個別に別で扱いたいので
DwShift/UnDwShiftと併用して、こんな感じししています。

function EraseHalfLOGO( clip clip, string "logofile",int "Frame", int "Field" ){
clip = default(clip, "last")
field = default(field, 0)
clip = (Field==0) ? clip.EraseLOGO( logofile=logofile, start=(Frame-1)*2-1, end=(Frame-1)*2-1, interlaced=true ) : \
(Field==1) ? clip.EraseLOGO( logofile=logofile, start=(Frame+1)*2 ,end=(Frame+1)*2, interlaced=true ) : \
Assert( field < 2, "'field' choice is invalid" )
return clip
}

・使い方
logofile = ”hoge”
EraseLOGO(logofile=logofile, start=100, end=200 , fadein=0, fadeout=0, interlaced=true)
↑普通に片フィールドロゴでない範囲のロゴ消しをする。
仮に、その前後両方のフレームが片フィールドロゴだった場合の例↓

DwShift(true)
EraseHalfLOGO(logofile=logofile, Frame=100, Field=0) # 片ロゴ開始
EraseHalfLOGO(logofile=logofile, Frame=200, Field=1) # 片ロゴ終了
UnDwShift(false)

804:名無しさん@編集中
12/12/27 12:25:06.47 RhaP3lNq
>>799-803
皆さん具体的な使用例から、新たな関数までご親切にどうもありがとうございます

805:名無しさん@編集中
12/12/27 13:57:32.91 HE7FizUv
次回からロダにavsアップしてそれでやりとりしろ。

806:名無しさん@編集中
12/12/27 16:33:21.82 70okRzkS
ログに残った方が役に立たね?
ソース貼り付けるようなものだろ

807:名無しさん@編集中
12/12/27 16:41:09.34 k5bwRhoK
>>802
これ頂き
楽になりそうだわ

808:名無しさん@編集中
12/12/27 17:12:38.40 RhaP3lNq
>>802
私もこれにfadein,fadeoutを追加して使用したところ
大変満足のいく結果となりました

809:名無しさん@編集中
12/12/29 01:24:07.77 RwmedKM5
>>805-806
しょぼスレに投下してここでリンクでもいい気もするが?

お前らのショボイAvisynthスクリプト貼ってください part4
スレリンク(avi板)

810:名無しさん@編集中
12/12/29 23:29:33.37 xygWW/8P
この程度のスクリプトを態々ショボスレに貼る必要もないだろ

811:名無しさん@編集中
12/12/29 23:48:53.75 HnLgE3IH
お前ら本当に小さな事にこだわるな

812:名無しさん@編集中
13/01/01 16:54:52.99 o4sYoGWi
音声多重の放送TSの音声をすべてdemuxする方法教えてくれ。
どうやっても最初の音声しかdemuxできないんだが。

使用ツールはmurdoc+dgindex
放送TSは第63回 紅白歌合戦.ts

813:名無しさん@編集中
13/01/01 17:00:53.94 +sEF8EgC
>>812
ts2aac

814:名無しさん@編集中
13/01/01 17:26:55.45 Iyn7aXqM
dgindexのメニューのstream→detect PIDとかset PIDで
他のaacのトラックを選べると思うけど違法だしスレ違い

815:名無しさん@編集中
13/01/01 17:54:26.50 o4sYoGWi
>>813-814
どうもありがと。
色々やってるうちにどうやら自己解決できたっぽい。

murdocで無劣化カットする際に
optionのclippingの"PID is the minimum select"が有効になってたのが原因で
生成したtsファイルに複数の音声が含まれない設定になってたようだ orz

あとは814の言うように-AP=audioPIDで主音声と副音声のPIDを指定すれば個別抽出できるようだね

816:名無しさん@編集中
13/01/05 08:41:48.51 wNEx9gUP
Avisynthで動画のフィールドオーダーを自動判別することはできますか?
BSJAPANなどではTFFとBFFが混在していて、それをいちいち確認するのが手間なので自動化できないかなと

817:名無しさん@編集中
13/01/05 13:48:12.83 5bCqRjOu
元動画がmpge2のとき限定だけど、m2v_vfp使えばフィールドオーダーを固定できるよ。

818:名無しさん@編集中
13/01/05 14:56:24.81 58JP75it
AssumeFrameBased()
AssumeFrameBased().ComplementParity()
AssumeBFF
AssumeTFF
で強制することは出来るけど素材のフィールドオーダーを確実に判定する方法は無かったんじゃないかな?
いちおうこうすれば「現在の」フィールドオーダーは分かるけど、フレーム単位での処理以外に使うのはオススメしない。
ConditionalFilter(last,TFFクリップ,BFFクリップ,"GetParity(current_frame)","=","true")

819:名無しさん@編集中
13/01/05 15:30:51.14 IxpdJrB2
>>817
DGIndexにだってFix D2Vあるじゃん
avisynth使いがまるも使う意義ってほぼゼロなんですけど

820:名無しさん@編集中
13/01/05 18:13:00.18 BIbjh2jb
BSJAPANはRFFだからフィールドオーダー固定すんなよ
そもそもavisynth使ってるならdgindex使ってるだろ
d2vにフィールドオーダー情報入ってるからavs内で決め打ちしなきゃ何の問題も無い筈なんだが

821:名無しさん@編集中
13/01/06 00:17:04.86 Acv0J+Df
こまけーやつだな。ハゲるぞおまえw

822:名無しさん@編集中
13/01/06 03:04:40.88 xojgG6Ju
DGIndexの最大の弱みはメンテ放棄されてることだな。
ま、現状で特に問題ないが。

823:名無しさん@編集中
13/01/06 10:59:30.84 VrC+yDhT
DGIndexだとなぜかCPU使用率が上がらず
エンコ遅いからまるも使ってる。

824:名無しさん@編集中
13/01/06 11:15:52.76 6JMjhjl+
>>823
それならFFMS2はもっと速い。

825:名無しさん@編集中
13/01/06 11:19:50.58 ltHkzscM
YV12でデコードしててdgdecodeの方が遅いって言うならマジで環境腐ってる

826:名無しさん@編集中
13/01/06 12:09:45.07 qUHJMLF3
avisynthでまるも使うメリットなんて全く無いからな

827:名無しさん@編集中
13/01/06 13:23:44.06 NNzEQ8pU
最近Avisynthに手を出したにわかだが、何故そこまでまるもが嫌われてるのか逆に知りたい

828:名無しさん@編集中
13/01/06 13:27:33.34 ltHkzscM
別に嫌うも何も単にYV12でデコードする上では全くこれっぽっちもメリットがないからなだけ

829:名無しさん@編集中
13/01/06 14:53:48.56 X5GROkdt
本家純正だとDGDecodeはシングルスレッドだからな
MT版を使えばそこそこ速くなる

SynthオンリーでYV12しか使いたく無い人はまるもを使う意味は全くないし
Utlを併用する自分の使用法では双方でベンチとったら
MT版DGの方が速かったからこっちを使ってる
別にまるもが嫌いなわけではない

830:名無しさん@編集中
13/01/06 15:01:05.06 X5GROkdt
間違えた
MT版じゃないSSE版だった
URLリンク(hank315.nl)

831:名無しさん@編集中
13/01/06 15:22:00.67 cw0/vhgu
DGIndexNV使え
爆速だぞ

832:名無しさん@編集中
13/01/06 15:25:43.39 X5GROkdt
ゲフォ板挿す気はさらさら無いので使えません(キリッ

833:名無しさん@編集中
13/01/06 15:29:56.70 qXdGjkhC
俺もそうなんだよなー
今は不満なく使えてるからいいんだけど

834:名無しさん@編集中
13/01/06 15:46:26.46 NNzEQ8pU
へー、そうなんだー。Aviutl使ってた頃にBS11で問題が発生するようなことを小耳に挟んで以来、何となくまるも使い続けていたケド
もう問題も解決できてるみたいだし、DGIndexに乗り替えてみようかな

835:名無しさん@編集中
13/01/06 16:08:06.45 qUHJMLF3
言っとくけど皆使ってるのはmod版だからな

836:名無しさん@編集中
13/01/06 17:25:33.02 Acv0J+Df
>>835
なにを今更。
>>827
スグに調子に乗って売名するから

837:名無しさん@編集中
13/01/06 18:35:49.24 X5GROkdt
>>836
黒い奴とか柔らかい奴の存在を不必要に広めて
厨房以下を煽ってDTV板に呼び込んだり
TSツール界隈の発展を阻害したのは間違いないな

まあTSツール界隈の発展の功労者でもあったわけだがな

838:名無しさん@編集中
13/01/06 18:47:33.67 ZTk2sJzZ
DGIndexNV使うだけが目的だとしたらグラボってGT210とかでもパフォーマンス出ます?
検討中です。

839:名無しさん@編集中
13/01/06 18:59:52.32 6JMjhjl+
>>838
この表でVP5となっているGT 520やGT 610のデコードが速い。

URLリンク(en.wikipedia.org)

840:名無しさん@編集中
13/01/06 19:14:35.48 Zu2dh7oV
同じくcuda経由で叩いてるのはデコーダーユニットだから
VPxの世代で性能が大きく変わると聞いたことがある
ちなみに俺の9800GTX+がVP2なんだけど、avs2avi -c null -o n 、リサイズ・フィルタ無し設定で
1440x1080i 地デジソース デインタレース無が 155~160fps GPUデインタレース有で 90~100fps くらいに収まってる

GF210ならVP4世代だしもちっと行くんじゃね?

841:名無しさん@編集中
13/01/06 19:39:49.09 ZTk2sJzZ
>>839
>>840
返信ありがとうございます。
GT610が3000円前後で種類がいくつかあるみたいなんでそれらで検討します。

842:名無しさん@編集中
13/01/06 19:55:45.64 ltHkzscM
因みにGTX660で1440x1080iをデインタレ無しでavs2pipemodの-benchmarkオプションで測ると
360fpsくらい

843:名無しさん@編集中
13/01/07 00:24:16.46 imWbjRE4
奴は所詮デジコン側のスパイだしな。自業自得

844:名無しさん@編集中
13/01/11 14:26:41.38 96NCOIW/
最近avisynthについて調べてるんだけど
Decombってどうなの?
Decomb使うぐらいならコレ使っとけ、みたいなのありますか?

845:名無しさん@編集中
13/01/11 14:40:30.63 5CTRrrWe
TIVTC以後、Decombの存在価値はなくなったと思ったが

846:名無しさん@編集中
13/01/11 15:41:47.69 96NCOIW/
>>845
thx
調べてみます

847:名無しさん@編集中
13/01/14 19:56:39.29 SfiPrX7D
現在、1280x720、YV12、BT.709のプログレッシブソースをレターボックスありの640x480、YV12、BT.601に変換しようとしています。
最終的な出力はAviUtlかVirtualDubModでやろうと思います。

今のところこんなスクリプトになっているのですが、なにかおかしいところはあるでしょうか?

avisource("test.avi")
lanczos4resize(640,360)
colormatrix(mode="Rec.709->Rec.601")
addborders(0,60,0,60,$000000)

また、AviUtlにavsを読み込ませる場合、converttoyuy2()は必要なのでしょうか?
AviUtlにはavsinp.aui経由でavsを読み込ませます。

848:名無しさん@編集中
13/01/14 20:00:04.36 ajY9Tkz+
必ずってわけではないが個人的にはリサイズの前にcolormatrixを持ってくる
ConvertToYUY2はChikuzen氏のavsreaderを使えば自動的に挟んでくれるので必要ない

849:名無しさん@編集中
13/01/14 20:15:38.44 SfiPrX7D
>>848
書き込みありがとうございます。

参考にさせてもらい、このような形になりました。

avisource("test.avi")
colormatrix(mode="Rec.709->Rec.601")
lanczos4resize(640,360)
addborders(0,60,0,60,$000000)
converttoyuy2()

とりあえず入力プラグインは今あるものを使うことにしたので、converttoyuy2()をつけました。

850:名無しさん@編集中
13/01/16 10:58:05.31 SoOXYymZ
ところで、クローン版_gpu25.dllのソースコードってないの?

851:名無しさん@編集中
13/01/16 13:19:25.37 TuLjfX7k
スクリプトでコマンドライン引数は扱えますか?

例えば、

>foo.avs file1.avi

のように引数を渡したいです。

852:名無しさん@編集中
13/01/16 15:28:34.81 5Mi+dEdM
そりゃavsを渡すプログラムによるだろ
avisynth自体はdllであって実行ファイルじゃないぞ

853:851
13/01/16 16:08:47.66 oe8K3qhI
勘違いしていました。

具体的には、GOM Player, KMPlayer, VirtualDubModに渡しています。

そして、foo.avsに動画の情報をテキストファイルに書き出す関数があって、
writeInfo("C:\movie\bar.avi")
で書き出せます。しかしこれだとハードコードなので、ファイルパスを指定したいんです。

ファイラー上でフォーカス中の動画を処理するためです。

どうすれば実現できますか?

854:名無しさん@編集中
13/01/16 16:22:02.27 5Mi+dEdM
だったらavs自体を生成するコマンドなりスクリプトなりをavisynth以外の言語で書けばいいだろ
avisynth自体はファイルのパスはハードコードするか、グローバル変数として他のavsで設定された
文字列をimportするくらいの機能しか持ってないぞ

855:851
13/01/16 16:43:45.20 oe8K3qhI
ああそうなっちゃいますか。やってみます。ありがとうございます。

856:名無しさん@編集中
13/01/18 17:46:06.59 ncRpt1zU
インタレ保持エンコって結局
テレシネ化しながら再生すると30FPS部分も24FPS相当の動きになるし
テレシネ化しないなら30FPS部分は良くても、24FPS部分がカクカクになるし
サイズも増えて、一番中途半端だと思う
しいて言うなら、作品ごとに再生するときに、30FPSの動き重視か24FPSの動き重視か選べる利点はあるが

857:名無しさん@編集中
13/01/18 17:52:39.48 TAgE/VDH
頭大丈夫か?

858:名無しさん@編集中
13/01/18 18:38:09.74 ncRpt1zU
ああ間違った
30FPS部分は背景が24FPSでも動きがあるから30FPSとして処理されるんだっけ?
字幕のフェードとかは無理だけど

859:名無しさん@編集中
13/01/18 18:44:19.51 pRks3DK1
インタレだから全部60FPS処理だが

860:名無しさん@編集中
13/01/18 18:51:53.87 ncRpt1zU
60は24の公倍数じゃないからカク付く
倍速液晶なら120fps化して滑らかになるかもしれないけど

861:名無しさん@編集中
13/01/18 18:57:08.38 GbpWHZfo
インタレ保持を120fpsで再生したってハードテレシネなら同じだろ

862:名無しさん@編集中
13/01/18 22:45:16.85 oX96hOz8
テレビで観るのと同じ動きになるわけだが、それがカクカクというならば仕方がない

863:名無しさん@編集中
13/01/18 22:59:51.27 fBCTTT1t
バカには触れないで下さい

864:名無しさん@編集中
13/01/19 12:22:20.09 tHH1nyp6
テレビはCMに入ったら24FPS化やめるだろ
常時、24FPS部分と30FPS部分を見極めながら処理してる
PCはデインターレスのフィルター次第だろ
強制24FPSに決め打ちしてデインターレスしてるフィルターは
30FPS部分の動きは24FPSになるよ

865:名無しさん@編集中
13/01/19 12:50:44.59 +IaiU1ab
横スクロールテロップとか混じらなけりゃ全部24fpsでも平気じゃね?
別にエンコした動画を誰に見せるわけでもないだろうしな。

866:名無しさん@編集中
13/01/19 12:57:43.92 UmF5xGkM
> 誰に見せるわけでもない
これだけでもう好きにやれとしか

867:名無しさん@編集中
13/01/19 19:00:26.21 wAEkrwux
HDからSDへダウンコンバートについて
PT2で録画したtsをdvd(市販のデッキで見れる奴)にしたいのですが
以下の方法でエンコードすると実写ソースなどで動きがある部分が
縞々になったり線がギザギザになってしまいます。
何か解決策はありませんか?

入力.avs
Yadif(mode=1) またはTDeint(mode=1, type=3, full=false, tryweave=true)
ColorMatrix(mode="Rec.709->Rec.601",interlaced=false)
Spline36Resize(704,480)
AssumeTFF()
SeparateFields()
SelectEvery(4, 0, 3)
Weave()

avs2pipemod.exe -y4mt=40:33 入力.avs |ffmpeg -y -i - -threads 6 -target ntsc-dvd
-flags ilme+ildct -top 1 -vcodec mpeg2video -s 704x480 -aspect 16:9 -r 29.97 out.mpg

868:名無しさん@編集中
13/01/19 20:47:48.41 ViJyTLHh
PT2からスクランブル解除して録画した時点でそれ法律違反だから…
ゆえに幇助する事はできないから回答いたしかねる

869:名無しさん@編集中
13/01/19 20:54:05.35 UmF5xGkM
いつ録画したかにもよるけどな、遡及処罰は出来ないし

870:名無しさん@編集中
13/01/19 21:28:11.58 DqlBy9hX
>PT2からスクランブル解除して録画した時点でそれ法律違反だから…
このように法改正した戦犯って誰なの?
マジで氏ね!

871:名無しさん@編集中
13/01/20 03:09:29.91 B4PRPy0a
>>867
ffmpegではなくHCencでやっているけど、別に問題はない。

872:名無しさん@編集中
13/01/20 16:17:21.82 qmoiHabV
>>867
-y4mtじゃなく
-y4mpに

873:名無しさん@編集中
13/01/21 20:12:01.44 Kzdma2Gm
>>868
BDレコーダーで録画したものをエンコするのも法律違反になるのか?

874:名無しさん@編集中
13/01/21 20:31:28.81 +eeOHgtT
スレチ

875:名無しさん@編集中
13/01/22 18:48:25.87 ldA1ku3d
特定のフレームをフレームレートの違う別のクリップの特定のフレームで置換する関数やプラグインって何かないですか?
avisynth.info見るとdrって関数があるようですがリンクが死んでいてぐぐっても見つからない状態です。
drをUPしていただくか代替となる何かを教えて下さい。

876:名無しさん@編集中
13/01/22 18:56:10.71 8qC+e41h
AssumeFPSでFPS揃えればいいだけじゃね

877:名無しさん@編集中
13/01/22 19:26:55.11 isDmieSh
RemapFrameがちょうどそんな感じのフィルタだったような

878:名無しさん@編集中
13/01/23 08:19:14.26 np6CceMX
1フレームだけ入れ替えたいってこと?サブリミナル?

879:名無しさん@編集中
13/01/23 09:37:55.02 e6fDGUuH
>>877
調べてみます。
>>878
そうです。1フレームだけ入れ替えたいです。

880:名無しさん@編集中
13/01/23 11:41:10.56 feuFvz+E
だからこれじゃダメなの?

a=AVISource("aaa.avi")
b=AVISource("bbb.avi")
target=b.Trim(500,-1)
a.Trim(0,499) ++ target.AssumeFPS(a) ++ a.Trim(501,0)

881:名無しさん@編集中
13/01/24 07:35:55.34 1eHPeDhc
それだと音途切れそう

882:名無しさん@編集中
13/01/24 09:46:35.39 HP1ujgvK
aviutlとかVirtualDubでコピペしたら?
出力でつまずくかも、だが

883:名無しさん@編集中
13/01/24 10:39:55.51 PhAoIbPn
音に関しては適当な変数にKillVideoしたのを入れておいて
処理が終わったらそれをAudioDubすればいいと思う

884:名無しさん@編集中
13/01/24 12:50:40.54 1Avna+wn
つーかシーンチェンジごとにtrimすればいいだけじゃね?
きりのいい数字にあわせて音が途切れたら笑えんぞw

885:名無しさん@編集中
13/01/25 04:11:57.63 tqj5Rowc
1フレームだけoverlayでもしたほうがよくね

886:名無しさん@編集中
13/01/26 02:15:05.13 93WOzBQz
超てきとー

a=AVISource("aaa.avi")
b=AVISource("bbb.avi")
a++b.AssumeFPS(x,y)
FreezeFrame(500,500,100000)
Trim(0,z)

887:名無しさん@編集中
13/02/01 23:42:55.86 XKduXnFP
実写ソースでビットレート不足のブロックノイズが出てる場合のでブロックには何使ってます?
aviutlのdmb.auf使ってるけどavisynthのでもっといいものがないかと

888:名無しさん@編集中
13/02/02 00:53:21.21 lM5IBmYz
ビットレート不足ならビットレート上げれば?

889:名無しさん@編集中
13/02/02 01:27:53.91 kieK08FA
ソースに出てるのにエンコ後のビットレート上げても意味ないだろw

890:名無しさん@編集中
13/02/02 02:43:42.72 lM5IBmYz
ソースか
実写ソースでエンコした結果ブロックノイズが出てるのかと思ったw
実写ソースがビットレート不足でブロックノイズが出てる場合 て書いてくれよ

891:名無しさん@編集中
13/02/02 03:12:19.76 X9Cfj0ni
エンコとかだとビットレ不足でブロックノイズなんて出ねぇだろ
エンコした動画でブロックノイズが出る場合は決まってデコーダ側の問題だしな
MS DTV+EVRだと特に出やすいし

エンコの場合はビットレが足りないと、文字などの輪郭が滲んだり崩壊したりすることはあるけど
それはブロックノイズとは全く異なる症状だぜ

892:名無しさん@編集中
13/02/02 03:29:35.94 hRDSc681
>>887
これなんかが強力

URLリンク(avisynth.org)

893:名無しさん@編集中
13/02/02 05:58:22.73 9mC+pkv0
>>891
滲んだりボケるのはブロックノイズをデコーダ以降の仕事がデブロッキングなどをしているだけで
エンコード時にレート不足であるほどブロックノイズが出やすい傾向はある

レート不足になるほど各ブロックの符号・復号誤差が大きくなって
そのブロックの境目で歪みがノイズとして目に見えやすくなる現象

ブロック化しにくいのはwavelet変換なコーデック

894:名無しさん@編集中
13/02/02 11:14:08.49 mFLMZs1U
順番にbatファイルでエンコード処理させたいんだけど、pauseを書いてないのに1つ終われば、「続行するには何かキーを押してください」ってなって止まるようになった。
新しいPCにしてwin7 32bit から64bitに変えたのが原因なのかな?使ってるのはこんな感じ

@echo off

echo "No1"
echo Start %time%
echo "----------------------------------------------------------------------------------"

call "ファイル名.bat" "ファイル名.avs"
ping localhost -n 6 >nul
echo .
echo .

echo "----------------------------------------------------------------------------------"
echo End %time%
ping localhost -n 6 >nul
echo .
echo .

後は"No2"とかにしてファイル名だけ書いて同じように続けて書いてるだけ

ネットで見つけたのそのまま使わせてもらってる
前はこれで1つ終われば順番にエンコしてくれたんだが
出かけて帰ってきても1つだけ終わって止まってるから困ってる、誰か助けてくれ

895:名無しさん@編集中
13/02/02 11:19:13.55 l1oxmWFk
まず
@echo off

echo on
にしてどこまで処理が進んでるか確認したら?

896:名無しさん@編集中
13/02/02 12:00:01.63 Ld2ekQ7u
"ファイル名.bat" の中身を晒してくれ

897:名無しさん@編集中
13/02/02 13:00:18.73 p6g6DpuR
ウチも7の64bitだが問題ないぞ
同じトコ見て参考にしてやってるけど

898:名無しさん@編集中
13/02/02 13:13:50.14 0aidL2UQ
ファイル名.batの中にpauseがあるんじゃ

899:名無しさん@編集中
13/02/02 14:41:50.28 qcSowggm
>>892
おおブロックノイズにピンポイントで利きますね
ありがとうございます

900:名無しさん@編集中
13/02/02 14:54:17.03 dUaN0vBz
自力でわかんないならシンプルにcallでbat呼び出せば良いのに
どうして意味もわからず人のを参考にするんだろう

901:名無しさん@編集中
13/02/02 15:36:17.35 XwL7b0tm
FOR IN DO (CALL)でhoge.bat %~1をループさせるのが一番しっくりくる

902:名無しさん@編集中
13/02/02 22:08:34.43 mFLMZs1U
普通にファイル名.batの最後にpauseあった
今まで使ってたやつ使いまわしてたから全然気にしてなかったわ
pauseなんか書いたつもりないけどなんか書いてたみたいだ
これからはもっとよく確認してみるぜ

903:名無しさん@編集中
13/02/02 23:04:30.16 i1AVAANM
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄

904:名無しさん@編集中
13/02/03 20:00:58.72 QczBEGK7
まあよくあることだ
スペルミスで延々悩むとか

905:名無しさん@編集中
13/02/04 11:20:27.21 wMjs0JTq
24fps化についてですが、
周期一定のtsソースをMpeg2Sourceで読み込んで、
Doubleweabe().SelectEvery(10,a,b,c,d)とした時に、
SelectEvery()の組み合わせは間違っていないのですが、aviutlでコマ送りしてみると
フレームによっては特に輪郭のエッジ部分にわずかにコーミングのようなものが発生しています。
普通に視聴する分には意識して見ない限り気付くようなもんではありませんが、
気付いてしまうとやはり何とか除去したくなります。
おそらく元ソースの、異なるフレームのTopフィールドとBottomフィールドの組み合わせの際に
発生するのではないかと推測しますが、そもそもこいつが発生する要因は何でしょうか?
YV12でd2vをavisynthが読み込んでしまうことと関係してたりしますか?

906:名無しさん@編集中
13/02/05 00:58:23.48 YbaLWQzg
>>905
俺も使って間もないから何とも言えないんだけど、それって解除漏れの縞?
doubleweave()やめて動き適応型の外部デインタレフィルタを使ってみたらどだろ?
軽いのが良いならTDeint(mode=2, type=2)とかAutoDeint()
間引きはTDecimate(mode=1,hybrid=0)
それでも縞が残るならvinverse()を入れてみるとか

907:名無しさん@編集中
13/02/05 01:44:30.38 qFFc0wp9
クロスコンバートだろ

908:905
13/02/05 02:21:56.63 2HUTxb7n
>>906
解除漏れが何を指すのか、イマイチ理解はできないんですが、
リンクの画像のように、画面全体ではなく、一部の輪郭に発生するので、
SelectEveryした結果、正しい候補を選んでいるとは思います。
まあ、動画として視聴してる分には気がつかないっちゃ気がつかないんですけど。
URLリンク(lh3.googleusercontent.com)

以前はTIVTCとか使ってたんですけど、画面全体がチラつくような場面だと誤爆するんで、
周期一定ならDoubleWeave().SelectEvery()した方が無難なハズなんですよね。。。


>>907
クロスコンバート調べてみました。
アニメを720i→1080iに変換する時に下手すると発生することが多いみたいですけど、
多分違うと思います。

909:名無しさん@編集中
13/02/05 02:29:35.23 RPYDixVy
正しい候補を選んでいないと思います

910:名無しさん@編集中
13/02/05 09:53:18.79 9QCHMF5H
人物なんてゆらゆら動くものなのにネクタイにだけコーミングが起きてるのが不思議
きっとこういう柄のシャツを着てる

911:名無しさん@編集中
13/02/05 10:31:21.27 d2pF/1Nt
インターレースってそういうものでは

912:名無しさん@編集中
13/02/06 13:52:12.50 tUtMVFIE
DGIndexで作ったd2vソースがtffでもbffの場合でもtffに統一したいのですが、以下のコードで合っているでしょうか?
DGDecode_MPEG2Source(d2v="input.d2v", idct=3, upConv=0)
DoubleWeave().SelectOdd()
AssumeTFF()

913:名無しさん@編集中
13/02/06 15:06:08.66 xVOdOwA0
DoubleWeave().SelectOdd()は、tffをbffに、bffをtffに作り変えると思うから
2行目は↓の方がいいと思う
GetParity() ? last : DoubleWeave().SelectOdd()

914:名無しさん@編集中
13/02/06 16:07:59.27 536u+xku
bbb関数とプラグインでのBob化とでは何が違うんですか?

915:名無しさん@編集中
13/02/06 17:25:21.26 tUtMVFIE
>>913
ありがとうございます
これで心置きなくx264とQSVEncCにtffとして入力できます

916:名無しさん@編集中
13/02/06 17:30:50.39 AGJ2R70T
>>908
>アニメを720i→1080iに変換する時
それはクロスコンバートちゃうで。
クロスコンバートってのは、プログレをインタレへ変換させるときに使う用語な。

917:名無しさん@編集中
13/02/06 21:14:19.36 U3sjaC9j
クロスコンバートミスとかっていわれてるやつじゃないかな?
本来なら、720i→720p→1080p→1080iって手順を踏まないといけないのに、
720i→1080iってやっちゃうとでる縞?のことだったかと。

918:名無しさん@編集中
13/02/11 14:08:44.90 KDrUjeqv
backupstreet.comの手順通りにやってるのに
「ファイルを再生できません。プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。」
というエラーメッセージが出てavsファイルを再生できない
PowerDVDもMPEG-2コーデックもインストールされている
ネットで調べても解決方法はなかった
WMPCインストールしたら解決した人はみつかったがそれもインストール済み
何このゴミソフト・・・・

919:名無しさん@編集中
13/02/11 16:38:00.17 wvnIEz+y
スレチ

920:名無しさん@編集中
13/02/13 17:38:13.02 LW4NyAG6
ditherのdocに載っていた下記のシャープを使っているのですが

dfttest (lsb=true)
f = DitherPost (mode=-1)
s = f.Sharpen (0.20)
d = mt_makediff (s, f)
DitherPost ()
mt_adddiff (last, d, u=2, v=2)

easyVFRでの記述を教えていただけないでしょうか?

DGSource(".dgi")
AudioDub(last, WavSource(".wav"))

AssumeFrameBased.AssumeTFF()

Trim() ++ Trim()

audio = KillVideo()

Src = KillAudio()

oldcount = Src.FrameCount
oldfps = Src.FrameRate

T1 = Src.Trim(0, 7011)
T1 = T1.AssumeTFF()
T1 = T1.FrameCache(9).Auto24FPS(true, 24, 16, "", false).vinverse()




921:名無しさん@編集中
13/02/13 18:54:24.87 7VvRu5Y7
function Dither_Sharpen (clip clip) {
clip = clip.dfttest (lsb=true)
f = DitherPost (clip, mode=-1)
s = f.Sharpen (0.20)
d = mt_makediff (s, f)
clip = clip.DitherPost ()
return mt_adddiff (clip, d, u=2, v=2)
}

適当だけどこんなんか?

922:名無しさん@編集中
13/02/13 20:00:18.74 BLrStTBC
>>921
おお、有難うございます。それでいけました!!
図に乗っているようで恐縮なのですが、
SharpenのパラメータをDither_Sharpenのほうで設定出るような関数の書き方を知りたいです。

それと
dfttest (lsb=true)
Dither_convert_8_to_16 ()
どちらも8bit→16bitだと思うのですが、
例えばDither_resize16を使うとして、dfttest (lsb=true)、Dither_convert_8_to_16 ()
どちらでもいいのでしょうか?

923:名無しさん@編集中
13/02/13 20:10:20.35 caHwAZ/O
>>922
function Dither_Sharpen (clip clip, float "sharp") {
sharp = default(sharp, 0.20)
clip = clip.dfttest (lsb=true)
f = DitherPost (clip, mode=-1)
s = f.Sharpen (sharp)
d = mt_makediff (s, f)
clip = clip.DitherPost ()
return mt_adddiff (clip, d, u=2, v=2)
}

こんなとこかな
Dither_Sharpen("hoge.avi", sharp=0.20) 書式はこう
パラメータの上限下限は知らないので、分岐警告はつけてない

後者の問いは誰かたのむw

924:名無しさん@編集中
13/02/13 20:41:13.33 sqVipRLh
テキトーだけどdfttest (lsb=true)だけだとdfttest(ノイズ除去)のデフォルト値が適応されない?
初期値はsigma=16.0でかなり強気だったはず

925:名無しさん@編集中
13/02/13 20:51:37.00 sqVipRLh
ああ、答えになってない

1. dfttest (lsb=true) # 8bit->16bit & ノイズ除去
2. Dither_convert_8_to_16 () # 8bit->16bit
なので

Dither_convert_8_to_16 ().dfttest (lsb=true) #Clipは16bit
または
dfttest (lsb=false).Dither_convert_8_to_16 () #Clipは16bit
と、しなければいけない。
前者の方が精度が高いはず

926:名無しさん@編集中
13/02/13 20:57:55.40 sqVipRLh
個人的には頭の中でごっちゃになるのを防ぐ為に↓のオプションで今どちらのbit内にいるのか明示した方がいいと思う
lsb=trueなら出力が16bit、falseなら出力が8bit
lsb_in=trueなら入力が16bit、falseなら入力が8bit

927:名無しさん@編集中
13/02/13 21:10:31.33 BLrStTBC
>>923
重ね重ね有難うございます。納得のいく結果になりました。

>925
解説有難うございます
dfttestはデノイズだったのか、それに8to16のパラメータが付いてるって事か

928:名無しさん@編集中
13/02/13 21:51:05.42 8Sfbumll
dfttestはデフォだとバンディング出るくらいノイズ除去しちまうぞ

929:名無しさん@編集中
13/02/14 05:15:19.92 oFsQ5BP7
CPUはFX8350@4.7Ghzだが

アニメソースな映像をavsを通さずにx264 2245JEEBでエンコードさせると平均で110fps前後でるんだけど
avsを通してあれこれフィルタを挟むと40fps前後まで落ちてしまう。
これをさらに加速させるにはMTとかでごにょごにょするしかないんだよな
GPUフィルタもフィルタの処理が軽すぎるとすぐ律速になって使い物にならないし
結局のところ速度重視でエンコしたいならavsは通さないほうがいいのかね

アニメ程度の映像で40fps前後も出れば十分早い方だと思うんだけどな
通さない場合と比べて半減するのはなんか損した気分、なにか妙案とかあったら
落書きしていってくれ。

930:名無しさん@編集中
13/02/14 05:32:52.59 v88wIQ7G
>>929
avsの内容が分からないから何とも言えないけど、SetMTMode(2)で動くフィルターだけを選ぶとかはできる。


あと、内容によってはMTよりもThreadRequestの方が速くなるかもしれない。

931:名無しさん@編集中
13/02/14 11:03:59.40 IkBECrRm
>>929
そりゃフィルタ重ねれば遅くなるのは当然かと
DGdecNV読み込み、デインタレ、trim、リサイズ程度なら差は無いと思うよ

932:名無しさん@編集中
13/02/14 11:49:09.22 N4Bt+3IM
どこで質問したら良いのかわからなかったので先にスマン

L-SMASHのremuxerは.idxな字幕は対応してない?orどこか間違ってる?

remuxer.exe -i "hoge.mp4" -i "hoge.m4a -i "hoge.idx" -o "a.mp4"

933:名無しさん@編集中
13/02/14 13:48:35.58 +VQFdRyI
>>932
-i "hoge.m4a
転載ミスかもしれないけど、ここだけ後ろに"が付いてない

934:名無しさん@編集中
13/02/14 15:24:43.18 4HFJj/dQ
>>932
idx字幕は対応してない
理由は正式なMP4コンテナ規格ではないから
どうしてもidx埋め込みたいならMP4Boxつかうしかない

935:名無しさん@編集中
13/02/14 17:56:27.57 N4Bt+3IM
>>933-934
レスさんくす

やっぱりidx対応してなかったか
ロスレスALACがL-SMASHで格納できるから使おうと思ってたけど
やっぱりMP4Boxでいいか

936:名無しさん@編集中
13/02/14 18:39:52.22 vHGH1/Wz
mp4boxでalac対応したよ

937:929
13/02/15 17:08:06.54 PMl6Lq20
>>930-931
レスありがとう。
週末あたりにでも試してみるよ。

938:名無しさん@編集中
13/02/15 22:26:43.24 2/XpB8A/
OSをリガバリしてAvisynthを入れなおすんだけど
公式の2.5.8以外のお勧めビルドとかありますか?

939:名無しさん@編集中
13/02/15 22:44:44.61 bKM5Y1yn
AviSynth 2.6.0 Alpha4 [Jan 14th, 2013]
URLリンク(forum.doom9.org)

940:名無しさん@編集中
13/02/20 20:00:38.17 SNRNomhK
ぐぐってもわからなかったのでお願いします

やりたい事4000フレームくらいのプログレッシブソースのブレンド
clip a (a0,a1,a2,a3,a4)
clip b (b0,b1,b2,b3,b4)
を(a0.b1.b2.b3.a4)順に並べて出力したいです

941:名無しさん@編集中
13/02/20 20:12:02.67 SNRNomhK
すいません間違えました

clip a (a0,a1,a2,a3)
clip b (b0,b1,b2,b3)
をclip c (a0,b1,b2,b3)
a0,b1,b2,b3,a4,b5~の並び順にしたいのです

942:名無しさん@編集中
13/02/20 21:03:54.69 JACNPDhE
Interleave(a, b).SelectEvery(8, 0, 3, 5, 6)

943:名無しさん@編集中
13/02/20 21:19:31.44 SNRNomhK
>>941
ありがとうございます
それでやってみます

944:名無しさん@編集中
13/02/20 21:40:07.13 b31lS94T
SelectEvery(10,0,3,5,7,8)?

945:名無しさん@編集中
13/02/20 22:11:52.15 JACNPDhE
SelectEvery(8, 0, 3, 5, 7)か、失礼

確認用
a = BlankClip().ScriptClip("""Subtitle("a" + String(current_frame), size=120)""")
b = BlankClip().ScriptClip("""Subtitle("b" + String(current_frame), size=120)""")

Interleave(a, b).SelectEvery(8, 0, 3, 5, 7)

946:名無しさん@編集中
13/02/22 23:10:19.57 p9nrDMlT
ここ眺めてるとみんなすげーなって思う
俺も早く初心者としてここで質問したい

947:名無しさん@編集中
13/02/23 03:59:20.51 wdXqt+7o
>>938
2.6のMT版を探して入れる

948:名無しさん@編集中
13/02/25 12:21:49.17 /z1mn5Ec
2.6 MT のソースって、現在だとどこで集めて差分を当てればいいの?
SEt氏の最新版の差分はあるようだけど。

949:名無しさん@編集中
13/03/16 21:30:00.63 5iidGPEm
2.6MTでMT()が使えればなぁ・・・
doom9フォーラムで要望出てるが絶賛放置されてる(´・ェ・`)

950:名無しさん@編集中
13/03/16 21:41:10.80 hlU3ft9d
魔法の .ThreadRequest() 多用
2.6MT使ってる意味あるのかなぁ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch