2

(ライブストリーミングに成功したため、実際の質問は編集されましたが、クライアントとCコードの間の通信がわかりません。)

さて、ついに C コードを使用してライブ ストリーミングを行いました。しかし、ここで「HTTP」がどのように機能するのか理解できませんでした。Wireshark を使用して、リンクhttp://www.flumotion.com/demosite/webm/でブラウザとサーバー間の通信を調べました。

クライアントが最初にこの GET リクエストを送信することがわかりました

GET /ahiasfhsasfsafsgfg.webm HTTP/1.1
Host: localhost
Connection: keep-alive
Referer: file:///home/anirudh/Desktop/anitom.html
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Range: bytes=0-1024

この get 要求に対して、サーバーはこの応答を送信して応答します

HTTP/1.0 200 OK
Date: Tue, 01 Mar 2011 06:14:58 GMT
Connection: close
Cache-control: private
Content-type: video/webm
Server: FlumotionHTTPServer/0.7.0.1

その後、サーバーはクライアントが切断されるまでデータを送信します。クライアントは一定量のデータを受信すると切断します。その後、CLIENT は新しいポートでサーバーに接続し、同じ GET 要求がサーバーに送信されます。サーバーは再び同じ応答を返しますが、今回はクライアントは切断せず、サーバーが切断されるまで継続的にパケットを読み取ります。上記の動作を再現するサーバー ソケットを持つ C コードを作成しました。(wireshark、flumotion、stackoverflow に感謝)

しかし、しかし、クライアントが2つのリクエストを送信する必要がある理由と、最初のリクエストでリセットして新しいポートで同じリクエストを再度送信する理由と、今回はライブストリーミングされているかのようにデータをリッスンする理由を理解できませんでした. また、チャンク エンコーディングを使用してライブ ストリームを配信する方法もわかりません。

同じことの詳細がここにあります: http://systemsdaemon.blogspot.com/2011/03/live-streaming-video-tutorial-for.html

そしてここhttp://systemsdaemon.blogspot.com/2011/03/http-streaming-video-using-program-in-c.html

私を助けてください。前もって感謝します。

4

1 に答える 1

0

ストリームが実際に有効なビデオ ソースであり、600MB の Windows 実行可能ファイルではないことをテストするために、最初の要求は 1024 バイトに制限されています。

于 2011-03-18T06:44:53.360 に答える