Section2 AviSynth and frameserving
- Q2.1: フレームサービング(frameserving)って何ですか?また、どんなメリットがありますか?
- Q2.2: AviSynthをフレームサーバーとして使うには、どうすればいいですか?
- Q2.3: AVSファイルをエンコーダ/アプリケーション某にフレームサーブするには、どうすればいいですか?
- Q2.4: エンコーダ某がAVSファイルを読み込むときに問題は?
- Q2.5: Premiere/Ulead/VegasからAviSynthへフレームサーブするには、どうすればいいですか?
- Q2.6: フレームサービングする時に、次のメッセージが出ました: "Script error, there is no function named "xxx (フィルタ名)"" ?
- Q2.7: DVD2AVI v1.77.3を使って、VirtualDubでavsファイルを読み込もうとしたところ、unrecognized exception error(未承認の例外エラー)が出たのですが?
- Q2.8: 私のクリップをAviSynthに読み込ませるには、どうすればいいのですか?(ビデオ編)
- Q2.9: 私のクリップをAviSynthに読み込ませるには、どうすればいいのですか?(オーディオ編)
- Q2.10: WAVファイル以外のオーディオファイルを読み込むことは出来ますか?
- Q2.11: どうやってビデオとオーディオを結合するのですか?
- Q2.12: DirectShowSourceを使っている行でunreconized exception(認められない例外)というエラーが出たのですが?
Q2.1: フレームサービング(frameserving)って何ですか?また、どんなメリットがありますか? †
A: [Lukes homepage]*1に素晴らしい説明があります:
"フレームサービングとは、それによって、あるプログラムから別のプログラムへと、直接、ビデオデータを転送する方法のことです。中間ファイルや一時ファイルは生成されません。ソースファイルを開いて、そのビデオデータを出力するプログラムは、フレームサーバー(frameserver)と呼ばれます。そのデータを受け取るプログラムは、どのようなタイプのビデオ・アプリケーションでも構いません。
あなたがビデオをフレームサーブしたいと思うであろう、2つの主な理由があります:
- ディスクスペースの節約: フレームサービング・アプリケーションによって、あなたは常に、あなたのビデオがフレームサーブされているものとして、それを編集したり処理したりすることができます。フレームサービングは中間ファイルを生成しないので、あなたは追加のディスクスペースを必要とすることなく、あなたのビデオに変更を加えるためにフレームサーバーを使うことができます。たとえば、あなたが2つのビデオファイルを結合し、リサイズして、別のビデオ・アプリケーションにフィードしたいと考えるなら、フレームサービングを利用すれば、巨大な中間ファイルを作成することなく、これを行うことができます。
- 高められる互換性: フレームサーブされたビデオを受け取るビデオ・アプリケーションにとって、入力ファイルは、比較的小さな、非圧縮のビデオファイルであるように思えます。しかし実際には、フレームサーバーが転送しているソースファイルは、たとえば非常に圧縮されたMPEG-1ビデオということもありえます。もし、あなたのビデオ・アプリケーションがMPEG-1ファイルに対応していないとしても、それは問題ではありません。なぜなら、そのアプリケーションは、フレームサーバーから標準的な非圧縮ビデオを受け取るだけだからです。フレームサービングのこの特徴は、アプリケーションが標準でサポートしていない種類のファイルを開くことを可能にします。
さらにビデオ・アプリケーションは、ソースビデオを1フレームずつフィードされるため、そのソースビデオのファイルサイズについては何も知りません。それゆえ、もしあなたのアプリケーションが、入力サイズ関して2GBないし4GBの制限を持っていたとしても、フレームサーブされたビデオには何の影響もありません。2GBの制限があるアプリケーションに、フレームサーバー経由で100GBのビデオをフィードすることもできますし、また、それによって何の問題も起こらないでしょう。"
Q2.2: AviSynthをフレームサーバーとして使うには、どうすればいいですか? †
A: テキストエディタを使って、スクリプトを書きます。AviSynthにクリップを読み込み、必要なフィルタリングを行って、そのAVSファイルをエンコーダ/アプリケーション某(AVIファイルを読むことができるエンコーダなりアプリケーションでなければなりません。Q2.3とQ2.4参照)で読み込みます。
Q2.3: AVSファイルをエンコーダ/アプリケーション某にフレームサーブするには、どうすればいいですか? †
A:
- TMPGEnc、CCE SP、VirtualDub、またはWMP6.4へのフレームサービング:
単純に、TMPGEnc、CCE SP、VirtualDub、またはWMP6.4(もしくは、あなたが使用するエンコーダ/アプリケーションならどんなものでも)で、AVSファイルを開いてください。Q2.4をご覧下さい。 - VFAPIへのフレームサービング:
VFAPIのためには、[ReadAVS]プラグインをインストールする必要があります。ReadAVS.dllをVFAPIリーダーのディレクトリにコピーし、regファイルをメモ帳で開いて、関連しているパスを変更します。それを保存し、ダブルクリックしてレジストリに登録します。 - PremiereやUleadへのフレームサービング:
- Premiereへのフレームサービングのためには、"IM-Avisynth.prm"インポート・プラグインがあります。オリジナル版は、[Benのサイト]*2からダウンロードすることができます。改良版は、[Video Editors Kit sourceforge page]からダウンロードすることができます。こちらは、現在のところ、Premiere 5.x、6.xとProで動作します。
- また、[makeAVIS(ffdshowに含まれる)](AVI Wrapperです)というプログラムをダウンロードすることができます。[ディスカッション]。AviSynth v2.52のインストールにも含まれています。Uleadのためには、このプログラムを使わなければなりません。
- Windows Media 9 エンコーダへのフレームサービング:
NicのWindows Media 9 エンコーダをダウンロードしてください。また、あらかじめWindows Media 9 コーデックをインストールしておいてください。ともに[こちら]で見つかります。
Q2.4: エンコーダ某がAVSファイルを読み込むときに問題は? †
A:
- なぜTMPGEncでAVSファイルを開くことができないのですか(古いバージョンのTMPGEncで発生します)?
- AVSファイルを読み込むときに、CCE SPがクラッシュします。どうすればいいですか?
- Windows2000を使っているなら、WinNT4-SP5互換モードでCCEを動作させてください。
- AviSynth v1.0x/v2.0xでフレームサービングしているなら、たとえ音声がないAVSファイルの場合でも、"ResampleAudio(44100)"をスクリプトに追加してください。
- AviSynth v2.5xでフレームサービングしているなら、ResampleAudioのトリックはもう使えません。というのも、ResampleAudioがビデオクリップに音声ストリームを追加しないからです。その代わりに、("addaudio.avsi"と呼ばれる)スクリプトを作成して、プラグイン・ディレクトリに入れて下さい。"addaudio.avsi"については、[こちら]に書かれています。
- (CCE SP v2.62/v2.64のような)エンコーダ/プレイヤーはAVSファイルを読み込めない?多くの"新しい"プログラムは、AVIファイルの読み込みにWindowsのファンクションを使用しません。もし、それらのプログラムが標準的なWindowsファンクションを使っていないなら、AviSynthスクリプトファイルは動作しないでしょう。それらのルーチンを使わないプログラムとして知られているのが、 CCE SP v2.62やWindows Media Encoder vx.xです。さらに、Windows Media Player 7に関する問題を報告する人もいます。
- CCE SP v2.50とWMP6.4 ("Program Files"->"Windows Media Player"以下に"mplayer2.exe"という名前のファイルがあります。これが WMP6.4です) を使ってください。Windows Media Encoderを使いたい場合は、代わりにAVIラッパー"makeAVIS"を利用することができます(Q2.3参照)。Windows Media Encoder 9に関しては、Q2.3を見てください。
- もし、まだCCE SP v2.62を使いたいのなら、次のことを試すことができます: makeAVISでCCE SP v2.62にフレームサーブ。AVSスクリプトを作成してから、makeAVISで偽のAVIを作ってください。
- Cinemacraftは、CCE SP v2.66はAviSynthのスクリプトを受け入れることができると言っています。もし、あなたがこのバージョンを持っているのなら、間違いはないでしょう。
- 不適切なYUY2コーデックは、AviSynthスクリプトをTMPGEncへフィードする際に、色空間エラーを引き起こします。私は少し前に、AviSynthスクリプトでTMPGEncへフィードすると、色空間変換エラーのような結果になることを、突然、発見しました。まるで、ビデオが24ビットから8ビットにディザー処理されたようになってしまったのです! (..)
- もし、そのような問題が起こったなら、スクリプトの最後の行に"ConvertToRGB24"を付け加えるか、[colorspace conversion errors]スレッドを見て、提案された解決法を参考にしてください。
Q2.5: Premiere/Ulead/VegasからAviSynthへフレームサーブするには、どうすればいいですか? †
A: AviSynth互換の(インポート)フレームサーバーを試すことができます。[PluginPace frameserver (by Satish Kumar)]: SonicFoundry Vegas (および、Vegas Video/VideoFactoryの古いバージョン)、Adobe PremiereやUlead MediaStudio ProからAviSynthへのフレームサービング用。[ディスカッション]。
Q2.6: フレームサービングする時に、次のメッセージが出ました: "Script error, there is no function named "xxx (フィルタ名)"" ? †
A: あなたは、おそらく、そのフィルタを含まないバージョンのAviSynthをインストール/登録したのでしょう。他のバージョンが、あなたのハードディスクのどこかにないか確認してください(システムディレクトリにはないにも関わらず、あるバージョンが登録されている可能性があります)。正しいバージョンが登録されているかチェックしてください。また、Q1.19も見てください。
Q2.7: DVD2AVI v1.77.3を使って、VirtualDubでavsファイルを読み込もうとしたところ、unrecognized exception error(未承認の例外エラー)が出たのですが? †
A: DVD2AVI v1.77.3で生成される.d2vは、mpeg2dec.dllと互換性がありません! 代わりにv1.76を使ってください。それでもなお、v1.77.3を使いたいのなら、AviSynth v2.5をインストールして、mpeg2dec3.dll v1.07 (または、もっと最新のバージョン) を使うようにしてください。
Q2.8: 私のクリップをAviSynthに読み込ませるには、どうすればいいのですか?(ビデオ編) †
A: 次の行を含むスクリプトを作成してください(ファイル名とファイル名のパスは置き換えてください):
- AVIファイル (非圧縮WAV、またはCBR/VBRのMP3音声(v2.04)付き):
AviSource("d:\filename.avi")
音声を無効化:
AviSource("d:\filename.avi", false)
- AviSourceがサポートしていないAVIファイル (たとえば "DV type I AVIファイル"):
DirectShowSource("d:\filename.avi") # v2.5.3以降のみ、音声入力をサポート
- MPEG-1ファイル (拡張子 mpg):
Mpeg decoder plugins for AviSynth v1.0x/v2.0xとMpeg decoder plugins for AviSynth v2.5xを見てください:
AviSynth v2.0x/AviSynth v2.5xとMPEGdecoder.dllを使用:
LoadPlugin("d:\MPEGdecoder.dll") mpegsource("d:\filename.mpg")
- MPEG-2ファイル (拡張子 m2p、またはm2v):
Mpeg decoder plugins for AviSynth v1.0x/v2.0xとMpeg decoder plugins for AviSynth v2.5xを見てください。いくつかの例:
- AviSynth v2.0xとmpeg2dec.dllを使用:
DVD2AVIプロジェクトファイルを作成し、保存(filename.d2v)、このクリップをAviSynthに読み込む:
LoadPlugin("d:\mpeg2dec.dll") mpeg2source("d:\filename.d2v")
- AviSynth v2.5xとMPEGdecoder.dllを使用:
LoadPlugin("d:\MPEGdecoder.dll") mpegsource("d:\filename.m2p")
または (ビデオストリームのみ)
LoadPlugin("d:\MPEGdecoder.dll") mpegsource("d:\filename.m2v", -2, "raw")
- AviSynth v2.0xとmpeg2dec.dllを使用:
- VOBファイル:
Mpeg decoder plugins for AviSynth v1.0x/v2.0xとMpeg decoder plugins for AviSynth v2.5xを見てください。いくつかの例:
- AviSynth v2.0xとmpeg2dec.dllを使用:
DVD2AVIプロジェクトファイルを作成し、保存(filename.d2v)、このクリップをAviSynthに読み込む:
LoadPlugin("d:\mpeg2dec.dll") mpeg2source("d:\filename.d2v")
- AviSynth v2.5xとMPEGdecoder.dllを使用:
LoadPlugin("d:\MPEGdecoder.dll") mpegsource("d:\filename1.vob+d:\filename2.vob")
- AviSynth v2.0xとmpeg2dec.dllを使用:
- ATSC transport ストリーム (拡張子 *.trp or *.ts):
- AviSynth v2.0xを使用:
mpeg2dec2と[dvd2avi]の特別版をダウンロードしてください。DVD2AVI.iniファイルにビデオとオーディオのPID(パケットID)を明記するのを忘れないでください。:
LoadPlugin("d:\mpeg2dec2.dll") mpeg2source("d:\filename.d2v")
- AviSynth v2.0x/v2.5xを使用:
mpeg2dec3 v1.07 (または、より最新のバージョン)かmpegdecoderと、[dvd2avi]の特別版をダウンロードしてください。:
LoadPlugin("d:\mpeg2dec3.dll") mpeg2source("d:\filename.d2v")
または、もしmpegdecoderを使いたいなら、:
LoadPlugin("d:\mpegdecoder.dll") mpegsource("d:\filename.d2v")
もし、どちらの方法もうまくいかない場合は、一時的なmpeg2ファイルを作成して、DVD2AVI経由でAviSynthにインポートするために、、[HDTV2MPEG2] (DVD非準拠のmpeg2ファイルを生成する) を試すことができます。AAC音声の分離には: [TSDemux]を使ってください。
Moonlight [Xmuxer]パッケージも、また、MPEG-1/2 TSとPVAファイルの合成/分離を取り扱うDirectShowフィルタ群を含んでいます。
- AviSynth v2.0xを使用:
- PVA transport ストリーム:
これに関しては、運がありませんね。私の知る限り、唯一の選択肢はPVAStrumentoです。 Moonlight [Xmuxer]パッケージも、また、MPEG-1/2 TSとPVAファイルの合成/分離を取り扱うDirectShowフィルタ群を含んでいます。
- d2vファイル (DVD2AVIフレームサーバー・ファイル):
LoadPlugin("d:\mpeg2dec.dll") mpeg2source("d:\filename.d2v")
- vdrファイル (VirtualDubのフレームサーバー・ファイル):
AviSource("d:\filename.vdr")
- ASFファイル (フレームレートが明示されなければならない。Windowsエクスプローラのファイル上で右クリックしてください):
DirectShowSource("d:\filename.asf", fps=15)
- tprファイル (TMPGEncプロジェクトファイル):
初めに、TMPGEncよりもGreedyHMAプラグインの方が、IVTCにおいて、より良い結果になる(ずっと簡単なのは言うまでもなく)ということに注意してください。そこで、あなたがIVTCのためにTMPGEncを使いたいのなら、GreedyHMAプラグイン(YUVフォーマットで動作)を入手してください。それでもまだ、tprファイルをAVSファイルにインポートしたいのなら、2つの可能性があります:
- 1つ目の方法: TMPGEncプラグインが、Doom9のサイトからダウンロードできるVFAPIプラグインのzipファイル(-vfp.zipで終わる)の中に含まれています(この方法は、常にうまく動作するとは限りません。CCE SPなどいくつかのエンコーダでは、これを読み込むことができません)*3。
LoadVFAPIplugin("d:\TMPGenc.vfp","TMPGsource") TMPGsource("d:\filename.tpr") FlipVertical
- 2つ目の方法: VFAPIにtprファイルをインポートして、偽のAVIを作成し、それをAviSynthに読み込ませます(VFAPIはRGBフォーマットで動作することに注意してください)。[1]も見てください。
- 1つ目の方法: TMPGEncプラグインが、Doom9のサイトからダウンロードできるVFAPIプラグインのzipファイル(-vfp.zipで終わる)の中に含まれています(この方法は、常にうまく動作するとは限りません。CCE SPなどいくつかのエンコーダでは、これを読み込むことができません)*3。
- aupファイル (AviUtlプロジェクト): AviSynthに直接読み込ませることが可能であるかどうか、私は知りません*4。VFAPIにaupファイルをインポートして、偽のAVIを作成し、それをAviSynthに読み込ませます(VFAPIはRGBフォーマットで動作することに注意してください)。[2]も見てください。
- QuickTimeファイル ([3]参照):
DirectShowSource("d:\filename.mov")
もしくは、それがうまく動作しない場合は、プラグインをダウンロードしてください(Doom9のダウンロード・セクションで見つけられます*5):
LoadVFAPIPlugin("C:\QTReader\QTReader.vfp", "QTReader") QTReader("C:\quicktime.mov")
- AVSファイル:
スクリプトの最初にインポートするだけです:
Import("d:\filename.avs")
v2.05以降のバージョンでは、オートプラグイン・ローディング(プラグインの自動読み込み)を利用することができます。AVSファイルをプラグイン・ディレクトリに移動して、拡張子を'avsi'にリネームするだけです。
Q2.9: 私のクリップをAviSynthに読み込ませるには、どうすればいいのですか?(オーディオ編) †
A: いくつかの方法で、これを行うことができます:
- AviSourceを使用(非圧縮WAV、CBR/VBR*6 MP2オーディオ(v2.04以降)、CBR/VBR MP3オーディオ(v2.04以降):
AviSource("d:\filename.avi")
v2.05からは、こちらの方法でAVIファイルから音声を抽出することができます:
WavSource("d:\filename.avi")
- mp1/mp2/mp3のインポートには、オーディオ・デコード・プラグインMPASourceを使います、Q3.4とQ3.5を参照。
- [mp2]、または(Besweetで)mp3オーディオファイルにWAVヘッダを挿入し、WAVSourceを使ってオーディオをインポートします。また、[mp2]とmp3(Radiumコーデック、Doom9のダウンロード部門を見てください。)用にACMコーデックが必要となります。WVASourceを使ってWAVファイルを読み込みます:
WavSource("d:\filename.wav")
v2.07までは、オーディオはモノラルかステレオでなければなりません。v2.5からは、非圧縮のマルチチャンネル・オーディオをインポートすることもできます。
Q2.10: WAVファイル以外のオーディオファイルを読み込むことは出来ますか? †
A: はい、出来ます:
- 非圧縮オーディオファイル(すなわち非圧縮WAVファイル)は、v2.03までのすべてのバージョンで読み込むことが出来ます。
(that is uncompressed WAV-files) can be loaded in all versions up to v2.03.
- v2.04から、圧縮されたWAVファイルを読み込むことが出来るようになりました(現在のところ、WAVヘッダ付きのMP2/MP3ファイルのみ)。
- v2.5から、非圧縮マルチチャンネル・オーディオも読み込むことが出来るようになりました。
- MPASourceプラグインやAC3filterプラグインを使って、 mp1/mp2/mp3とAC3オーディオを読み込むことが出来ます。
Q2.9も参照。
Q2.11: どうやってビデオとオーディオを結合するのですか? †
A: 次の行を含むavsファイルを作成してください(ファイル名とパスは変更すること):
video = AviSource("d:\filename1.avi") audio = ((AviSource|WavSource))("d:\filename2.wav") AudioDub(video, audio)
Q2.12: DirectShowSourceを使っている行でunreconized exception(認められない例外)というエラーが出たのですが? †
A: VobSubをインストールしていますか?こちらの[スレッド]を見てください。VobSub v2.20以降にアップグレードしてください。誰か説明できる人は、そのスレッドに投稿してください。
*1 Donald Graft氏によるミラーサイトです。
*2 Donald Graft氏によるミラーサイトです。
*3 実際には、TMPGEnc.vfpがVFAPI登録されてさえいれば、この方法を利用することができます。
*4 tprファイル同様、LoadVFAPIPluginフィルタを利用して読み込むことができます。
*5 こちらのページにあります。
*6 CBR: 固定ビットレート、VBR: 可変ビットレート