Freebox Player (Revolution / V6)

  • État À investiguer
  • Type de tâche Anomalie
  • Catégorie Lecteur multimédia → Client UPnP AV
  • Assignée à Benoît Rouits (brouits)
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Normale
  • Basée sur la version 1.3.18
  • Due pour la version Non décidé
  • Date d'échéance Non décidé
Concerne le projet: Freebox Player (Revolution / V6)
Ouverte par _FrnchFrgg_ (frnchfrgg) - 08/02/2014
Dernière édition par Maxime Bizon (mbizon) - 24/04/2014

FS#14260 - Le client RTSP ne respecte pas la bonne directive "a=control:" du DESCRIBE

Lorsque j’appelle SetAVTransportURI sur l’interface AVTransport du MediaRenderer DLNA du Player, avec CurrentURI valant rtsp://192.168.0.1:8081/stream.ts j’obtiens l’échange suivant:

Envoyé par le Player à 192.168.0.1:8081:

DESCRIBE rtsp://192.168.0.1/stream.ts RTSP/1.0
CSeq: 1
Accept: application/sdp
User-Agent: libfbxrtsp/1.2

Réponse:

RTSP/1.0 200 OK
Server: VLC/2.1.2
Date: Sat, 08 Feb 2014 23:33:24 GMT
Content-Type: application/sdp
Content-Base: rtsp://192.168.0.1:8081/stream.ts
Content-Length: 330
Cache-Control: no-cache
Cseq: 1

v=0
o=- 15465709961248091033 15465709961248091033 IN IP4 atlantis
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 2.1.2
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://192.168.0.1:8081/stream.ts
m=video 0 RTP/AVP 33
b=RR:0
a=rtpmap:33 MP2T/90000
a=control:rtsp://192.168.0.1:8081/stream.ts/trackID=0

Envoyé par le Player à 192.168.0.1:8081:

SETUP rtsp://192.168.0.1/stream.ts RTSP/1.0
CSeq: 2
Accept: application/sdp
User-Agent: libfbxrtsp/1.2
Transport: FBXRTP/AVP;unicast;mode=play;ssrc=561072371;client_port=3001-3002
X-Freebox-Capabilities: hd,sd,ld,16_9,ac3
X-Freebox-Model: fbxhd

Et c’est là que le bât blesse, la réponse étant:

RTSP/1.0 459 Aggregate operation not allowed
Server: VLC/2.1.2
Date: Sat, 08 Feb 2014 23:33:24 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 2

En effet, l’opération SETUP ne doit pas être effectuée sur l’url de présentation mais sur l’url de contrôle dédiée du flux, et ce pour chaque flux s’il y en a plusieurs. Si le client est VLC, l’opération SETUP s’effectue bien ainsi:

SETUP rtsp://192.168.0.1:8080/stream.ts/trackID=0 RTSP/1.0

Il semble que ou bien libfbxrtsp ignore la directive “a=control:...”, ou bien choisit la première au lieu de prendre en compte celle qui suit la directive “m=video 0...” marquant le début des metadata du premier flux.

Voir http://stackoverflow.com/a/9254673 pour les détails.

Of course, tenter de diriger la box vers rtsp://192.168.0.1:8080/stream.ts/trackID=0 dès le départ ne marche pas, puisque le DESCRIBE est refusé sur les flux eux-mêmes. À remarquer que le serveur RTSP du multiposte utilise la même url pour le flux et pour la présentation, donc le problème ne se présente pas (même si orienter le Player vers une url multiposte ne marche quand même pas, au moins la connexion se fait et le Player affiche le temps qui passe comme s’il recevait qqchose; je pense juste qu’il n’arrive pas à décoder la vidéo).

Cette tache ne dépend pas d'autre tache

Chargement...