RTSP-client in android
Schreibe ich einen RTSP-client in Android. Ich bin in der Lage zu erhalten die Antworten für alle Anforderungen
d.h.,
- BESCHREIBEN, es sendet die 200-OK
- SETUP mit transport: RTP/AVP:unicast:client_port=4568:4569 habe die 200 OK-Nachricht zurück
- Geschickt SPIELEN, und bekam die OK-Meldung
Danach, wie man die audio-und video-frames?
Den ich gesucht habe auf blogs, aber alle sagen zu hören unter client_port aber ich empfange keine Pakete.
Bitte lassen Sie mich wissen, mache ich richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie oder können nicht wissen, aber Android hat eingebaute Unterstützung für RTSP mit dem VideoView.
http://developer.android.com/reference/android/widget/VideoView.html
Dies kann reduzieren auf Ihre Entwicklung Zeit...oder es kann völlig nutzlos, wenn Sie versuchen zu Rollen Ihre eigene RTSP-stack.
RTSP wird nur verwendet, um starten Sie das streaming. Es gibt Ihnen eine SDP-Beschreibung der real-streams. Sie verwalten ein RTCP-Verbindung und eine RTP-Verbindung pro Kanal (audio /video). Die ports sind die "client_port" ersetzt.
Ist es ziemlich Komplex, um code, die ein RTSP/RTCP/RTP-stack von Grund auf neu. Sie können einen Blick auf die live555 Bibliothek, die die Implementierung einer solchen stack in c++.
Setzen Sie einen sniffer auf dem Netz, Sie sollten sehen UDP-Paket mit der Ziel-port 4568 gezielt auf Ihre IP-Adresse.
Mit einer anständigen sniffer, werden Sie in der Lage, um zu sehen, die rtsp-dialog. Vielleicht sind Sie etwas fehlt in den Antworten
Sollten Sie auch prüfen, den Inhalt der SETUP-Reaktion, um zu sehen, ob der port, den Sie angefordert haben, wurden angenommen.
Dinge zu überprüfen :
Wenn Sie hinter einem router oder einer firewall befinden, sind Sie wahrscheinlich nicht erhalten nichts, weil dein router /firewall weiß nicht, was mit eingehenden UDP-Pakete
Versuchen Sie es zunächst mit einem lokalen Darwin Streaming server installiert in Ihrem LAN.so Firewall nicht egal.Streaming funktioniert.
Wenn Sie möchten, um zu versuchen, die von externen server dann:
1) Überprüfen Sie die client_ports erwähnt in der Antwort des SERVERS,einige Server vorschlagen, die verschiedenen Häfen, von der man verlangt.haben Sie die ports-vorgeschlagen von server.
2) Wenn die ports richtig sind, dann schicken Sie 64byte leere Pakete aus jedem der UDP-ports zu den server(als "Tür-öffner").
3) Wenn die beiden oben genannten nicht beheben, überprüfen Sie die server-side-logs.Der server kann die Schließung der UDP-ports.