AviSynthは、スクリプト言語または言い換えると、ビデオ処理用のスクリプト言語によって制御される非線形ビデオエディターです。 AviSynthは、アプリケーションと物理ファイルの間の仲介者として機能し、さまざまな変換をオンザフライで実行できます。 さまざまなコマンドを含むテキストファイル(AVSスクリプト)、多くのプログラムは通常のビデオファイル(VirtualDub、Adobe Premiere、Windows Media Player、Media Player Classic、e tc)として開くことができます。 技術的には、AviSynthはテキストファイルのVFW(Video For Windows)コーデックとして機能します。 AviSynthはさまざまなプラグインをサポートしていますが、その中には膨大な数があります。 (VirtualDubから独自に)。 こちらからダウンロードしてください 。
これにより何が得られますか?
- ビデオを処理および再生するためのプログラムの機能を拡張します。 たとえば、以前はサポートされていなかったビデオ(および音声)の形式のサポートを追加します。 さまざまな効果とフィルターの適用。
- ビデオ処理の自動化。 他のスクリプト言語を使用したAviSynthスクリプトは、その場で生成できます。
- 小さなビデオ処理操作を簡素化および高速化します。 グラフィックメニューをクロールする代わりに、いくつかの小さなコマンドをテキストファイルに入れる方が便利で高速です。 さらに、将来、このテキストファイルは他のソースに使用でき、ソースファイルの名前を置き換えるだけです。 頻繁に実行される操作のテンプレートのコレクションを作成できます。
VirtualDubとは何ですか?
この記事では、この素晴らしいエディターについては触れませんが、これはビデオ処理用の一種のナイフであることに注意してください。 遮断するもの、トラックを変更するもの、統計を見るものなど。 このプログラムでは非常に迅速に行うことができます。 only辱的なことは、標準の配信ではプログラムが新しいタイプのコンテナを理解しないことですが、これはさまざまなフォークによって修正されます。 こちらからダウンロードしてください 。
例1.弱いコンピューターのビデオ圧縮。
ほとんどすべての新しいビデオはHDになりましたが、コンピューターの容量では視聴を楽しむことができない多くのユーザーがいます。 この状況に対するソフトウェアソリューションは、ビデオをより低い解像度で圧縮します。 これにはさまざまなプログラムがありますが、ほとんどの場合、不便であるか、不要な機能が過剰にロードされているか、便利ですが、目的のファイル形式をサポートしていないか、費用がかかります。 AviSynthとVirtualDubを使用して、DirectShowコーデックがインストールされている(つまり、Windows Media Playerで再生できる)ファイルを処理する方法を学習します。
実験の対象として、Ghost in the Shellを使用し、サイズを縮小してhardsubを作成します(ビデオシーケンスに字幕を導入します)。
ソースビデオからのフレーム:
AviSynthに、DirectShowフィルターを使用してファイルを開く必要があることを伝えます。 同じフィルターを使用して、WMPはそれらを開きます。 ノートブックを開いて次のように書きます:
DirectShowSource("__")
私が得た:
DirectShowSource("e:\Ghost In The Shell Movie 1.mkv")
ファイルをavs拡張子で保存し、VirtualDubで開いてみます。 mkvを標準としてサポートしていませんが、ファイルが開きます。 VirtualDubは、コンテンツを非圧縮ビデオとして識別します。 OK、VirtualDubを閉じ、スクリプトを開いて次の行を追加します。
Lanczos4Resize(_, _)
このコマンドを使用すると、AviSynthは元のビデオのサイズを変更します。 サイズを変更するには、いくつかの異なる方法があり、高速な方法と低速な方法があります。 ドキュメンテーションでそれらに慣れることができます(ちなみにロシア語でも)。
その結果、スクリプトができました。
DirectShowSource("e:\Ghost In The Shell Movie 1.mkv")
Lanczos4Resize(800,430)
保存してVirtualDubで開きます。 写真のサイズが変更されたことがわかります。私にとっては次のようになっています。
hardsabを作ることは残っています。 これを行うには、次のコマンドを使用します。
TextSub(“__”)
その結果、スクリプトができました。
DirectShowSource("e:\Ghost In The Shell Movie 1.mkv")
Lanczos4Resize(800,430)
TextSub("e:\Ghost In The Shell Movie 1.SRT")
そして、ここにそのような写真があります:
たとえば、低ビットレートのXviDやウォッチなど、すべてを圧縮できます。 ただし、生成されたファイルは配布されるべきではありませんが、私たちは個人的な閲覧専用にそれを行いました。 :)
例2
非常に一般的な次のタスクは、異なるビットレート、異なる解像度、異なる形式、場合によっては異なるフレームレートを持つビデオファイルを接着することです。 AviSynthを使用すると、これは非常に簡単に行われるため、少し面倒です。
そのため、次の患者がいます。
- 攻殻機動隊-H264、1280x688、23.98fps、MKV
- Teenage Mutant Ninja Turtles-XVID、512x384、23.98fps、AVI
- ネジから-DivX 5、720x528、25.00fps、AVI
実際には、このような動物園を接続する必要はありませんが、AviSynthの機能を強調したいと思います。
ノートブックを開き、以下を記述します。
video1 = DirectShowSource("D:\Video\Games\ \Ot Vinta. 001.avi")
video2 = DirectShowSource("E:\Ghost In The Shell Movie 1.mkv")
video3 = DirectShowSource("D:\Video\Teenage Mutant Ninja Turtles\1x01.avi")
return video1 + video2 + video3
これらのコマンドを使用して、ビデオタイプの3つの変数を作成し、それらを1つの長い断片に結合して、再生のために返しました。 ここでスクリプトを実行しようとすると、ファイルのパラメーターが異なるため、エラーメッセージが表示されます。 まず、それらを同じ解像度(720x480にします)にします。アスペクトを壊さないために、黒いバー(レターボックス)を追加し、fpsを25にし、サウンドのサンプルレートを1つの値(44100)にします。
video1 = DirectShowSource("D:\Video\Games\ \Ot Vinta. 001.avi")
video2 = DirectShowSource("E:\Ghost In The Shell Movie 1.mkv")
video3 = DirectShowSource("D:\Video\Teenage Mutant Ninja Turtles\1x01.avi")
video1 = video1.Trim(100,200)
video1 = video1.Lanczos4Resize(652,480)
video1 = video1.AddBorders(34, 0, 34, 0)
video1 = video1.ResampleAudio(44100)
video2 = video2.Trim(200,300)
video2 = video2.Lanczos4Resize(720, 388)
video2 = video2.AddBorders(0, 46, 0, 46)
video2 = video2.ConvertFPS(25)
video2 = video2.ResampleAudio(44100)
video3 = video3.Trim(400,500)
video3 = video3.Lanczos4Resize(640,480)
video3 = video3.AddBorders(40, 0, 40, 0)
video3 = video3.ConvertFPS(25)
video3 = video3.ResampleAudio(44100)
return video1 + video2 + video3
Trimコマンドを使用して、各ファイルから100フレームを残しました。 そのように。 :)
以上です。 スクリプトはほんの数秒でコピーアンドペーストされ、全体の時間を節約します。 その実行には、ディスク上の一時ファイルや恐ろしい量のRAMは必要ありません。
実行結果:
このパブリケーションが発生しなかった招待なしで酔っ払ったユーザーに特別な感謝。