2011-01-11 7 views
0

Ich besaß ein Projekt von meinem Vorgesetzten, die eine Video-Chat-App auf Android ist. Die App ist die gleiche wie Fring oder Qik Video Chat. Aber es ist neu für mich, kann mir also jemand Ratschläge oder Startpunkte geben?Video-Chat-Projekt auf Android-Plattform

Danke!

+0

Sie müssen an Technologien wie SIP und VOIP arbeiten. –

+0

Danke. Aber wie ich weiß, unterstützen SIP und VOIP nur Sprache, nicht Video. Ist mein Verständnis richtig? – huaqihz

Antwort

7

Ich bin verwirrt - haben Sie ein bestehendes Projekt geerbt, oder werden Sie gebeten, eines zu starten? Wenn Sie aufgefordert werden, einen zu starten, habe ich einen Kommentar: Videokonferenzen sind nichts für schwache Nerven.

Insbesondere benötigen Sie:

  1. Ein Mittel der Audio- und Video-Capturing
  2. Ein Mittel zur Codierung von Audio- und Video, die Sie Encoder bedeutet benötigen. Das bedeutet, dass Sie Codecs (und Codec-Implementierungen!) Auswählen, Lizenz- und Royalty-Probleme ansteuern müssen. Zumindest möchten Sie wahrscheinlich mit H264/MPEG4/MPEG2 für Video vertraut sein, und für Audio gibt es eine Menge Möglichkeiten (AAC/MP3/G.7xx/Speex/etc.).
  3. Ein Mittel zum Streamen von Audio und Video, was bedeutet, dass Sie eine Art Echtzeit-Streaming-Mechanismus wie RTP benötigen. Wie Harry erwähnt, benötigen Sie auch eine Art Session-Beschreibung/Initiationsprotokoll, wie SIP oder RTSP. Sie müssen sowohl Code senden als auch empfangen, sobald Sie die Protokolle festgelegt haben. Wenn Sie beispielsweise RTSP/RTP verwenden, können Sie beispielsweise Live55 verwenden. Oder wenn Sie nur RTP wollten, gibt es JRTPLIB.
  4. Ein Mittel zum Durchqueren von NAT. Der einfachste Weg besteht darin, durch einen Mittelmann zu streamen (d. H. Relay), aber dies führt zu Latenz, kostet Geld in der Bandbreite usw. Umfassendere Lösungen verwenden ICE/STUN/TURN-Lösungen, so dass Sie eine Bibliothek dafür benötigen.
  5. Viele Kleber-Code, um alle oben genannten zusammen in etwas, das nicht wie ein Wirrwarr, fieses Chaos ähnelt. Möglicherweise müssen auch crud wie Kontakte, Anwesenheit (das heißt alert Benutzer, wenn Freund blah online ist, oder wenn sie offline gehen) usw.

Beachten Sie die oben beschrieben wahrscheinlich (grob), wie die meisten Videokonferenzanwendungen arbeiten. Wenn Sie also ein Projekt erben, würde ich damit beginnen, Audio- und Video-Capture/-Codierung, Streaming-Protokolle und NAT-Traversal-Methoden aufzuarbeiten. Wenn Sie bei Null anfangen, würde ich sicherstellen, dass die Projektanforderungen und der Umfang vernünftig sind (von Grund auf würde ich mindestens ein Jahr - wenn nicht mehr - für eine grundlegende Implementierung einplanen, die das oben genannte beinhaltet).

+0

Hallo Kidjan, Ja, was Sie Kommentare sind, worüber ich mir Sorgen mache. Eigentlich kümmere ich mich um die Video-Enhanced-Technologien, es ist eine Nachbearbeitung auf empfangenen Rahmendaten. Für aktuelle, wie Fring-Video-Chat, haben die empfangenen Videodaten geringe Qualität, wie Kompressionsartefakt, schlechter Kontrast und Helligkeit usw. Also wollen wir es für eine bessere Präsentation für den Benutzer verbessern. Aber alle oben genannten Post-Processing-Technologien müssen auf dem Rahmen des Capturing/Encoding/Streaming basieren, genau wie Sie es erwähnt haben, und diese Technologien sind, was ich vermisste. – huaqihz

+0

Also brauche ich ein einfaches und nicht biz Klassen Framework, vielleicht nachdem ich die anderen beendet habe, werde ich das Framework verbessern, vielleicht auch nicht. Aber für den Moment ist dieses Framework so schwer für mich, ich brauche den Startpunkt und einen schnellen Weg, um meine Arbeit zu beginnen. Danke! – huaqihz

Verwandte Themen