Avec le développement rapide d'Internet, le streaming vidéo est devenu le principal moyen pour les utilisateurs de regarder et de partager des vidéos. Lors du développement d'applications Web, PHP fournit une variété de façons de traiter les flux vidéo, ce qui peut aider les développeurs à réaliser facilement les fonctions de lecture et de traitement des flux vidéo. Cet article présentera plusieurs méthodes de streaming vidéo PHP courantes et montrera comment le faire via des exemples de code.
Avec PHP, vous pouvez facilement ouvrir des fichiers vidéo locaux et les convertir en flux vidéo. Voici un exemple simple:
$ filename = 'path / to / vidéo.mp4'; En-tête («Type de contenu: vidéo / MP4»); En-tête ('Content-Length:'. FileSize ($ filename)); ReadFile ($ nom de fichier);
Dans le code ci-dessus, nous spécifions d'abord que le type MIME du fichier vidéo est vidéo / MP4 et définissons l'en-tête de longueur de contenu. Ensuite, utilisez la fonction readFile () pour sortir directement le contenu du fichier vidéo dans le navigateur.
FFMPEG est un puissant outil de traitement multimédia open source capable de gérer une variété de supports de streaming vidéo. Avec la fonction EXEC () dans PHP, vous pouvez facilement appeler la commande ffmpeg pour transcoder des vidéos. Voici un exemple de code pour le transcodage FFMPEG:
$ inputfile = 'path / to / input.mp4'; $ outputFile = 'path / to / output.mp4'; $ ffmpegcommand = "ffmpeg -i {$ inputfile} -c: v libx264 -c: a aac -strict expérimental {$ outputfile}"; exec ($ ffmpegCommand);
Dans ce code, définissez d'abord les chemins des fichiers d'entrée et de sortie, puis exécutez la commande ffmpeg via la fonction exec () pour transcoder la vidéo en vidéo de format H.264 et audio de format AAC.
Dans certains scénarios d'application, vous devrez peut-être transférer des fichiers vidéo en morceaux pour activer le streaming. Voici un exemple de code pour le streaming vidéo à l'aide de PHP:
$ filename = 'path / to / vidéo.mp4'; En-tête («Accept-Ranges: octets»); $ start = 0; $ end = fileSize ($ filename) - 1; En-tête ("Content-Range: Bytes {$ start} - {$ end} /". FileSize ($ filename)); En-tête ("Content-Length:". FileSize ($ filename)); $ fp = fopen ($ nom de fichier, «RB»); if ($ fp) { fseek ($ fp, $ start, Seek_set); while (! feof ($ fp) && ($ p = ftell ($ fp)) <= $ end) { $ length = ($ p + 1024> $ fin)? $ end - $ p + 1: 1024; Echo Fread ($ fp, $ la longueur); ob_flush (); flush(); } } fclose ($ fp);
Cet exemple de code implémente le transfert de fichiers enfile en définissant les en-têtes «Accept-Ranges» et «Content-Range». Utilisez `fopen ()` pour ouvrir le fichier vidéo, localisez la position de lecture via `fseek () ', utilisez` fread () `pour lire les données à la demande et à la sortie via` ob_flush () `et` flush () `.
Cet article présente plusieurs méthodes de streaming vidéo courantes dans PHP, y compris comment sortir directement les flux vidéo, utiliser FFMPEG pour le transcodage vidéo et comment diffuser des fichiers vidéo. Ces méthodes peuvent aider les développeurs à répondre facilement à divers besoins de traitement vidéo et conviennent à différents scénarios d'application de streaming vidéo.