Protocole rtsp:// non supporté ???

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Protocole rtsp:// non supporté ???

Message par cage »

Bonjour a tous,

Étant abonné Freebox, j'ai accès au multiposte TV via l’URL "https://mafreebox.freebox.fr/freeboxtv/playlist.m3u"

Certaines chaines sont accessibles a tous alors que d'autres uniquement sur abonnement.

Je souhaite tester avant d'ouvrir une chaine si elle est bien disponible (sans abonnement)

Lorsque je teste un lien vidéo, par exemple France2 "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201"

j'obtiens le message 'Protocol "rtsp" not supported or disabled in libcurl'

Avez vous une idée d'où peut se situer le problème.

Voici le code que j'utilise:

Code : Tout sélectionner

EnableExplicit

Global HttpRequest
Global HttpStatusCode$, HttpErrorMessage$, URL$, ERREUR$, Message$

Procedure.a messageBox(request = #False)
  If Message$ = #Null$
    ProcedureReturn #False
  EndIf
  Protected msg$ = Message$
  Protected flag = #PB_MessageRequester_Ok ;|#MB_ICONINFORMATION
  If request
    flag = #PB_MessageRequester_YesNo ; |#MB_ICONQUESTION
  EndIf
  Message$ = #Null$
  ProcedureReturn MessageRequester("Message", msg$, flag | #MB_TOPMOST | #MB_DEFBUTTON2)
  ; Questions:
  ; #PB_MessageRequester_Ok
  ; #PB_MessageRequester_YesNo
  ; #PB_MessageRequester_YesNoCancel
  ; Réponses:
  ; 0 = Message$ #Empty$
  ; 1 = Ok
  ; 2 = Cancel
  ; 6 = Yes
  ; 7 = No
EndProcedure

NewMap Header$()
Header$("Content-Type") = "plaintext"
Header$("User-Agent")   = "Firefox 54.0"

HTTPTimeout(5000)

URL$="rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201"

HttpRequest=HTTPRequest(#PB_HTTP_Post,URL$,"",0,Header$())

HTTPTimeout(#PB_Default)

ResetMap(Header$())

Debug "HttpRequest : " + HttpRequest
 
HttpStatusCode$  =HTTPInfo(HttpRequest,#PB_HTTP_StatusCode)
HttpErrorMessage$=HTTPInfo(HTTPRequest,#PB_HTTP_ErrorMessage)
Debug "StatusCode: "   + HttpStatusCode$
Debug "ErrorMessage: " + HttpErrorMessage$
Debug "Média : "       + URL$

If HttpRequest
  FinishHTTP(HttpRequest)
  If FindString(HttpErrorMessage$,"Connection timed out",0,#PB_String_NoCase)
    Message$="Le serveur vidéo met trop de temps à répondre"
    messageBox(#False)
    End
  EndIf
  If FindString(HttpErrorMessage$,"Failed to connect",0,#PB_String_NoCase)
    Message$="Connexion refusée par le serveur"
    messageBox(#False)
    End
  EndIf

  ERREUR$ = "HTTP ERREUR "+HttpStatusCode$+" : "
  Select HttpStatusCode$
    Case "0"
    Case "401" : Message$ = ERREUR$+"Vidéo non autorisée"
    Case "403" : Message$ = ERREUR$+"L'accès à la vidéo a été refusé"
    Case "404" : Message$ = ERREUR$+"Vidéo non trouvée"
    Case "406" : Message$ = ERREUR$+"Vidéo non disponible"
    Case "502" : Message$ = ERREUR$+"Mauvaise passerelle ou proxy"
    Default    : Message$ = ERREUR$+"Erreur non définie"
  EndSelect
  messageBox(#False)
  If HttpStatusCode$ <> "0"
    messageBox(#False)
    End
  EndIf
Else
  Debug "VIDEO INDISPONIBLE"
  Message$="Erreur inconnue"
  messageBox(#False)
  End
EndIf
Code testé avec les versions PB de la 5.73 LTS a la 6.12 LTS
Merci d'avance pour votre retour,
cage
Dernière modification par cage le lun. 23/sept./2024 23:28, modifié 1 fois.
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Protocole rstp:// non supporté ???

Message par Marc56 »

Bonjour Cage,

La version lib PB de curl ne contient pas ce protocol, ni la version d'origine de windows 10.
La version complète (à télécharger sur le site officiel (curl.se)) le contient, mais je ne sais pas comment l'utiliser dans ton code.

:wink:
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Protocole rtsp:// non supporté ???

Message par cage »

Bonsoir Marc56,

Merci pour la rapidité de ta réponse.

J'ai pris le temps de regarder le site officiel de curl et de faire quelques essais mais sans succès.

Utilisant déjà ffmpeg.exe dans mes applis PB, j'ai regardé du coté de ffprobe.exe

Au final, je m'en sort assez bien avec ffprobe pour tester les liens rtsp://

Voici le code qui permet de tester l'accessibilité des liens vidéos avec et sans abonnement.

Code : Tout sélectionner

EnableExplicit

; Télécharger ffmpeg.exe, ffprobe.exe, ffplay.exe
; https://www.ffmpeg.org

Define ffprobe$, URL$

ffprobe$="ffprobe.exe" ; ffprobe.exe doit être dans la variable %PATH% et doit être autorisé dans le FireWall

;commenter une des 2 URL suivantes
URL$="rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201" ; FRANCE 2 (auto) sans abonnement
;URL$="rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=253" ; MANGAS (auto)   avec abonnement

If Left(URL$,7) = "rtsp://"
  ;ffprobe.exe -v fatal URL$
  ;return 0 vidéo disponible
  ;return 1 vidéo indisponible
  Define flags=#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide
  Define ffprobe = RunProgram(ffprobe$,"-v fatal "+URL$,"",flags)
  Define Output$ = ""
  If ffprobe
    While ProgramRunning(ffprobe)
      If AvailableProgramOutput(ffprobe)
        Output$ + ReadProgramString(ffprobe) + Chr(13)
        Debug Output$
      EndIf
      ;Delay(50)
    Wend
    Define exitcode=ProgramExitCode(ffprobe)
    CloseProgram(ffprobe)
    Output$ + Chr(13) + Chr(13)
    Output$ + "Exitcode: " + Str(exitcode)
    Debug Output$
    If exitcode <> 0
      MessageRequester("Test RTSP","Vidéo non disponible",#PB_MessageRequester_Ok|#PB_MessageRequester_Error)
    Else
      MessageRequester("Test RTSP","Vidéo disponible",#PB_MessageRequester_Ok|#PB_MessageRequester_Info)
    EndIf
  EndIf
EndIf
Si l'un d'entre vous a une solution différente, je suis preneur.
cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Répondre