AviSynth + VirtualDub:コマンドラインからオーディオを取得する

どういうわけか、* .FLVファイルからオーディオを抽出する必要がありました。 グラフィックビデオエディターは、この目的にはまったく不適切だと思われたため、コマンドラインでメディアファイルからサウンドを抽出する独自のユーティリティを作成することにしました。
オープンソース製品のみを使用しました。

必要なもの:


手順1. K-Lite Codec Pack、Virtual Dub、AVISynthをインストールします。

手順2.このようなスクリプトをcmd.exeコマンドプロセッサのBAT言語で記述します。

  @エコーオフ
 @rem(C)ダンクス
 VD = VirtualDub.audioを設定します。
 echo VirtualDub.Open(VirtualDub.params [0]、 ""、0);  > 1.ジョブ
 echo%VD%SetSource(1);  >> 1.ジョブ
 echo%VD%SetMode(1);  >> 1.ジョブ
 echo%VD%SetInterleave(1,500,1,0,0);  >> 1.ジョブ
 echo%VD%SetClipMode(1,1);  >> 1.ジョブ
 echo%VD%SetConversion(44100,0,1,0,1);  >> 1.ジョブ
 echo%VD%SetVolume();  >> 1.ジョブ
 echo%VD%SetCompression();  >> 1.ジョブ
 echo%VD%EnableFilterGraph(0);  >> 1.ジョブ
 echo%VD%filters.Clear();  >> 1.ジョブ
 echo VirtualDub.SaveWAV(VirtualDub.params [1]);  >> 1.ジョブ
 echo VirtualDub.Close();  >> 1.ジョブ
 FOR %% i IN(*。*)実行(
  存在しない場合は%%〜ni.wav(
    エコー。
    エコー再圧縮%% i
     echo c = DirectShowSource ^( "%% i" ^)> 3.avs
     echo AudioDub ^(BlankClip ^(長さ= c.FrameCount ^)、c ^)>> 3.avs
     "C:\ Program Files \ VirtulDub \ vdub.exe" / i 1.jobs 3.avs %%〜ni.wav> nul
   )
 )
 del / q / s 3.avs> nul 2>&1
 del / q / s 1.jobs> nul 2>&1 



ステップ3.このスクリプトを「extractaudio.bat」として、%PATH%環境変数で指定されたディレクトリのいずれかに保存します。

それだけです!

オーディオまたはビデオファイルがあるディレクトリでこのスクリプトを実行すると、スクリプトはそのような各ファイルから44kHzのモノラルオーディオを抽出し、ファイル名は元のメディアファイルの名前と一致し、拡張子はWAVになります。

たとえば、このコードは、3GP形式のビデオおよびフラッシュビデオFLVからサウンドを取り出すことができます。

成功。

Source: https://habr.com/ru/post/J127582/


All Articles