2011-07-18 4 views
1

サイズが300バイトのwmvファイルがあります。私はいくつかのバイトに分割したい(例:(150バイトごと)または(3 100バイト))。これをC#言語でどのように実装するのですか?C#言語で実装されたバイト単位でwmvファイルを分割する方法は?

+3

立ってはいけません後でそれらを組み合わせますか? – TJHeuvel

+0

> 300バイト あなたの面白い男です。 300バイトの音楽/ビデオは約0.02秒の長さですか? – Zotta

+0

wmvファイルを2つの部分に分割したい:ヘッダとデータ。次に、パケットのヘッダー部分と別のパケットのデータ部分をクライアントにストリーミングするようにカプセル化します。 –

答えて

0

実際にファイルを動作させるかどうかによって異なります。チャンクで分割するのは簡単です:バイト配列に読み込み、ファイルの最後のバイトをコピーすることを忘れずに、配列の一部をCHUNKサイズのファイルにコピーするforループを作成します。それらを作業ファイルで分割することは異なります。

+0

wmvファイルを2つの部分に分割したい:ヘッダとデータ。次に、ヘッダ部分をパケットにカプセル化し、データ部分を別のパケットにカプセル化してクライアントにストリーミングします。だから私はどのように? –

+0

@HellDevil:これらのコンポーネントを分割することで、あなたは何を望んでいますか?サーバーやパケットなどのオーバーヘッドが増えています。 –

+0

@ブラッドクリスティ:私はWindows Media Httpストリーミングプロトコルを使用してビデオストリーミングサーバーを構築しています。 wmvファイルを2つの部分に分割し、パケットでカプセル化してクライアントに送信する必要があります。 –

0

私は明示的に分割せずにストリームにしようとします(tcpスタックはそれを分割します^^)。あなたが良いコーデックを持っているなら、とにかくそれを再生します。 (Vlcはダウンロード中はいつでも動画を再生できます)

+0

しかし、私はWindows Media Httpストリーミングプロトコルでストリーミングをしています。このプロトコルには2つのパケットがクライアントに送信され、#HパケットにはWMVファイルのヘッダー部分が含まれ、#Dパケットにはデータ部分が含まれます。 –

+0

なぜあなたはストリーミングプロトコルを作成しようとしますか?それは博士仕事の男。私はあなたがそれが働くようになると言うときに私を信頼してください。 – CrazyDart

+0

@CrazyDart:それは私の論文です。「ウィンドウズメディアhttpストリーミングプロトコルでストリーミングビデオサーバーを構築する」 –

0

本当の答えは、ストリーミングサーバーを使用してストリーミングプロトコルの作成を忘れることです。それはクレイジーです。ファイルをバイトセグメントに分割するには、以下のようなコードを使用します。テストされていないものではありませんが、約95%完了する必要があります。

すでにお持ちでない場合は、原仕様をご覧ください。 http://msdn.microsoft.com/en-us/library/cc251059(v=PROT.10).aspxそして、あなたが持っている、とあなたがこの質問をした場合、あなたはアイスキューブはあなたがそれらの個々のファイルが実際に動作するように、またはあなたがその何かを作ることに計画しているしたいです、それが動作することで、地獄にチャンス

 int chunkSize = 300; 
     var file = File.Open("c:\file.wmv", FileMode.Open); 
     var numberOfChunks = (file.Length/chunkSize)+1; 
     byte[][] fileBytes = new byte[numberOfChunks][]; 
     for (int i = 0; i < numberOfChunks; i++) 
     { 
      int bytesToRead = chunkSize; 
      if (i == numberOfChunks + 1) 
      { 
       bytesToRead = (int)(file.Length - (i * chunkSize)); 
      } 
      fileBytes[i] = new byte[bytesToRead]; 
      file.Read(fileBytes[i], i * chunkSize, bytesToRead); 
     } 
+0

私をサポートしていただきありがとうございます。実際に私はストリーミングプロトコルを書いていません。私はWindows Media Http Streamingプロトコルにストリーミングサーバーを書きます。これは、Microsoftによって書かれたプロトコルです。 –

+0

私はそれをやってもいいと言っているわけではありません。野生の中でこれを使うプロジェクトがいくつかあり、オープンソースを探してコードを探します。 – CrazyDart

関連する問題