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:
- Ein Mittel der Audio- und Video-Capturing
- 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.).
- 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.
- 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.
- 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).
Sie müssen an Technologien wie SIP und VOIP arbeiten. –
Danke. Aber wie ich weiß, unterstützen SIP und VOIP nur Sprache, nicht Video. Ist mein Verständnis richtig? – huaqihz