2017-05-08 10 views
0

は私はが正常javascriptのを使用してそれをアップロードした紺碧BLOBサーバー上で動画をアップロードしたいのですが、今私は、アップロード時に圧縮ビデオのサイズやブロックサイズにしたいです。 これを行う方法はありますか? ありがとうございますasp.netのjavascriptを使用してAzure BLOBストレージにアップロード中にビデオを圧縮するにはどうすればよいですか?

+1

可能な複製(http://stackoverflow.com/questions/31316791/compress-a-video-on-client-side-ウェブ) –

+0

いいえ、その異なる。私はazure.BLOBストレージを使用しています、現在、私はaspxページからjavascript経由でビデオをアップロードしています。ビデオのサイズが大きすぎるので、私はそれを圧縮したい。 –

+0

どこで圧縮しますか?ファイル全体がアップロードされた後のサーバー上(ASP.NET内)、またはファイルがアップロードされる前にクライアントWebページ(JavaScript)内にありますか? –

答えて

0

罰金は、どのようにサーバー側でそれを行うには?

ffmpegを使用して、azure Webジョブを使用してビデオファイルを圧縮することをお勧めします。

webjobで以下のコマンドを使用してビデオファイルを圧縮することができます。

-i {inputfile} -vcodec h264 -b:v 250k -acodec mp2 {outputfile} 

最初にファイルをあなたの紺のWebサイトのルートパスにアップロードすることができます。次に、ファイル名を空白のキューストレージにキューメッセージとして追加できます。

webjobがファイル名を見つけたら、ffmpegを実行してビデオファイルを圧縮することができます。完全に圧縮した後、そのファイルをBLOBストレージにアップロードし、アップロードしたファイルを削除します。

詳細については、以下の手順を参照してください。

1. ffmpeg exeファイルとアップロード/圧縮ファイルを保存するための新しいフォルダを作成します。

enter image description here

2.Create webjobプロジェクトとNugetからmediatoolkitパッケージをインストールします。

3.以下のコードをwebjobs関数に追加します。

public static void ProcessQueueMessage(
     [QueueTrigger("blobcopyqueue")] string filename, TextWriter log, 
     [Blob("textblobs/{queueTrigger}", FileAccess.Write)] Stream blobOutput 
     ) 
     { 
      //set the input file path 
      string inputfile = string.Format(@"D:\home\site\wwwroot\video\{0}", filename); 
      //set the input file path 
      string outputFile = string.Format(@"D:\home\site\wwwroot\video-compress\{0}", filename); 

      using (var engine = new Engine(@"D:\home\site\wwwroot\compress\ffmpeg.exe")) 
      { 

       string command = string.Format(@"-i {0} -vcodec h264 -b:v 250k -acodec mp2 {1}", inputfile, outputFile); 

       //you could change the command value as what you want to use 
       engine.CustomCommand(command); 
      } 

      using (var fileStream = System.IO.File.OpenRead(outputFile)) 
      { 
       fileStream.CopyTo(blobOutput); 
      } 

      //after compress delete the file. 
      //File.Delete(inputfile); 
      // File.Delete(outputFile); 

     } 

結果:enter image description here

[クライアント側のWeb上のビデオを圧縮]の
関連する問題