Lancer un fichier vidéo via une page php

Fermé
Kaorentin Messages postés 160 Date d'inscription dimanche 15 juillet 2007 Statut Membre Dernière intervention 8 juin 2012 - 21 mai 2011 à 15:16
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 28 mai 2011 à 19:17
Bonjour,

J'ai monté un petit site en local pour regrouper des vidéos. Du coup, on peut naviguer parmi les vidéos à travers leur jaquettes. J'ai regroupé tout ça en base de données mysql.

Bref, ce n'est que le contexte.

Voici mon problème :

Je voudrais ouvrir une video depuis le navigateur. Seulement, après pas mal de bidouille, j'ai réussi à lancer une vidéo, mais il n'y a pas de son.

Voici le code utilisé :

// page.php //

<?php echo "<a href='read.php?file=D:\Films non vus\video.avi'>"; ?>

//ici, on est sur la page de la video en question, en cliquant sur le lien, ça ouvre read.php avec le parametre de la video en question.


// read.php //

<?php
exec($_GET['file']);
?>

//tout simplement !

Dois-je rajouter une info pour lui indiquer qu'il doit jouer aussi l'audio ? (ça me parait hallucinant !)

Merci d'avance pour vos réponse !

Corentin.

A voir également:

1 réponse

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
21 mai 2011 à 18:33
Salut,

La fonction exec() sert à exécuter une commande, un programme.
https://www.php.net/manual/fr/function.exec.php

Essaye plutôt avec readfile().
Et si le problème du son se pose encore, alors c'est que le navigateur n'a pas les plugins nécessaires pour lire le codec du son.
0
Kaorentin Messages postés 160 Date d'inscription dimanche 15 juillet 2007 Statut Membre Dernière intervention 8 juin 2012 9
22 mai 2011 à 20:21
Merci pour ta réponse !

Malheuresement, maintenant, quand je lance le fichier, j'ai du son mais vlc ne s'ouvre plus...
Enfin si, il s'ouvre en tache de fond, mais ne s'affiche pas :/

Et impossible de l'afficher :s

Y'a-t-il un moyen de mettre l'execution d'un programme en paramètre de readfile ? Quelque chose du style readfile(exec(vlc), video.avi) (grosso modo).
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
22 mai 2011 à 20:36
readfile() lit le fichier et le retourne au navigateur, exactement comme si tu demandais directement le fichier depuis le navigateur, sans passer par PHP.

Si tu veux ouvrir VLC, alors essaye plutôt avec ceci :
exec('C:\Chemin\vers\vlc.exe C:\Chemin\vers\video.avi');
Que tu ne confondes pas, il ne s'agit pas d'indiquer les deux chemins indépendamment, mais d'indiquer le programme VLC qui prend en paramètre le fichier à ouvrir.
0
Kaorentin Messages postés 160 Date d'inscription dimanche 15 juillet 2007 Statut Membre Dernière intervention 8 juin 2012 9
22 mai 2011 à 20:40
Oui ce exec que tu m'indiques, c'est ce que je faisais à l'origine, sans succès...
Toujours ce problème de son ! Je vois bien la vidéo qui se lance dans VLC, mais sans le son :/
(d'ailleurs, je dis VLC, mais ça me fait la même chose avec MPC et autres).

Et en ce qui concerne le readfile qui ne me lit que le son, j'ai cette erreur :

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 734361601 bytes) in C:\wamp\www\cmdb\all\read.php on line 3

Sachant que mon read.php ne contient que

<?php
readfile($_GET['file']);
?>
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
Modifié par avion-f16 le 22/05/2011 à 21:16
Je viens d'essayer avec exec() et ça fonctionne très bien.
<?php 
define('VLCBIN', '"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"'); 
define('MOVIE' , '"C:\Users\user\Desktop\test.avi"'); 

exec(VLCBIN.' '.MOVIE); 
?>
Les doubles guillemets sont là pour une raisons :
Les simples (apostrophes) servent à contenir la chaine de caractères
Et les doubles, qui seront envoyés à Windows, servent à utiliser des espaces dans les chemins.
Donc Windows reçoit ceci (sans retour à la ligne) :
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "C:\Users\user\Desktop\test.avi"
0
Kaorentin Messages postés 160 Date d'inscription dimanche 15 juillet 2007 Statut Membre Dernière intervention 8 juin 2012 9
23 mai 2011 à 19:38
C'est curieux... J'ai fait exactement tes instructions, le même fichier php : vlc se lance en tache de fond, j'entends le film, mais je n'ai pas de fenêtre vlc qui s'ouvre :/
Ton vlc s'ouvre chez toi ?
0