Section2 AviSynth and frameserving

 

Q2.1: フレームサービング(frameserving)って何ですか?また、どんなメリットがありますか?

A: [Lukes homepage]*1に素晴らしい説明があります:

"フレームサービングとは、それによって、あるプログラムから別のプログラムへと、直接、ビデオデータを転送する方法のことです。中間ファイルや一時ファイルは生成されません。ソースファイルを開いて、そのビデオデータを出力するプログラムは、フレームサーバー(frameserver)と呼ばれます。そのデータを受け取るプログラムは、どのようなタイプのビデオ・アプリケーションでも構いません。

あなたがビデオをフレームサーブしたいと思うであろう、2つの主な理由があります:

  1. ディスクスペースの節約: フレームサービング・アプリケーションによって、あなたは常に、あなたのビデオがフレームサーブされているものとして、それを編集したり処理したりすることができます。フレームサービングは中間ファイルを生成しないので、あなたは追加のディスクスペースを必要とすることなく、あなたのビデオに変更を加えるためにフレームサーバーを使うことができます。たとえば、あなたが2つのビデオファイルを結合し、リサイズして、別のビデオ・アプリケーションにフィードしたいと考えるなら、フレームサービングを利用すれば、巨大な中間ファイルを作成することなく、これを行うことができます。
  2. 高められる互換性: フレームサーブされたビデオを受け取るビデオ・アプリケーションにとって、入力ファイルは、比較的小さな、非圧縮のビデオファイルであるように思えます。しかし実際には、フレームサーバーが転送しているソースファイルは、たとえば非常に圧縮されたMPEG-1ビデオということもありえます。もし、あなたのビデオ・アプリケーションがMPEG-1ファイルに対応していないとしても、それは問題ではありません。なぜなら、そのアプリケーションは、フレームサーバーから標準的な非圧縮ビデオを受け取るだけだからです。フレームサービングのこの特徴は、アプリケーションが標準でサポートしていない種類のファイルを開くことを可能にします。

さらにビデオ・アプリケーションは、ソースビデオを1フレームずつフィードされるため、そのソースビデオのファイルサイズについては何も知りません。それゆえ、もしあなたのアプリケーションが、入力サイズ関して2GBないし4GBの制限を持っていたとしても、フレームサーブされたビデオには何の影響もありません。2GBの制限があるアプリケーションに、フレームサーバー経由で100GBのビデオをフィードすることもできますし、また、それによって何の問題も起こらないでしょう。"

Q2.2: AviSynthをフレームサーバーとして使うには、どうすればいいですか?

A: テキストエディタを使って、スクリプトを書きます。AviSynthにクリップを読み込み、必要なフィルタリングを行って、そのAVSファイルをエンコーダ/アプリケーション某(AVIファイルを読むことができるエンコーダなりアプリケーションでなければなりません。Q2.3Q2.4参照)で読み込みます。

Q2.3: AVSファイルをエンコーダ/アプリケーション某にフレームサーブするには、どうすればいいですか?

A:

  1. TMPGEnc、CCE SP、VirtualDub、またはWMP6.4へのフレームサービング:
    単純に、TMPGEnc、CCE SP、VirtualDub、またはWMP6.4(もしくは、あなたが使用するエンコーダ/アプリケーションならどんなものでも)で、AVSファイルを開いてください。Q2.4をご覧下さい。
  2. VFAPIへのフレームサービング:
    VFAPIのためには、[ReadAVS]プラグインをインストールする必要があります。ReadAVS.dllをVFAPIリーダーのディレクトリにコピーし、regファイルをメモ帳で開いて、関連しているパスを変更します。それを保存し、ダブルクリックしてレジストリに登録します。
  3. 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のためには、このプログラムを使わなければなりません。
  4. Windows Media 9 エンコーダへのフレームサービング:
    NicのWindows Media 9 エンコーダをダウンロードしてください。また、あらかじめWindows Media 9 コーデックをインストールしておいてください。ともに[こちら]で見つかります。

Q2.4: エンコーダ某がAVSファイルを読み込むときに問題は?

A:

  1. なぜTMPGEncでAVSファイルを開くことができないのですか(古いバージョンのTMPGEncで発生します)?
    • TMPGEnc用のVFAPIプラグインをインストールしてください。
    • TMPGEncのDirect Show Filterを無効にし、フレームサービングする前にVirtualDubのproxyを切ってください。
    • AVSファイルの最後に"ConvertToRGB24"を追加してください。
    • [Huffyuv]やDivX5などのコーデックをインストールしてください。TMPGEncでAVIを読み込むときに、そのコーデックがデコードしてくれます。
    • [ReadAVS]プラグインをインストールしてください。
  2. AVSファイルを読み込むときに、CCE SPがクラッシュします。どうすればいいですか?
    • Windows2000を使っているなら、WinNT4-SP5互換モードでCCEを動作させてください。
    • AviSynth v1.0x/v2.0xでフレームサービングしているなら、たとえ音声がないAVSファイルの場合でも、"ResampleAudio(44100)"をスクリプトに追加してください。
    • AviSynth v2.5xでフレームサービングしているなら、ResampleAudioのトリックはもう使えません。というのも、ResampleAudioがビデオクリップに音声ストリームを追加しないからです。その代わりに、("addaudio.avsi"と呼ばれる)スクリプトを作成して、プラグイン・ディレクトリに入れて下さい。"addaudio.avsi"については、[こちら]に書かれています。
  3. (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のスクリプトを受け入れることができると言っています。もし、あなたがこのバージョンを持っているのなら、間違いはないでしょう。
  4. 不適切な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-2ファイル (拡張子 m2p、またはm2v):
    Mpeg decoder plugins for AviSynth v1.0x/v2.0xMpeg 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")
  • VOBファイル:
    Mpeg decoder plugins for AviSynth v1.0x/v2.0xMpeg 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")
  • 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フィルタ群を含んでいます。
  • 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]も見てください。
  • aupファイル (AviUtlプロジェクト): AviSynthに直接読み込ませることが可能であるかどうか、私は知りません*4VFAPIに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.4Q3.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: 可変ビットレート

最終更新日時: 2014-03-12 (水) 23:40:31 (2070d)