Position actuelle: Accueil> Derniers articles> Explication détaillée de la fonction d'édition vidéo PHP: Comment utiliser FFMPEG pour modifier les vidéos

Explication détaillée de la fonction d'édition vidéo PHP: Comment utiliser FFMPEG pour modifier les vidéos

gitbox 2025-06-14

1.1. Introduction à ffmpeg

1.2. Fonction de traitement vidéo PHP

PHP traite les vidéos via plusieurs fonctions, et la suivante répertorie plusieurs fonctions communes.

1.2.1. ffmpeg_open ()

FFMPEG_OPEN () est utilisé pour ouvrir un fichier vidéo et renvoyer une poignée vidéo. Voici un exemple d'utilisation:

 
$ffmpeg = ffmpeg_open('video.mp4');
    

1.2.2. ffmpeg_seek ()

La fonction ffmpeg_seek () est utilisée pour localiser l'emplacement spécifié dans le fichier vidéo. Par exemple, localisez le pointeur de lecture de la vidéo vers la 30e seconde:

 
ffmpeg_seek($ffmpeg, 30); // Déplacer le pointeur vidéo vers30Deuxième
    

1.2.3. ffmpeg_frame_to_png ()

La fonction ffmpeg_frame_to_png () est utilisée pour enregistrer une certaine trame dans la vidéo sous forme de fichier d'image PNG. L'exemple de code est le suivant:

 
ffmpeg_frame_to_png($ffmpeg, 'output.png');
    

2. Exemple d'application: Animation vidéo à GIF

Nous utiliserons PHP pour transcoder la vidéo en animation GIF. Tout d'abord, vous devez installer l'extension FFPHP de PHP et utiliser la commande suivante pour l'installer:

 
sudo pecl install ffphp
    

Une fois l'installation terminée, voici le code complet pour convertir la vidéo en animation GIF:

 
$ffmpeg = ffmpeg_open('video.mp4');
$frames = 30; // 每Deuxième生成30cadre
$width = 240;  // GIFLargeur de la figure
$height = 180; // GIFHauteur de la figure

$gif = new GifEncoder();

for ($i = 0; $i < $frames; $i++) {
    ffmpeg_seek($ffmpeg, $i * 1 / $frames * $duration); // 计算每一cadre对应的时间点
    $tmp_file = tempnam(sys_get_temp_dir(), 'movie_frame');
    ffmpeg_frame_to_png($ffmpeg, $tmp_file); // 获取当前cadre并保存为PNGFormat

    $im = imagecreatefrompng($tmp_file); // VolontéPNGSe convertirGDimage
    imagedestroy($im); // Mémoire libre

    $gif->addFrame($im); // Volonté当前cadre添加到GIFDans l&#39;animation
    unlink($tmp_file); // Supprimer les fichiers temporaires
}

$gif->finish(); // FinitionGIFGénération de fichiers
    

Dans le code ci-dessus, nous convertissons le cadre vidéo en animation GIF via la classe GifEncoder. Vous pouvez télécharger la classe depuis GitHub, qui est une pure implémentation PHP de GIF Encodeur.

3. Conclusion

PHP fournit des fonctions puissantes pour le traitement vidéo. En utilisant la fonction FFMPEG intégrée, nous pouvons facilement implémenter l'édition vidéo, le transcodage, l'extraction d'images et d'autres opérations. Dans cet article, nous montrons comment convertir un fichier vidéo en animation GIF. J'espère que ces exemples vous aident et vous permettent de mieux effectuer l'édition vidéo dans PHP.