Maison >développement back-end >tutoriel php >Comment utiliser PHP et FFMPEG pour traiter et transcoder l'audio et la vidéo
Avec le développement rapide des médias audio et vidéo, nous sommes de plus en plus exposés à des fichiers audio et vidéo sous divers formats dans notre vie et notre travail. Cependant, différents appareils, différentes occasions et différents besoins peuvent nécessiter des fichiers audio et vidéo dans différents formats de codage. Par conséquent, le transcodage des fichiers audio et vidéo est devenu une exigence essentielle. Dans cet article, nous présenterons comment utiliser PHP et FFMPEG (un codec audio et vidéo open source) pour traiter et transcoder l'audio et la vidéo.
Tout d'abord, nous devons installer FFMPEG sur le serveur. Le processus d'installation est relativement fastidieux, mais les principales étapes sont les suivantes :
1.1 Installer les dépendances
Tout d'abord, nous devons installer les bibliothèques dont dépend FFMPEG. Sur les systèmes Ubuntu, vous pouvez utiliser la commande suivante pour installer :
sudo apt-get update sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
1.2 Télécharger FFMPEG
Ensuite, nous devons télécharger le code source FFMPEG, qui se trouve sur le site officiel (https://www.ffmpeg.org) pour télécharger la dernière version, ou utilisez la commande suivante pour télécharger :
wget https://www.ffmpeg.org/releases/ffmpeg-4.4.tar.gz tar xvf ffmpeg-4.4.tar.gz
1.3 Compilez et installez FFMPEG
Suivant , nous devons compiler et installer FFMPEG, vous pouvez utiliser la commande suivante :# 🎜🎜#
cd ffmpeg-4.4 ./configure --enable-shared --disable-static --enable-gpl --enable-libfreetype --enable-libvorbis --enable-libx264 --enable-libx265 --enable-nonfree make -j8 sudo make installUne fois la compilation et l'installation terminées, nous pouvons utiliser FFMPEG sur le serveur.
$cmd = "ffmpeg -i input.mp4 output.avi"; exec($cmd);2.2 Utilisez l'extension PHP pour encapsuler FFMPEGBien que l'utilisation de la fonction exec puisse facilement appeler FFMPEG, Cependant, il existe des risques de sécurité évidents car n'importe quelle commande peut être exécutée et son utilisation n'est donc pas recommandée. À cette fin, nous pouvons utiliser des extensions PHP pour encapsuler l'API FFMPEG afin d'appeler FFMPEG plus facilement. En PHP, il existe deux extensions principales qui peuvent être utilisées pour encapsuler FFMPEG : l'extension FFMPEG (http://ffmpeg-php.sourceforge.net) et PHP-FFMpeg (https://github.com/PHP-FFMpeg/PHP- FFMpeg ). 2.2.1 Utilisation de l'extension FFMPEGL'extension FFMPEG peut être installée via l'outil PECL et peut être installée à l'aide de la commande suivante :
sudo pecl install ffmpegAfter l'installation est terminée, vous devez ajouter l'extension au fichier php.ini Vous pouvez ajouter les lignes suivantes au fichier :
extension=ffmpeg.soEn utilisant l'extension FFMPEG, vous pouvez facilement appeler l'API FFMPEG pour traitement audio et vidéo. Par exemple, le code suivant peut convertir un fichier vidéo au format mp4 au format avi :
$movie = new ffmpeg_movie("input.mp4"); $cmd = "ffmpeg -i input.mp4 output.avi"; exec($cmd);2.2.2 Utilisation de l'extension PHP-FFMpeg PHP-FFMpeg est un FFMPEG- L'extension PHP basée fournit une API unifiée pour le traitement audio et vidéo. Vous pouvez utiliser la commande suivante pour installer :
composer require php-ffmpeg/php-ffmpegUne fois l'installation terminée, vous pouvez utiliser le code suivant pour le traitement audio et vidéo :
$ffmpeg = FFMpegFFMpeg::create(); $video = $ffmpeg->open('video.mp4'); $format = new FFMpegFormatVideoWMV(); $format->setAudioCodec("wmav2") ->setVideoCodec("wmv2"); $video->save($format, 'video.wmv');
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!