La lecture des fichiers mp4 avec PHP
J'essaie de lire un fichier mp4 avec PHP et ce que je fais maintenant est: est-ce
<?php
header("Content-Length: filesize");
readfile('file.mp4');
?>
mais de cette façon je ne peux pas ignorer ou même revenir en arrière jusqu'à ce que la vidéo n'est pas chargée à 100%. Bien sûr, quand j'ai lu directement à partir du fichier vidéo.mp4), tout va bien.
Grâce.
Et votre question est?
Que
Mon quesntion est de savoir comment je peux lire correctement le fichier afin que je puisse aller et venir comme lorsque je suis en accédant directement le fichier. Merci
C'est quoi l'downvotes? C'est parfaitement légitime question.
Êtes-vous essayer de lire la vidéo dans un lecteur à l'aide d'un lien http, comme la source vidéo? Il n'est pas très clair à partir de votre question, peut-être que vous souhaitez modifier votre intention plus clairement. Aussi, le joueur qui sont de votre aide? Quelle est votre ligne de commande (le cas échéant)?
Que
Content-Length
en-tête n'est pas valide. Aussi, envoyez-vous un bon Content-Type
en-tête?Mon quesntion est de savoir comment je peux lire correctement le fichier afin que je puisse aller et venir comme lorsque je suis en accédant directement le fichier. Merci
C'est quoi l'downvotes? C'est parfaitement légitime question.
Êtes-vous essayer de lire la vidéo dans un lecteur à l'aide d'un lien http, comme la source vidéo? Il n'est pas très clair à partir de votre question, peut-être que vous souhaitez modifier votre intention plus clairement. Aussi, le joueur qui sont de votre aide? Quelle est votre ligne de commande (le cas échéant)?
OriginalL'auteur user2221276 | 2013-04-03
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour mettre en œuvre le saut fonctionnalité vous-même en PHP. Ceci est un extrait de code qui va le faire.
Plus De Performance
Noter que ce n'est pas le moyen le plus efficace de le faire, parce que l'ensemble du dossier doit passer par PHP, de sorte que vous aurez juste besoin d'essayer de comment ça se passe pour vous.
En supposant que la raison pour laquelle vous voulez faire, c'est de restreindre l'accès, et vous avez besoin de plus d'efficacité, plus tard, vous pouvez utiliser un drapeau pour le serveur web.
Apache avec X-Sendfile module ou lightty (nginx info ici)
C'est un peu plus avancé et que vous devez utiliser uniquement si vous en avez besoin, mais il est de détente et de savoir que vous avez une option de mise à niveau lorsque vous commencez avec quelque chose qui est assez facile, mais a performance médiocre.
Cela fonctionne vraiment bien pour mes fins, mais j'ai remarqué qu'il charge toujours le même fichier lorsque je tape une URL. Pour le forcer à obtenir une nouvelle URL, j'ai du ajouter un paramètre GET. C'est bien parce que tous mes fichiers seront chargés en tant que fichier.le php?chemin/vers/fichier, mais je me demandais quelles sont les causes de cette. Est-il être mis en cache sur le côté serveur ou côté client? La réinitialisation de mon navigateur ne semble pas prendre soin d'elle. Surtout de la curiosité, si. Le chargement des fichiers fonctionne bien dans le code de production.
Alors que vous pouvez ajouter des en-têtes pour empêcher la mise en cache, caches intermédiaires peut les ignorer, donc votre meilleure option est de continuer à changer l'URL que vous êtes en train de faire. De cette façon, vous pouvez aller dans la direction opposée et de l'utiliser dans un avenir lointain-têtes pour économiser de la bande passante.
OriginalL'auteur cmc
Je l'ai trouvé beaucoup moins cher de PHP et la seule façon de l'expérimentation de la solution retenue. Bien que je n'ai pas testé cette contre X-Sendfile, je soupçonne que la performance est encore meilleure pour l'ensemble de votre site, car elle signifie une plus courte Apache fichier.
Vous avez seulement besoin du code suivant pour être mis hors adressable .les vidéos mp4 à partir de PHP (ne l'ai pas testé avec .webm ou d'autres types):
Beaucoup plus propre et plus rapide; la accepté de répondre à code entraîné dans la vidéo prendre un temps très long à charger pour une raison quelconque, le chargement de la vidéo avec ce code a été instantanée (les deux tests ont été sur un serveur local avec une 7.25 MB fichier vidéo).
Testé avec Chrome, Firefox, et le Bord de la vidéo par défaut joueurs.
Edit: testé sans
header('Content-Type: video/mp4');
, elle fonctionne encore si le fichier est chargé à partir d'une autre page! Si vous accédez directement sur l'URL, il n'y aura pas de lecteur vidéo; le code sera imprimé.Est-il adressable?
Ça fait un moment, mais dans mes tests, tout a fonctionné correctement. Si ce n'est pas, en essayant d'ajouter le Type de Contenu comme mentionné ci-dessus et cela devrait fonctionner.
OriginalL'auteur Josh Powlison