2016-09-04 7 views
0

ich bin in den Prozess der Erstellung einer Anwendung ähnlich wie skype, um mit einem anderen Computer zu interagieren, und ich habe ein paar Fragen.Audio + visuelle über TCP/IP

Ich kenne alle Grundlagen wie zum Senden von Daten über TCP usw. in Form von Bild und Ton.

  1. Wie können Anwendungen wie Skype Live-Audio senden? Erfasst es librally 1 Byte des Audios, sendet es und spielt es und wiederholt dann den Prozess? Für mich ist es nicht sofort, also sehe ich nicht, wie das möglich wäre.

  2. Wie würden Sie Zeichenfolge und Bild gleichzeitig über tcp (Videoanruf + Chat) senden, würden Sie mehrere Ports verwenden? Ich kann sehen, wie das sehr schlecht wäre. Die Art, wie ich atm mache, ist, wenn ich ein Bild anklicke, ich richte es so ein, dass es ein richtiges Bild empfängt, wenn zum Beispiel ein String gesendet wird, würde es nicht funktionieren, da es nicht in ein Bild konvertiert werden kann wenn du siehst was ich sage. Ich bin mir nicht sicher, wie ich es sonst tun würde. Ich könnte jedes Ding mit seinem Typ als Anfang senden, zum Beispiel "string Hallo, wie geht es dir", dann entziffere ich den Datentyp durch das, aber das scheint ein wenig mühsam und langsam.

Wenn jemand mir einen Einblick geben könnte, dass wäre fantastisch

Antwort

1

ich, wie es skype nicht sprechen kann, aber ein Ausgangspunkt sein sollte:

  • Streaming-Audio/Video wird normalerweise über UDP-Sockets transportiert, nicht über TCP. TCP garantiert die Zustellung, während UDP die beste Leistung darstellt. Wenn Sie einen vorübergehenden Verbindungsverlust haben, ist es wichtig, dass das Video, das Sie erhalten, aktuell ist, nicht dass Sie den gesamten Stream erhalten.
  • Die Daten werden normalerweise mit einem Standardkomprimierungsalgorithmus komprimiert (und manchmal verschlüsselt), nachdem sie von einer Kamera/einem Mikrofon empfangen wurden. Werfen Sie einen Blick auf H264, die häufig zum Komprimieren von Video verwendet wird.
  • RTP wird oft zur Übertragung von Audio/Video verwendet. Es ermöglicht die Kombination mehrerer Stream-Typen über einen einzelnen Socket.
  • Kontrollverkehr wird normalerweise separat über einen anderen Socket gesendet, normalerweise TCP. Zum Beispiel initiiert SIP, das für VoIP-Telefone verwendet wird, eine Steuerverbindung über einen TCP- oder UDP-Port (normalerweise 5060). Die beiden Enden verhandeln dann, welche Arten von Streams unterstützt werden und wie diese Streams gesendet werden. Für SIP wird dies ein RTP-Stream sein, der auf einem anderen UDP-Port eingerichtet ist.
+0

oh wow das hört sich komplizierter an, als ich dachte, ich nehme an, dass Sie keine einfachen Beispiele kennen, die ich betrachten kann? –