10
votes

VLC RTSP Live Stream à Android

Pour mon application, je dois diffuser une carte de DeckLink à une application Android (je dois être un flux en direct, donc HLS ou RTSP semble être de bonnes solutions, puisque mon application cible Android 3+). J'ai recompilé VLC avec le DeckLink SDK, et je suis capable de vivre un flux dans un autre PC sur le réseau (mais cela ne fonctionne que 60sec avec RTSP).

Voici ce que j'ai essayé: p>

  • flux http: p> XXX PRE> LI> ul>

    Il travaille dans Android VLC 0.0.11, mais uniquement dans le WiFi, pas en 3G. Et je ne suis pas capable de jouer dans mon application avec une vidéasieView. Voici le code que j'ai utilisé et les messages d'erreur correspondants: p>

    04-08 15:32:45.792: D/MediaPlayer(13688): Couldn't open file on client side, trying server side
    04-08 15:32:45.802: W/MediaPlayer(13688): info/warning (701, 0)
    04-08 15:32:45.812: I/MediaPlayer(13688): Info (701,0)
    04-08 15:32:45.812: D/MediaPlayer(13688): getMetadata
    04-08 15:32:45.812: E/MediaPlayerService(7680): getMetadata failed -38
    04-08 15:32:45.852: I/MyHandler(7680): connection request completed with result 0 (Success)
    04-08 15:32:45.882: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:45.882: I/MyHandler(7680): DESCRIBE completed with result 0 (Success)
    04-08 15:32:45.882: I/ASessionDescription(7680): v=0
    04-08 15:32:45.882: I/ASessionDescription(7680): o=- 15352003113363922923 15352003113363922923 IN IP4 to63-169.ifremer.fr
    04-08 15:32:45.882: I/ASessionDescription(7680): s=Unnamed
    04-08 15:32:45.882: I/ASessionDescription(7680): i=N/A
    04-08 15:32:45.882: I/ASessionDescription(7680): c=IN IP4 134.246.63.169
    04-08 15:32:45.882: I/ASessionDescription(7680): t=0 0
    04-08 15:32:45.882: I/ASessionDescription(7680): a=tool:vlc 2.0.5
    04-08 15:32:45.882: I/ASessionDescription(7680): a=recvonly
    04-08 15:32:45.882: I/ASessionDescription(7680): a=type:broadcast
    04-08 15:32:45.882: I/ASessionDescription(7680): a=charset:UTF-8
    04-08 15:32:45.882: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp
    04-08 15:32:45.882: I/ASessionDescription(7680): m=audio 5556 RTP/AVP 96
    04-08 15:32:45.882: I/ASessionDescription(7680): b=AS:24
    04-08 15:32:45.882: I/ASessionDescription(7680): b=RR:0
    04-08 15:32:45.882: I/ASessionDescription(7680): a=rtpmap:96 mpeg4-generic/48000
    04-08 15:32:45.882: I/ASessionDescription(7680): a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=118856e500; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;
    04-08 15:32:45.882: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp/trackID=0
    04-08 15:32:45.882: I/ASessionDescription(7680): m=video 5554 RTP/AVP 96
    04-08 15:32:45.882: I/ASessionDescription(7680): b=AS:56
    04-08 15:32:45.882: I/ASessionDescription(7680): b=RR:0
    04-08 15:32:45.882: I/ASessionDescription(7680): a=rtpmap:96 H264/90000
    04-08 15:32:45.882: I/ASessionDescription(7680): a=fmtp:96 packetization-mode=1;profile-level-id=64000b;sprop-parameter-sets=Z2QAC6zZQsTv/AC0ALBAAAADAEAAAAyjxQplgA==,aOvssiw=;
    04-08 15:32:45.882: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp/trackID=1
    04-08 15:32:45.982: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:45.982: I/MyHandler(7680): SETUP(1) completed with result 0 (Success)
    04-08 15:32:45.982: I/MyHandler(7680): server specified timeout of 60 secs.
    04-08 15:32:45.992: W/MyHandler(7680): Missing 'source' field in Transport response. Using RTSP endpoint address.
    04-08 15:32:45.992: I/APacketSource(7680): dimensions 176x144
    04-08 15:32:46.012: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:46.022: I/MyHandler(7680): SETUP(2) completed with result 0 (Success)
    04-08 15:32:46.022: I/MyHandler(7680): server specified timeout of 60 secs.
    04-08 15:32:46.022: W/MyHandler(7680): Missing 'source' field in Transport response. Using RTSP endpoint address.
    04-08 15:32:46.022: W/MyHandler(7680): Server picked an odd RTP port, it should've picked an even one, we'll let it pass for now, but this may break in the future.
    04-08 15:32:46.082: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:46.082: D/dalvikvm(13688): GC_FOR_ALLOC freed 303K, 7% free 9289K/9927K, paused 35ms, total 36ms
    04-08 15:32:46.092: I/MyHandler(7680): PLAY completed with result 0 (Success)
    04-08 15:32:46.092: I/MyHandler(7680): This is a live stream
    04-08 15:32:48.262: D/AudioHardware(7680): AudioHardware pcm playback is going to standby.
    04-08 15:32:48.262: D/AudioHardware(7680): closePcmOut_l() mPcmOpenCnt: 1
    04-08 15:32:56.092: W/MyHandler(7680): Never received any data, switching transports.
    04-08 15:32:56.112: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:56.122: I/MyHandler(7680): TEARDOWN completed with result 0 (Success)
    04-08 15:32:56.122: I/MyHandler(7680): connection request completed with result 0 (Success)
    04-08 15:32:56.152: I/ARTSPConnection(7680): status: RTSP/1.0 200 OK
    04-08 15:32:56.152: I/MyHandler(7680): DESCRIBE completed with result 0 (Success)
    04-08 15:32:56.152: I/ASessionDescription(7680): v=0
    04-08 15:32:56.152: I/ASessionDescription(7680): o=- 15352003157473632156 15352003157473632156 IN IP4 to63-169.ifremer.fr
    04-08 15:32:56.152: I/ASessionDescription(7680): s=Unnamed
    04-08 15:32:56.152: I/ASessionDescription(7680): i=N/A
    04-08 15:32:56.152: I/ASessionDescription(7680): c=IN IP4 134.246.63.169
    04-08 15:32:56.152: I/ASessionDescription(7680): t=0 0
    04-08 15:32:56.152: I/ASessionDescription(7680): a=tool:vlc 2.0.5
    04-08 15:32:56.152: I/ASessionDescription(7680): a=recvonly
    04-08 15:32:56.152: I/ASessionDescription(7680): a=type:broadcast
    04-08 15:32:56.152: I/ASessionDescription(7680): a=charset:UTF-8
    04-08 15:32:56.152: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp
    04-08 15:32:56.152: I/ASessionDescription(7680): m=audio 5556 RTP/AVP 96
    04-08 15:32:56.152: I/ASessionDescription(7680): b=AS:24
    04-08 15:32:56.152: I/ASessionDescription(7680): b=RR:0
    04-08 15:32:56.152: I/ASessionDescription(7680): a=rtpmap:96 mpeg4-generic/48000
    04-08 15:32:56.152: I/ASessionDescription(7680): a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=118856e500; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;
    04-08 15:32:56.152: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp/trackID=0
    04-08 15:32:56.152: I/ASessionDescription(7680): m=video 5554 RTP/AVP 96
    04-08 15:32:56.152: I/ASessionDescription(7680): b=AS:56
    04-08 15:32:56.152: I/ASessionDescription(7680): b=RR:0
    04-08 15:32:56.152: I/ASessionDescription(7680): a=rtpmap:96 H264/90000
    04-08 15:32:56.152: I/ASessionDescription(7680): a=fmtp:96 packetization-mode=1;profile-level-id=64000b;sprop-parameter-sets=Z2QAC6zZQsTv/AC0ALBAAAADAEAAAAyjxQplgA==,aOvssiw=;
    04-08 15:32:56.152: I/ASessionDescription(7680): a=control:rtsp://134.246.63.169:5554/stream.sdp/trackID=1
    04-08 15:32:56.222: I/ARTSPConnection(7680): status: RTSP/1.0 461 Unsupported transport
    04-08 15:32:56.222: I/MyHandler(7680): SETUP(1) completed with result 0 (Success)
    04-08 15:32:56.222: I/APacketSource(7680): dimensions 176x144
    04-08 15:32:56.242: I/ARTSPConnection(7680): status: RTSP/1.0 461 Unsupported transport
    04-08 15:32:56.252: I/MyHandler(7680): SETUP(2) completed with result 0 (Success)
    04-08 15:32:56.272: E/MediaPlayer(13688): error (1, -2147483648)
    04-08 15:32:56.272: E/MediaPlayer(13688): Error (1,-2147483648)
    04-08 15:32:56.272: D/VideoView(13688): Error: 1,-2147483648
    
    • RTSP: LI> ul>

      J'ai utilisé les options de codage recommandées par Google sur Cette page , par exemple : p>

      • codec vidéo: H264 LI>
      • CODEC AUDIO: AAC LI>
      • Débit vidéo: 56 LI>
      • BitTrate audio: 24 Li>
      • Canaux audio: 1 Li>
      • Taille: 176x144 P> XXX PRE> LI> ul>

        Je suis capable de jouer le flux dans VLC Desktop, mais pas à Android (même dans la version Android VLC ou le lecteur vidéo Google Google: /). Si je ne spécifie pas de muxéreur, je peux aussi le jouer rapidement (si je spécifie le Muxer, TS ou PS, je n'ai pas de vidéo. Si j'essaie un autre muxéreur, VLC me dit que je n'ai que je n'ai qu'à utiliser TS ou ps dans rtp) p>

        Si j'essaie avec le lecteur vidéo Google, je reçois ces messages dans le locat: p> xxx pré>

        Je suppose que le problème est pointu avec le "Statut: RTSP / 1.0 461 Transport non pris en charge", mais je ne vois pas ce que je peux changer: j'ouvre déjà les ports que j'utilise et je reçois la vidéo sur un autre ordinateur. P>

        sur Le téléphone Android, je peux jouer des flux RTSP que j'ai trouvé sur le Web, par exemple celui-ci: RTSP: //184.72.239.149/vod/mp4: bigbuckbunny_115k.mov. Donc, cela devrait être possible. P>

        Si quelqu'un peut vous aider ...! P> p>


2 commentaires

Votre problème est-il résolu ??


Je souhaite également développer une application qui montre la vieillissement d'une caméra IP. J'ai une URL RSTP authentifiée selon laquelle VideoView d'Android ne supporte pas. Je veux aussi enregistrer RSTP ... Pouvez-vous me guider comment faire de la fonctionnalité?


4 Réponses :


7
votes

Enfin c'était un problème de réseau, je connais mes appareils via un partage WiFi MacBook, et il semble qu'il a bloqué le flux RTSP. Maintenant, j'utilise un routeur et cela fonctionne dans le RTSP (je ne suis toujours pas en mesure de recevoir un flux http dans l'Android VideoView). Néanmoins, j'ai toujours un problème de délai d'attente: le flux RTSP s'arrête après 60 secondes, car la vidéoView n'envoie pas de conserver des messages vivants. Je vais essayer de le faire moi-même ...


1 commentaires

Donc, l'erreur MSG: Statut: RTTSP / 1.0 461 Le transport non pris en charge signifie vraiment son problème de réseau?



0
votes

J'ai testé mon serveur RTSP avec la commande OpenRTSP.

Ce sont les ports UDP ont été bloqués. p>

Si vous accédez à RTSP sans --t: p> xxx pré>

J'ai un journal me dit: p>

// omit lots of lines..
Opened URL "rtsp://61.218.52.250:554/live/ch00_0", returning a SDP description:
v=0
o=- 1 1 IN IP4 127.0.0.1
s=Ubiquiti Live
i=UBNT Streaming Media
c=IN IP4 0.0.0.0
t=0 0
m=video 0 RTP/AVP 99
b=AS:50000
a=framerate:25
a=x-dimensions:1280,720
a=x-vendor-id:ubnt,a521
a=x-rtp-ts:4617405454576779984
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42A01E;packetization-mode=1;sprop-parameter-sets=Z0IAKOkAoAt1xIAG3dAAzf5gDYgQlA==,aM4xUg==
a=control:trackID=0

Sending request: SETUP rtsp://61.218.52.250:554/live/ch00_0/trackID=0 RTSP/1.0
CSeq: 4
User-Agent: openRTSP (LIVE555 Streaming Media v2013.12.16)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1


Received 107 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Session: E090B5503236A1BFB7CE


Setup "video/H264" subsession (client ports 54884-54885)
Sending request: PLAY rtsp://61.218.52.250:554/live/ch00_0/ RTSP/1.0
CSeq: 5
User-Agent: openRTSP (LIVE555 Streaming Media v2013.12.16)
Session: E090B5503236A1BFB7CE
Range: npt=0.000-


Received 159 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 5
Session: E090B5503236A1BFB7CE
Range: npt=now-
RTP-Info: url=rtsp://61.218.52.250:554/live/ch00_0//trackID=0;seq=41402;rtptime=0


Started playing session
Data is being streamed (signal with "kill -HUP 96432" or "kill -USR1 96432" to terminate)...
Received 47 new bytes of response data.
Received 1424 new bytes of response data.
Received 1424 new bytes of response data.
Received 1424 new bytes of response data.
Received 1424 new bytes of response data.
Received 1448 new bytes of response data.
Received 1448 new bytes of response data.


2 commentaires

L'as-tu compris?


Désolé, je n'ai pas touché ce projet depuis des années. La dernière fois que j'ai rappelé que l'appel serait arrêté après une courte période, comme @ Tim-Autin mentionné. Je vous souhaite bonne chance.



0
votes

Veuillez essayer le VLC:

vlc quelque_file.mp4 -i http --Sout "#Transcode {souverlay, ab = 128, samplate = 44100, canaux = 2, acodec = mp4a, vcodec = h264, largeur = 480 , hauteur = 270, vfilter = "canvas {largeur = 480, hauteur = 270, aspect = 16: 9}", fps = 25, vb = 800, vb = x264 {niveau = 12, no-cabac, submation = 20, threads = 4, bframes = 0, min-keyint = 1, keyint = 50}}: Rassembler: RTP {MP4A-LATM, SDP = RTSP: //0.0.0.0: 5554 / PTR.SDP} " < p> et le code Android: xxx


0 commentaires