web-dev-qa-db-ja.com

Androidを使用して、リアルタイムビデオストリームをサーバーに転送します

Android Cameraを使用してリアルタイムビデオをキャプチャし、それらをサーバーに送信する必要があります。その後、他のユーザーがブラウザーなどを介してそれらを読み取ります。

私はGoogleで検索してSOで検索しましたが、ビデオストリームアプリには次のような例があります。

1 Android-eye: https://github.com/Teaonly/Android-eye

2 Spydroid-ipcamera: https://code.google.com/p/spydroid-ipcamera/

ただし、環境は異なるようです。ほとんどのアプリはストリームリクエストのためにHTTPサーバーを起動し、クライアントはローカルネットワーク経由でページにアクセスしてビデオを表示します。

その場合、ビデオストリームソースとサーバーはどちらも次のようなデバイスです。 enter image description here

ただし、次のようなインターネットサポートが必要です。 enter image description here

だから、他のアイデアはないのだろうか。

30
hguser

2番目の図で、3つのステージを正しく設計したことがわかります。

したがって、必要なのは、これらのプロトコルから選択する方法と、それらをインターフェースする方法を決定することです。誰もあなたに完全なソリューションを提供することはできませんが、Android Video Streamingでエンタープライズプロジェクトを完了しました。

enter image description here

写真には3つの部分があります。左から右に詳しく説明します。

1. Android Streamer Device

私の経験によれば、AndroidはRTPでカメラストリームをうまく送信できます。これは ネイティブサポート によるものですが、動画をFLVに変換すると頭痛の種になります(In多くの場合、たとえば、後でAndroidデバイスにストリームを配信したい場合)。

したがって、 spyDroid のようなものを構築することをお勧めします。

2.ストリーミングサーバー

Wowza Serverなどのツールがあり、ソースストリームを取得して、他のクライアントのサーバーの出力に配置できます。 VLCは、[ファイル]-> [ストリーム]メニューを使用してこれを行うこともでき、spyDroidベースのアプリからRTSPビデオストリームアドレスを入力できると思います。しかし、私は個人的にそれを試していません。

また、独自のストリーマーサーバーを実装するのは難しい作業ではありません。

例を挙げましょう:

HLSサーバーの実装には、次の3つが必要です。

  1. 10秒のMPEG2チャンクにセグメント化されたビデオファイル。 (つまり、.tsファイル)
  2. チャンクのm3U8プレイリスト。
  3. HTTP経由でプレイリストをクライアント(PC、Android、iPhone、ほとんどすべてのデバイス)に配信するシンプルなWebServiceを備えたWebサーバー。クライアントは、プレイリストファイルを検索し、適切なタイミングで適切なチャンクを要求します。ほぼすべてのプレーヤーにHLSサポートが組み込まれているためです。

3.クライアント側

コメントに基づいて、Android Video Streaming。

これほど大きなプロジェクトを完了するには、さらに多くの調査が必要です。例えば、RTP= RTSPと区別して、それらが互いにどのように関連しているかを理解できる必要があります。

私の答えを読んでください こちら 最先端のビデオストリーミングの感覚を得るために、お気軽にお問い合わせください。

これからの旅の全体像が得られれば幸いです。

頑張って楽しんでね

35
Behnam

かなり一般的な質問ですが、私はあなたに研究の方向性を与えようとします:

まず、いくつかの質問に答える必要があります。

1)ビデオストリームの性質と目的は何ですか?静止画の詳細が重要なセキュリティアプリケーションですか(MJPEGコーデックのようなものを使用する必要があります)、それとも動きでのみ表示されますか?

2)ストリームソース、サーバー、クライアントは同じネットワーク上にあるため、より正確なタイミングに [〜#〜] rtsp [〜#〜] を使用するか、WANが関与し、HTTPのようなより安定したものを使用する必要がありますか?

3)同時出力接続の数は?言い換えれば、 Wowza with transcoding add-on (そして多分 nDVR too)または Flussonic 、または ffserver のような単純なソリューションで十分ですか?

長い話を短くするには、数人の視聴者のための安価で汚い解決策のために、 IP Webcam -> ffserver -> VLC for Android そして、独自のソフトウェアを書くことは避けてください。

3
David Jashi