[résolu]lire Un Flux Rtsp Sur Xbmc


Messages recommandés

Edit:

Nous avons réussi avec AlexSolex a adapté le proxy rtsp2http, développer un script pc pour la configuration et adapter le script F2XTV!

Les programmes sont là: Lire un Flux RTSP sur XBMC, les scripts!

++

--------------------------------

Bonjour à tous,

voilà, j'ai trouvé sur le forum que l'on pouvait lire les flux rtsp de la freebox sur xbmc via un script développé notemment par alexsolex. D'après ce que j'ai compris ce flux rtsp est lisible via vlc sur le pc, et j'en déduis que son fonctionnement est similaire à une video à la demande via rtsp créé par VLC. J'espère ne pas dire de bétise et donc si quelqu'un en sait plus, ça m'intéresse.

J'ai donc lancé vlc en mode serveur de video à la demande juste pour une video. Cela fonctionne bien sur PC avec un client VLC, mais je n'arrive pas à lancer cette video sur xbmc. Pour lancer le flux avec vlc il suffit de lui demander d'ouvrir un flux réseau avec l'adresse suivante : rtsp://IP_du_serveur:port/nom_de_la_video. J'ai donc mis ce lien dans un fichier texte renommé avec l'extension .strm puis je l'ai mis la xbox. Je l'ai lancé et que dalle.

Pour les autres tentatives, j'ai réussi à créer un broadcast en http lisible sur xbmc. Le problème, c'est que je dois lancer la diffusion sur le pc, courir jusqu'à la console, lancer le fichier strm correspondant, mais je loupe à chaque fois le début de la video :( C'est pourquoi, je voudrais savoir comment lancer un flux rtsp sur xbmc. Et donc, avoir le choix de ma video, et la lancer quand je le désir.

Donc, est-ce que quelqu'un à une solution? est-ce que le script rtsp2http est adaptable à mes besoins?

merci d'avance

++

PS: pour plus d'infos sur la video à la demande avec VLC: Chapitre 5: diffusions multiples et video à la demande

Modifié par nioc bertheloneum
Lien vers le commentaire
Partager sur d'autres sites

Bonjour à tous,

voilà, j'ai trouvé sur le forum que l'on pouvait lire les flux rtsp de la freebox sur xbmc via un script développé notemment par alexsolex. D'après ce que j'ai compris ce flux rtsp est lisible via vlc sur le pc, et j'en déduis que son fonctionnement est similaire à une video à la demande via rtsp créé par VLC. J'espère ne pas dire de bétise et donc si quelqu'un en sait plus, ça m'intéresse.

Presque bon !

Mon script, F2XTV, est un proxy au sens qu'il écoute les requêtes qu'on lui soumet, émet vers la freebox le dialogue qui va bien, et retourne le flux TV sur un support http.

Donc, on résumé. XBMC ne lit pas actuellement les format RTSP de stream (ne pas confondre avec le rtsp de realmedia) Par contre XBMC lit très bien les supports stream en HTTP.

Mon script donc, met en place un serveur http, qui écoute les requêtes (je veux regarder la chaine numéro XYZ = http://ipdelaxbox:8080/XYZ) Puis il parle à la Freebox dans un langage qui lui convient (RTSP://mafreebox.freebox.fr/freeboxtv/XYZ) Il récupère le flux de données vidéos et les renvois à celui qui les a demandé sur un protocole HTTP que le player de XBMC peut alors lire.

Celui qui veut lire la vidéo par ce script, peu être un PC ou une XBOX ou n'importe quoi d'autre, capable de lire du stream en http et connecté au même réseau que la xbox + freebox

J'ai donc lancé vlc en mode serveur de video à la demande juste pour une video. Cela fonctionne bien sur PC avec un client VLC, mais je n'arrive pas à lancer cette video sur xbmc.

Là tu sors du contexte de mon script. VLC ne sert plus à rien avec F2XTV ormis si il veut lire le flux transmis par mon script.

Pour lancer le flux avec vlc il suffit de lui demander d'ouvrir un flux réseau avec l'adresse suivante : rtsp://IP_du_serveur:port/nom_de_la_video. J'ai donc mis ce lien dans un fichier texte renommé avec l'extension .strm puis je l'ai mis la xbox. Je l'ai lancé et que dalle.

Normal ! tu te trompes !

Pour lire le flux de la freebox :

rtsp://mafreebox.freebox.fr/freeboxtv/203

Pour lire le flux de la xbox + F2XTV :

http://ipdelaxbox:8080/203

Pour les autres tentatives, j'ai réussi à créer un broadcast en http lisible sur xbmc. Le problème, c'est que je dois lancer la diffusion sur le pc, courir jusqu'à la console, lancer le fichier strm correspondant, mais je loupe à chaque fois le début de la video :( C'est pourquoi, je voudrais savoir comment lancer un flux rtsp sur xbmc. Et donc, avoir le choix de ma video, et la lancer quand je le désir.

Pour faire plus dans ce style, il te faudrais plutôt utiliser le script de Vinz973 intitulé freeboxTV qui pilote VLC pour lancer la lecture d'une chaine de TV ou d'une video et la stream vers la xbox

Mais si il s'agit d'une simple video, le plus simple reste un partage samba...

Donc, est-ce que quelqu'un à une solution? est-ce que le script rtsp2http est adaptable à mes besoins?

rtsp2http comme je l'ai expliqué transforme les requêtes rtsp en http. Il tourne silencieusement sur la xbox. Le http peut etre lu depuis la xbox elle même ou encore depuis un autre PC du réseau (ou PDA ou etc...)

Juste au cas ou, rtsp2http est un script destiné à regarder la télévision multiposte de la freebox avec un player qui ne connait pas le RTSP (c'est le cas de XBMC)

Lien vers le commentaire
Partager sur d'autres sites

Merci pour ta réponse,

en fait, j'ai du mal m'exprimer car je n'ai absolument pas tester ton script et je n'utilise pas ce flux rtsp pour la freebox (je n'ai d'ailleurs pas la freebox, elle n'est pas encore arrivée au brésil :P ).

En fait, ton script m'a simplement fait penser que ta solution pouvait être adapté à mon problème. En fait, comme tu l'as dit, ce n'est qu'une simple video que je souhaiterais lire via xbmc. Malheureusement, cette video parmi d'autres ne fonctionne pas même si je n'ai pas vraiment compris la raison car c'est un codec classique (xvid - mp3), j'avais fait un sujet il y a quelques temps mais je n'avais pas eu de réponse. Donc, pour lire cette video, j'ai pensé à vlc en serveur de stream. J'ai donc réussi à faire fonctionner en broadcast sans problème, enfin en passant par du http. Le problème du broadcast, c'est qu'il est lancé directement et il faut donc que je me dépèche d'aller à la console et de récupérer le flux pour louper un minimum de ma video. Ce que je souhaite donc faire c'est de la video à la demande via la fonction prévue à cette effet par VLC. Le problème c'est que c'est du RTSP, et comme tu l'as très bien expliqué, le rtsp ne fonctionne pas sur la console.

Vu que c'est aussi le cas pour le flux de la freebox et que tu avais trouvé une solution via le script F2XTV, je pensais à une solution similaire pour mon problème. La différence c'est qu'à la place de la freebox, j'aurais un serveur sur le pc, et qu'à la place de la chaine, j'aurais une vidéo.

Donc RTSP://mafreebox.freebox.fr/freeboxtv/XYZ deviendrait RTSP://ip_du_serveur:port/video

D'après ce que j'ai compris, c'est le script rtsp2http qui gère le passage du rtsp en http. Est-ce que ce script est donc adaptable pour qu'il n'interroge non pas la freebox mais un autre serveur VOD tel que celui que l'on peut mettre en place via VLC?

Donc pour savoir si j'ai bien compris, on a :

- Un ensemble de chaine disponible et en attente d'une requete RTSP via la freebox

- Un utilisateur voulant voir la chaine XYZ via XBMC

l'utilisateur lance donc via un raccourci un appel vers http://ip_de_la_xbox:8080/XYZ (nous avons donc le serveur http dont tu parles). Cet appel est interprété par le serveur et est redirectionné par celui ci vers la freebox en changeant la demande par rtsp://mafreebox.freebox.fr/freeboxtv/XYZ. La freebox reçoit la demande, la traite et envois le flux demandé vers la xbox (en rtsp ?). Le serveur web intercepte le flux et le retransforme en flux http qui peut être lu par mplayer.

Est-ce ça? Donc en changeant simplement l'adresse de la demande, ne peut-on faire la demande au serveur vlc sur le pc?

En attendant ta réponse, je vais jeter un oeil sur le script de Vinz973 dont tu parles dans ton post.

Merci encore de ta réponse.

++

[EDIT]Après un farfouillage rapide des scripts, ce serait le script rtsp2http qui serait à modifier pour altérer l'adresse et les ports du serveur. Il y aurait surement d'autres modifications au niveau des vérifications car n'étant pas programmeurs, je n'ai pas tout compris. En ce qui concerne F2XTV, serais-ce le script qui permet l'enregistrement et permettrait de faire une interface graphique à l'ensemble? Pour mon utilisation, la seule altération du premier script suffirait-elle?

Modifié par nioc bertheloneum
Lien vers le commentaire
Partager sur d'autres sites

Merci pour ta réponse,

en fait, j'ai du mal m'exprimer car je n'ai absolument pas tester ton script et je n'utilise pas ce flux rtsp pour la freebox (je n'ai d'ailleurs pas la freebox, elle n'est pas encore arrivée au brésil :P ).

En fait, ton script m'a simplement fait penser que ta solution pouvait être adapté à mon problème. En fait, comme tu l'as dit, ce n'est qu'une simple video que je souhaiterais lire via xbmc. Malheureusement, cette video parmi d'autres ne fonctionne pas même si je n'ai pas vraiment compris la raison car c'est un codec classique (xvid - mp3), j'avais fait un sujet il y a quelques temps mais je n'avais pas eu de réponse. Donc, pour lire cette video, j'ai pensé à vlc en serveur de stream. J'ai donc réussi à faire fonctionner en broadcast sans problème, enfin en passant par du http. Le problème du broadcast, c'est qu'il est lancé directement et il faut donc que je me dépèche d'aller à la console et de récupérer le flux pour louper un minimum de ma video. Ce que je souhaite donc faire c'est de la video à la demande via la fonction prévue à cette effet par VLC. Le problème c'est que c'est du RTSP, et comme tu l'as très bien expliqué, le rtsp ne fonctionne pas sur la console.

Vu que c'est aussi le cas pour le flux de la freebox et que tu avais trouvé une solution via le script F2XTV, je pensais à une solution similaire pour mon problème. La différence c'est qu'à la place de la freebox, j'aurais un serveur sur le pc, et qu'à la place de la chaine, j'aurais une vidéo.

Donc RTSP://mafreebox.freebox.fr/freeboxtv/XYZ deviendrait RTSP://ip_du_serveur:port/video

D'après ce que j'ai compris, c'est le script rtsp2http qui gère le passage du rtsp en http. Est-ce que ce script est donc adaptable pour qu'il n'interroge non pas la freebox mais un autre serveur VOD tel que celui que l'on peut mettre en place via VLC?

Jusque là tu as tout bon ...

Donc pour savoir si j'ai bien compris, on a :

- Un ensemble de chaine disponible et en attente d'une requete RTSP via la freebox

- Un utilisateur voulant voir la chaine XYZ via XBMC

l'utilisateur lance donc via un raccourci un appel vers http://ip_de_la_xbox:8080/XYZ (nous avons donc le serveur http dont tu parles). Cet appel est interprété par le serveur et est redirectionné par celui ci vers la freebox en changeant la demande par rtsp://mafreebox.freebox.fr/freeboxtv/XYZ. La freebox reçoit la demande, la traite et envois le flux demandé vers la xbox (en rtsp ?). Le serveur web intercepte le flux et le retransforme en flux http qui peut être lu par mplayer.

Là tu te trompes un peu.

A ta question, est-ce possible d'adapter le proxy (rtsp2http.py) afin qu'il pilote VLC, je répond que ce doit être possible, il faut que je teste. (ca peut être d'ailleur une très très bonne idée car si le PC est puissant, plusieurs utilisateurs pourraient regarder plusieurs vidéos, très novateur dans le milieu XBMC)

Par contre dans ce cas, le PC+VLC remplacerait complètement la Freebox (pour rappel la freebox est un modem fourni par le le FAI Free et qui fourni d'autres service dont TV et téléphone)

Donc, actuellement, mon script fait :

SERVEUR video RTSP(freeboxTV) ---- Proxy (XBMC+rtsp2http) ---- lecteur stream http multimedia (player XBMC)

et toi tu voudrais :

SERVEUR video RTSP (PC+VLC) ---- Proxy (XBMC + rtsp2http) ---- lecteur stream http multimedia (player XBMC)

Je vais esssayer, mais avant il faudra que je mette en place le serveur RTSP par VLC...

PAR CONTRE si le codec de ta video n'est pas reconnu actuellement, il faudra que tu te débrouilles pour que VLC réencode à la volée le film, car mon proxy rtsp2http ne transforme pas le codec, il se contente de procéder aux échanges de bons procédés entre le client et le serveur pour ne laisser au client que le flux sur du http

[EDIT]Après un farfouillage rapide des scripts, ce serait le script rtsp2http qui serait à modifier pour altérer l'adresse et les ports du serveur. Il y aurait surement d'autres modifications au niveau des vérifications car n'étant pas programmeurs, je n'ai pas tout compris. En ce qui concerne F2XTV, serais-ce le script qui permet l'enregistrement et permettrait de faire une interface graphique à l'ensemble? Pour mon utilisation, la seule altération du premier script suffirait-elle?

Effectivement, c'est là que je vais chercher

Lien vers le commentaire
Partager sur d'autres sites

Merci bien,

si tu veux un coup de main, je peux t'aider à mettre en place le serveur VOD de VLC, j'ai bien assimilé la technique et c'est très facile!!!

Je pense que tu n'as pas besoin de savoir où le télécharger ni comment l'installer.

Pour les tests, la ligne suivante permet de lancer vlc avec son interface graphique et avec Telnet. Ca sera un peu plus facile pour fermer l'application quand ça ne fonctionne pas. Plus tard, on pourra l'installer comme service (je crois que c'est faisable).

vlc --vvv --ttl 2 --color --extraintf telnet --rtsp-host 0.0.0.0:5554

le ttl permet de spécifier le nombre maximum de routeur que tu désires passer (la valeur par défaut c'est 1)

extraintf c'est pour avoir une interface supplémentaire en telnet

pour le rtsp-host, tu peux indiquer l'ip de la console mais si tu ne veux pas spécifier d'ip tu mets les 4 0 et enfin 5554 c'est le port que tu vas utiliser.

Ensuite, on va créer un petit fichier de config qui gérera la video à partager. pour faire simple on va simplement mettre une petite video dans le même dossier que vlc, ça simplifiera les accès. Et on va créer un fichier de config. Dedans tu copies les deux lignes qui suivent:

new XYZ vod enabledsetup XYZ input "test.avi"

XYZ sera le nom de la video à appeler comme XYZ pour la chaine sur la freebox, et test.avi est bien entendu le nom de la video. Si tu veux utiliser une video qui ne se trouve pas dans le même répertoire que vlc, il faut lui spécifier son adresse absolue avec des doubles anti-slash (\\) au lieu des simples (\)

Il ne te reste plus qu'à enregistrer ton fichier. par exemple test (avec ou sans extension, ce n'est pas important. Habituellement l'extension vlm est utilisée)

Maintenant, on va passer en telnet. pour cela, tu ouvres une fenêtre de commande dos, et tu tapes:

telnet 127.0.0.1 4212

127.0.0.1 pour le localhost et 4212 pour le port par défaut. On peut le modifier lors de l'appel de vlc et il peut aussi être modifier dans la configuration de vlc.

Pour le mot de passe, c'est admin (il peut aussi être modifié lors de l'appel ou en configurant vlc)

enfin, tu tapes la ligne suivante:

load test

là il n'y a pas d'extension mais tu aurais pu mettre load test.vlm par exemple.

Pour vérifier que le fichier est chargé correctement, tu peux tapper la ligne suivante:

show XYZ

Tu devrais voir apparaître les informations de ta video.

Pour tester si tout fonctionne bien, lances une nouvelles interface de vlc (classique, c'est à dire avec le raccourci windows, et tu ouvres le flux réseaux suivant:

rtsp://127.0.0.1:5554/XYZ

(Tu peux aussi lancer vlc en ligne de commande directement avec le flux:

vlc rtsp://127.0.0.1:5554/XYZ

le port 5554 est le port que tu as spécifié quand on a lancé vlc la première fois. Si tu ne vois pas ta video, vérifies si tu n'as pas changer l'adresse ip (j'avais indiqué 0.0.0.0). Pour que ça fonctionne, il faut au minimum spécifié l'adresse ip de ton pc ou 127.0.0.1

Pendant la lecture de ta video, tu peux retourner sur telnet, et relancer un

show XYZ

, tu verras que quelque chose à changer (c'est ton instance de vlc)

Voilà, pour quitter telnet (ça ne fermera pas vlc et donc, ça laissera l'offre de video), il suffit de tapper exit.

Voilà, j'espère que ça te fera gagner du temps.

Pour le codec de la vidéo, pas de problème non plus puisque je l'ai testé en broadcast http et elle passe sans problème, il me suffit de l'envoyer en asf!

Le seul problème que j'ai avec vlc (aussi bien en lecteur qu'en serveur) c'est que je n'arrive pas à mettre en place les sous-titres! Mais c'est facilement solutionné par xbmc en allant chercher le sous-titre via l'osd! Je n'ai par contre pas vérifié s'il me chargeait directement le sous-titre si je donnais le même nom au strm (dans le cas du broadcast) et au sous-titre. A essayer donc.

Pour l'utilité de vlc en serveur VOD, c'est simplement pouvoir visionner ses vidéos HD sur xbmc, je pense que ça devrais fonctionner, puisque le traitement se ferait par le pc!

Si tu as besoin d'un coup de main, fais moi signe!

++

Lien vers le commentaire
Partager sur d'autres sites

[signe]

Le lancement de VLC ne fonctionne pas...

vlc --vvv --ttl 2 --color --extraintf telnet --rtsp-host 0.0.0.0:5554

ca me dit que les paramètres ne sont pas bons

Edit :

Je l'ai lancé en supprimant un des 2 tirets avant le vvv, j'ai choppé l'exemple du tuto VLC que tu cites sur ton second post:

vlc --ttl 12 -vvv --color -I telnet --telnet-password videolan --rtsp-host 0.0.0.0:5554

Maintenant c'est OK, je fait tourner le serveur de RTSP

Donc, si je résume, l'intérêt est surtout de pouvoir regarder des vidéos HD stockées sur PC depuis la xbox ? donc de "downgrader" (que les puristes me pardonnent ce mot) la qualité de ta vidéo ?

Modifié par alexsolex
Lien vers le commentaire
Partager sur d'autres sites

Salut,

désolé pour l'erreur, en effet c'est un - de trop dans vvv, je me suis un peu enflammé!! ;) Par contre pour l'option '-I telnet', tu indiques à vlc de se lancer sans l'interface classique (-I correspondant à l'interface principale, --extraintf pour une interface secondaire).

Quand à l'intérêt principal, c'est de pouvoir visionner sur la xbox des vidéos qui actuellement ne passe pas. Pour ma part ce n'est même pas de la vidéo HD. Mais il est vrai que ça pourra intéresser les possesseurs de vidéos HD qui veulent absolument passer par XBMC pour visionner leurs vidéos. Enfin, le dernier intérêt c'est que l'on pourra enfin remplir la partie How-to du manuel de xbmc concernant VLC: "Lire des vidéos diffusées sur le réseau par videolan (vlc)". Je l'ai attendu longtemps cette aide qui n'est même pas présente sur le manuel en anglais!

Voilà,

++

Lien vers le commentaire
Partager sur d'autres sites

Salut

Un truc qui m'inquiète un peu quand à la faisabilité, c'est le port du flux rtsp...

En effet, mon script ne prévoyait pas les ports pour chopper le serveur RTSP...

Mais bon, je teste et je te dit

Lien vers le commentaire
Partager sur d'autres sites

Je me suis un peu amusé avec la lib python telnet et j'ai pu programmer la VOD telle que tu l'as faite dans ton fichier "test"

new XYZ vod enabledsetup XYZ input "test.avi"

Ca fonctionne nickel. J'ai commencé la modif du proxy, je verrais pour des tests de ca plus tard

Lien vers le commentaire
Partager sur d'autres sites

Pour le port, il faudrait voir comment ça fonctionnait sur la freebox et utiliser le même port, puisqu'il est définissable au lancement de vlc.

Pour le script python, ... oui c'est sympa, mais je ne sais pas si ça sera utile puisque le but est simplement de pouvoir accéder au flux déjà disponible. Maintenant si tu veux t'amuser à faire un soft de programmation ou tu rentrerais le fichier à partager, tu cocherais les options d'encodage que tu voudrais et ça ajouterait automatiquement le partage dans VLC, alors oui, ça peut être intéressant, mais n'es-tu pas un peu violent? :D

Ce que je veux dire par là, c'est qu'en théorie, tu n'as aucunement besoin de créer le partage VOD (dans l'exemple, XYZ) pour pouvoir y accéder. Pour VLC tu peux simplement créer un fichier de configuration une bonne fois pour toute avec toutes les vidéos que tu veux partager et l'ajouter dans la ligne de commande de vlc. Tu n'as donc pas besoin d'aller dans VLC par telnet pour créer le partage. Bon, je n'ai plus l'option de commande en tête mais c'est faisable. De plus en le mettant en service, tu le lances à chaque démarrage du pc, donc tranquille. Par contre si tu veux ajouter un fichier, tu dois en effet passer par telnet pour charger le nouveau fichier de config (A moins que tu ne redémarres vlc évidemment avec la bonne ligne de commande).

Allez courage,

++

PS: pendant que j'y pense, les librairies python que tu utilises sont les mêmes sur xbmc et pc? Si oui, avec tes tests et tes connaissances, il doit être possibles de créer une interface graphique fonctionnant aussi sur pc, grâce à wxPython, non?

Lien vers le commentaire
Partager sur d'autres sites

Pour le port, il faudrait voir comment ça fonctionnait sur la freebox et utiliser le même port, puisqu'il est définissable au lancement de vlc.

Pour le script python, ... oui c'est sympa, mais je ne sais pas si ça sera utile puisque le but est simplement de pouvoir accéder au flux déjà disponible. Maintenant si tu veux t'amuser à faire un soft de programmation ou tu rentrerais le fichier à partager, tu cocherais les options d'encodage que tu voudrais et ça ajouterait automatiquement le partage dans VLC, alors oui, ça peut être intéressant, mais n'es-tu pas un peu violent? :D

Oh oui ! beaucoup trop... Surtout avec le temps libre que je me donne...

Ce que je veux dire par là, c'est qu'en théorie, tu n'as aucunement besoin de créer le partage VOD (dans l'exemple, XYZ) pour pouvoir y accéder. Pour VLC tu peux simplement créer un fichier de configuration une bonne fois pour toute avec toutes les vidéos que tu veux partager et l'ajouter dans la ligne de commande de vlc. Tu n'as donc pas besoin d'aller dans VLC par telnet pour créer le partage. Bon, je n'ai plus l'option de commande en tête mais c'est faisable. De plus en le mettant en service, tu le lances à chaque démarrage du pc, donc tranquille. Par contre si tu veux ajouter un fichier, tu dois en effet passer par telnet pour charger le nouveau fichier de config (A moins que tu ne redémarres vlc évidemment avec la bonne ligne de commande).

Oui, bon, ben disons que ce script me permettras de mettre en service la VOD de test :)

PS: pendant que j'y pense, les librairies python que tu utilises sont les mêmes sur xbmc et pc? Si oui, avec tes tests et tes connaissances, il doit être possibles de créer une interface graphique fonctionnant aussi sur pc, grâce à wxPython, non?

en général, oui, ce sont les mêmes, sauf librairies propres à un OS particulier. Comme tu le dit, bon nombre de scripts pourraient sans doute être portés pour PC. J'ai jeté un oeil sur une lib très intéressante portant le .NET framework à python, mais c'est un peu trop compliqué pour moi, n'ayant pas le temps, et ne connaissant pas .NET du tout... Mais ca pourrait permettre pas mal de choses effectivement.

Lien vers le commentaire
Partager sur d'autres sites

Donc en laissera le soin à d'autres de faire les trucs plus violent et on s'attardera sur la mise à jour du rtsp2http. Et puis, le jour ou tout fonctionnera bien et si j'ai un peu de temps, j'essaierai de faire une interface graphique pour pc qui permettra de créer et mettre à jour le fichier de config en fonction des vidéos et des paramètres que l'on voudra associer à la vidéo. Mais bon, ça sera quand j'aurais le temps et surement en C (avec wxWidgets ou gtk) car je n'y connais rien en Python, donc ...

A suivre!

++

Lien vers le commentaire
Partager sur d'autres sites

je suis en tests... mais je lutte...

Je jongle entre le VLC RTSP sur le PC1, le proxy python sur la xbox, et le VLC sur le PC2 pour lire le résultat ! lol

EDIT :

Le simple fait de remplacer les IP de la freebox par les IP du PC serveur VLC ne fonctionne pas...

Ca serait bien que je réussisse à en faire un proxy RTSP quelque soit le serveur... C'est vrai que pas mal de monde (pas que la France) serait intéressé par ce truc...

Je réessayerais plus tard

PS: un modo pour déplacer ce topic dans la section scripts python ? Merci

Modifié par alexsolex
Lien vers le commentaire
Partager sur d'autres sites

J'ai regardé un peu le script, j'ai vu qu'il y a plusieurs ports de spécifié à quoi cela servent-ils? Y-a-t'il un port de demande et un port de retour?

Pour VLC, tu n'es pas obligé d'avoir deux pcs de lancer tu peux lancer deux instances de vlc sur le pc qui sert de serveur, ça peut peut-être te simplifier les choses.

++

Lien vers le commentaire
Partager sur d'autres sites

Salut,

je viens de me lancer dans l'étude du script de façon un peu plus approfondi, et j'ai pensé que les lignes qui nous manquaient pouvaient être simplement donné par vlc!!! En effet, quand tu lances VLC tu as sous l'onglet vue, l'option message. Tu le lances et là, tu as toutes les informations dont tu as besoin pour les flux!!!

Bon, l'un des problèmes, c'est que le flux est envoyer sur deux ports (enfin dans mon test), un port video et un port audio, ce qui n'était pas le cas dans le programme de la freebox! Un autre problème, c'est que ces ports changent à chaque interrogation! Je ne sais pas encore s'il y a moyen de gérer ces ports, si on peut les spécifier ou non, ou s'il y a moyen de les récupérer dans le programme et surtout de les gérer! Ce qui m'inquiète le plus, c'est de l'envoi sur deux ports je me demande s'il y a moyen de changer ça!

Sinon, j'ai trouvé une autre solution qui grâce à tes compétences avec python et telnet vont nous permettre d'arranger grandement les choses! Désolé de ne pas y avoir pensé avant, j'étais bloqué sur l'idée VOD avec rtsp. On va simplement garder le fait que le broadcast http fonctionne sur xbmc. Il nous faut donc un moyen de le déclencher via xbmc. Vu que tu as réussi à lancer une commande telnet via python, pourrais-tu réaliser un script qui simplement en appuyant sur un bouton lancerait une commande telnet prédéterminée?

L'idée est la suivante:

Au lieu de créer un fichier de configuration avec des vidéos à la demande, on va lancer des vidéos broadcast. Simplement, elles seront stoppées à l'initialisation. La commande telnet servira à les lancer, les mettre en pause, ...

Comment le faire?

il suffit de changer le fichier de configuration par le suivant:

new XYZ broadcast enabledsetup XYZ input "test.avi"setup XYZ output #standard{access=http,url=:port/XYZ}

Ici je n'ai pas indiqué d'adresse IP, pour permettre à n'importe quel pc de se connecter, mais on aurait pu préciser l'ip de la console.

Pour lancer la vidéo, il suffira de lancer la commande telnet suivante sur le serveur:

control XYZ play

Mplayer devant se lancer sur

http://ip_du_serveur:port/XYZ

Inconvénient: Oui, il y en a un! La vidéo sera donc lancer sur le serveur, ainsi s'il y a une seconde demande pour la même vidéo, il se peut qu'il y ait une erreur ou tout simplement l'affichage de la vidéo déjà lancée. Lors de mon test (alors que la vidéo était lancée, je relance une commande "control XYX play"), le flux était coupé et relancé. Ce qui a provoqué l'arrêt de la vidéo sur le client. Je ne sais pas comment va réagir mplayer sur xbmc. Par contre aucun problème à lancer deux vidéos sur le même port. Il suffit de changer le nom d'accès terminal (XYZ01 et XYZ02 par exemple)

Pour avoir deux fois ou plus la même vidéo de lancée, il serait peut être utile cette fois à lancer via les commandes telnet des configurations tel que:

new IPcondense broadcast enabledsetup IPcondense input "test.avi"setup IPcondense output #standard{access=http,url=IP:port/IPcondense}control IPcondense play

Avec IPcondense, l'IP de la machine sans les points partageant les différents éléments (aucun problème de conflit si le nom du flux est constitué que de chiffres. On pourrait ainsi avoir la même vidéo lancée plusieurs fois mais sur des pcs différents. Le script python s'occupant de récupérer l'adresse IP de la machine.

Voilà, j'espère que ces informations pourront t'aider.

++

[edit] Si ça fonctionne, il ne restera plus qu'à ajouter dans les options de xbmc, la configuration du serveur vlc (adresse ip et port, actif ou non), et d'ajouter "via VLC" dans le choix du lecteur (dans le cas d'une vidéo partagée bien sur)!! ... Je sais c'est beau de rêver .. et oui, 'est moi qui t'ait dit que tu étais violent!!! ... Bon, je vais me coucher!!

Modifié par nioc bertheloneum
Lien vers le commentaire
Partager sur d'autres sites

je viens de me lancer dans l'étude du script de façon un peu plus approfondi, et j'ai pensé que les lignes qui nous manquaient pouvaient être simplement donné par vlc!!! En effet, quand tu lances VLC tu as sous l'onglet vue, l'option message. Tu le lances et là, tu as toutes les informations dont tu as besoin pour les flux!!!

Oui je l'utilise mais il en dit moins que mon script ;)

Bon, l'un des problèmes, c'est que le flux est envoyer sur deux ports (enfin dans mon test), un port video et un port audio,

Ce qui expliquerait que dans mes tests je n'avais que le son et pas l'image...

Un autre problème, c'est que ces ports changent à chaque interrogation!

Ceci m'étonne... Normalement, une fois le port établi, il reste pour tout le flux. Ah mais c peut être ce que tu as voulu dire ?

Alors sache que ce problème existait déjà avec notre freebox, mais c'est VLC qui utilise n'importe quel port. Des versions de VLC ont été recompilés pour pouvoir configurer les ports à utiliser (car derrière il peut y avoir un routeur avec des ports à router)

Je ne sais pas encore s'il y a moyen de gérer ces ports, si on peut les spécifier ou non, ou s'il y a moyen de les récupérer dans le programme et surtout de les gérer! Ce qui m'inquiète le plus, c'est de l'envoi sur deux ports je me demande s'il y a moyen de changer ça!

En fait il faut comprendre comment le RTSP fonctionne.

Le client demande un flux en RTSP. Ensuite toute une série de dialogue se font sur le format du flux, éventuellement une descirption etc etc... Notemment des ports. Sur un port on a la diffusion, et sur un autre on a une espèce de ligne de vie. C'est là qu'on dit au serveur que le client 'écoute' toujours et que donc il doit toujours lui envoyer un flux. (si jamais le client plante, le serveur épargne ses ressources en stoppant le flux devenu inutile)

Voilà grosso modo le fonctionnement. Donc théoriquement, rtsp2http utilise les ports :

8080 : requête en http

31330 : flux RTSP du serveur vers le script

31331 : je sais plus... lol

un port arbitraire : un port fixé par le serveur sur lequel se fait la ligne de vie et envoyé lors des échanges pour mettre en place le flux

Sinon, j'ai trouvé une autre solution qui grâce à tes compétences avec python et telnet vont nous permettre d'arranger grandement les choses! [...] Il nous faut donc un moyen de le déclencher via xbmc. Vu que tu as réussi à lancer une commande telnet via python, pourrais-tu réaliser un script qui simplement en appuyant sur un bouton lancerait une commande telnet prédéterminée?

L'idée est la suivante:

Au lieu de créer un fichier de configuration avec des vidéos à la demande, on va lancer des vidéos broadcast. Simplement, elles seront stoppées à l'initialisation. La commande telnet servira à les lancer, les mettre en pause, ...

[...]

.. et oui, 'est moi qui t'ait dit que tu étais violent!!! ... Bon, je vais me coucher!!

lol

As tu testé le freeboxTV de Vinz973 ?

Lien vers le commentaire
Partager sur d'autres sites

En fait ce que je voulais dire par les ports changent, c'est qu'à chaque interrogation (donc à chaque demande de vidéo), les flux spécifiés sont différents. Si sur la freebox c'était les ports 31330-31331, là, ce sont d'autres ports qui changent à chaque demandes. AUx derniers tests, j'avais: 4412-4413 et 4414-4415, pour au final avoir la vidéo sur 4412 et l'audio 4414. J'ai refais une demande, et j'ai obtenu 4448-4449 et 4450-4451 pour au final avoir la video sur 4448 et l'audio 4450. Voili voilou!

Et je vais rejeter un oeil sur le script dont tu parles.

++

Lien vers le commentaire
Partager sur d'autres sites

oui c'est assez étrange...

je bidouille encore le script et tu testeras.

Lien vers le commentaire
Partager sur d'autres sites

Salut,

bon pour les ports, il ne faut pas se prendre la tête, c'est le client qui les envoie! Donc dans le script rtsp2http original, les ports seront 31330-31331! Par contre, dans le script original il est supposé que l'audio et la vidéo viennent ensemble ce qui n'est pas le cas pour le serveur vlc par défaut. A voir donc si on peut envoyé les deux ensemble (option mux?).

Sinon, j'ai jeté un oeil sur le script que tu me conseilles, bon il est très bien, mais un peu violent pour ce que je veux faire et surtout il nécessite la mise en place d'un serveur (freeboxtv.exe). Par contre, en étudiant un peu le code, j'ai pu apprendre deux trois trucs. Maintenant, j'aimerais savoir si c'est possible d'ajouter une ligne dans les players lorsque l'on clique sur "ouvrir avec". D'ailleurs dans ce cas là, est-ce un script qui gère le lancement de l'application avec l'adresse de la vidéo? Est-ce possible à faire sans recompiler? Sinon, je crois que je vais devoir faire une interface graphique et tout! Ca sera peut être un peu lourd, non? Mais bon, tout sera gérable si les scripts pythons supportent telnet.

Je regarderais donc ces deux points quand j'aurais le temps.

++

Lien vers le commentaire
Partager sur d'autres sites

Euh, oui, bon, c'est loin d'être clair, je m'en rends compte maintenant en me relisant, mais tout à l'heure j'étais à fond dedans et c'était parfaitement clair pour moi.

Bien, donc je reprends le point flou:

Penses-tu qu'il soit possible de modifier la façon dont est géré 'ouvrir avec ...' pour ajouter en plus de 'mplayer' et 'dvdplayer', 'mplayer via serveur vlc'? Ce lien ferait appel à un script python qui enverrait une requete telnet pour lancer la vidéo sélectionnée. Ce lien ne devant apparâitre que dans le cas de l'exploration de fichiers videos (et pourquoi pas audio) ne se trouvant pas sur la xbox. Est-ce surtout possible sans recompiler xbmc? Si oui, comment?

++

Lien vers le commentaire
Partager sur d'autres sites

Salut à tous,

je fais ce post pour tenir au courant ceux que ça intéresserait! Aujourd'hui, avec alexsolex, nous avons réussi à utiliser vlc comme serveur à la demande (VOD) en réadaptant un script déjà existant rtsp2http présent dans le package F2XTV.

Pour faire simple, ce script transforme le flux rtsp en un flux http. Il intervient donc en tant que proxy entre le serveur (VLC) et le client.

Donc, actuellement, ce que nous avons réussi à faire:

vlc (serveur sur pc) - rtsp2http (proxy sur xbox/xbmc) - vlc (client sur pc) : video + son

vlc (serveur sur pc) - rtsp2http (proxy sur xbox/xbmc) - mplayer (client sur xbmc) : son (pas de vidéo)

vlc (serveur sur pc) - rtsp2http (proxy sur xbox/xbmc) - dvdplayer (client sur xbmc) : video + son (mais perte des 30 premières secondes de la vidéo correspondant au temps de lancement du player)

Voilà, nous espérons que d'ici peu nous arriverons à que tout fonctionne.

++

[EDIT] Ca fonctionne!!!! Il faut maintenant finaliser le programme pour qu'il soit utilisable aussi bien pour la freebox que pour vlc, que l'on nettoie un peu le code, et que l'on fasse un petit tuto!!! Encore un peu de boulot!!!

Modifié par nioc bertheloneum
Lien vers le commentaire
Partager sur d'autres sites

Tout à fait. Mais il subsite à l'heure actuelle quelques petits soucis tels que mentionnés par Nioc (retard et décallage du démarrage par exemple)

De plus il reste à mettre en place un environnement sur le PC pour constituer les listes de films, et sur la xbox éventuellement pour choisir d'afficher ou non les sous-titres par exemple.

Lien vers le commentaire
Partager sur d'autres sites

Salut,

une petite précision par rapport à ce qu'à dit Alex. Ne vous attendez pas à avoir de la super qualité en passant par le proxy car le flux est réencodé en mpeg2! Il se peut qu'il y ait donc une perte de qualité par rapport à la vidéo d'origine. Il faut de toute manière que nous fassions avec Alex de plus amples tests avec un plus large échantillons de qualité de vidéos ainsi que plusieurs types de vidéos (avi, mkv, mpg, ...). Il faudra aussi étudier si l'on peut faire une pause dans la vidéo, ou si on peut gérer un mode de reprise, mais ces deux points ne seront mis en place que si cela ne nous prends pas trop de temps.

En ce qui concerne les derniers avancements!

- Je n'ai apparemment plus de perte au début de la vidéo.

- Les sous-titres ne pourront être choisis via le menu osd! Les sous-titres demandant un encodage dans la vidéo, il y aura un lien pour la vidéo sans sous-titres plus un fichier de stream par vidéo avec sous-titres

- La gestion sur pc des vidéos et sous-titres sera dans un premier temps plutôt limitée car elle sera effectuée via un petit fichier batch de commandes DOS. Ce programme permettra :

- la création d'un fichier de config pour VLC (si ce fichier existe déjà, il pourra être soit remplacé, sauvegardé (.bak), ou compacté avec le nouveau (les deux fichiers seront mis à la suite l'un de l'autre)

- Il acceptera en entrée l'adresse d'un dossier

- Il va scanner ce dossier (et sûrement les sous-dossiers) à la recherche de fichiers vidéos (actuellement uniquement avi) et de sous-titres (actuellement uniquement srt).

- Il créera pour chaque fichier vidéo un certain nombre de configurations permettant la lecture de la vidéo sans sous-titres ou avec (une configuration par possibilité. Ex: 3 sous-titres: 4 configurations)

- Attention, pour simplifier l'usage des sous-titres, nous avons adopté la gestion simple de xbmc: les sous-titres doivent se trouver dans le même répertoire que la vidéo et porter le même nom. Dans le cas de plusieurs fichiers de sous-titres et donc de langues différentes, il faut donc adopter le style suivant: nom_de_la_video.langue.srt

- Il va créer aussi pour chaque configuration le .strm nécessaire à la lecture de la vidéo. L'adresse IP de la xbox devant être indiqué directement dans le fichier batch. Ce fichier se trouvera dans le même dossier que la vidéo et portera le nom de la vidéo. A vous de transférer les fichiers strm qui vous intéresseront!

Actuellement une bonne moitié du programme est effectuée, il restera donc à voir si nous pouvons envoyer via vlc d'autres types de fichiers vidéos (mpg, mkv, ...), s'il peut gérer d'autres types de fichiers de sous-titres (ssa, sub, ...) et ajuster le programme de gestion en fonction.

Si un jour nous avons un peu plus le temps avec Alex, nous améliorerons à la fois le proxy et la gestion des vidéos avec une interface un peu plus graphique.

++

Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share