Sur les sites Web modernes, la lecture de vidéos en ligne est devenue une fonctionnalité courante. Cet article expliquera comment utiliser PHP et FFmpeg pour implémenter un système de base capable de lire des films ou des vidéos en ligne, couvrant l'ensemble du processus, depuis la configuration de l'environnement jusqu'à l'intégration du lecteur vidéo.
Tout d’abord, vous devez installer la bibliothèque PHP-FFmpeg pour le traitement vidéo et la conversion multimédia en streaming. Cette bibliothèque est basée sur l'outil FFmpeg et prend en charge des opérations telles que la conversion de format, le montage vidéo, les captures d'écran et la sortie multimédia en streaming. Il peut être installé via Composer :
composer require php-ffmpeg/php-ffmpeg
Ensuite, définissez la source vidéo qui doit être lue. La source vidéo peut être le chemin du fichier local du serveur ou l'URL d'une vidéo distante.
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open('path/to/video.mp4');
Les flux vidéo sont utilisés pour contrôler la sortie de lecture, le réglage de la résolution, etc. Le code suivant peut être utilisé pour configurer le flux vidéo et le sortir de manière synchrone :
$stream = $video->filters()
->resize(new FFMpeg\Coordinate\Dimension(640, 480))
->synchronize();
Après avoir créé le flux, vous devez exporter la vidéo vers un chemin spécifié ou la transmettre directement au navigateur. L'exemple suivant montre comment générer un fichier au format webm :
$stream->save('path/to/output.mp4', array(
'webm' => true,
'format' => 'webm',
'audioCodec' => 'libvorbis',
'videoCodec' => 'libvpx'
));
Enfin, utiliser HTML5 dans les pages Web Les balises permettent la lecture en ligne. Définissez simplement l'attribut src pour qu'il pointe vers le fichier vidéo nouvellement généré :
<video width="640" height="480" controls>
<source src="path/to/output.mp4" type="video/webm">
</video>
Grâce aux étapes ci-dessus, nous avons complété la fonction principale de lecture vidéo en ligne en PHP. De la création de la source vidéo à l'intégration du lecteur, l'ensemble du processus est flexible et évolutif. Vous pouvez en outre ajouter un transcodage, une sélection de résolution, une couverture vidéo et d'autres fonctions pour améliorer l'expérience de lecture.