


Comment utiliser Ffmpeg pour obtenir la vignette de la vidéo FLV et la durée de la vidéo
FFmpeg est une solution complète pour l'enregistrement, la conversion et le streaming audio et vidéo, une bibliothèque de codecs audio/vidéo leader. La version officielle de ffmpeg ne prend pas en charge les formats rmvb et rm. Aujourd'hui, nous allons le présenter.
Après une longue recherche sur Google, j'ai découvert que je pouvais utiliser Ffmpeg pour obtenir des informations sur les vidéos. Laissez-moi d'abord vous présenter FFMEPG
Voici une brève introduction : FFmpeg est une solution complète pour l'enregistrement et la conversion. et streaming audio et vidéo, un ensemble La principale bibliothèque de codecs audio/vidéo. La version officielle de ffmpeg ne prend pas en charge les formats rmvb et rm. Cependant, il existe de nombreuses solutions. Le site officiel de FFmpeg est http://ffmpeg.mplayerhq.hu/.
Le wiki chinois est http://www.ffmpeg.com.cn/, qui contient de nombreuses informations.
㈠Installation de FFMEPG
Système d'exploitation : centos6
J'ai trouvé tellement d'articles sur l'installation de FFMEPG, mais en gros il n'y a aucun commentaire, donc de nombreux logiciels doivent être installés et il n'y a aucune explication sur leur utilisation. Je suis confus. . De plus, il y a toujours des problèmes avec les étapes d'installation ci-dessus. Au final, je dois chercher le site officiel et y regarder attentivement. Il est vrai que les informations officielles sont très utiles, je dois donner la priorité au site officiel. informations dans le futur.
Étant donné que FFMEPG lui-même prend en charge le format flv, ce qui signifie qu'il n'est pas nécessaire d'installer de plug-ins pour le moment, seul FFMEPG doit être installé. Il existe deux façons d'installer FFMEPG : ① Installation du package de code source, je ne le fais pas. Je ne sais pas pourquoi cela signale toujours une erreur ② Installation de la commande Yum, centos Ce miam est la meilleure commande, haha
Voici les étapes d'installation :
㈠Installer l'environnement de compilation
#yum install -y automake autoconf libtool gcc gcc-c++
㈡Installez le package RPM de la bibliothèque requise sur centos
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5 .rf.i386.rpm
Installez ffmpeg et d'autres modules
yum -y installez ffmpeg ffmpeg-devel
************************** ****************スntススL'installation suivante Déjà effectuée !
Installez le plug-in de support php : FFMPEG-PHP
Installez FFMPEG-PHP
cd /usr/local/srcwget http://garr.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php- 0.6.0.tbz2
tar jxvf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
/usr/local/php/bin/phpize
./configure --with-php-config=/ usr/ local/php/bin/php-confi
make
make install
Puis modifiez le fichier php.ini
Ajoutez cette phrase au fichier php.ini
Puis redémarrer Apache
*********** Notez que le lien wget est peut-être invalide. Il est probablement bloqué en ligne
-----. ------ -------------------------------------------- ------ ---------------------------------------------
Mais je open phpinfo n'a pas vu FFMPEG. Je ne sais pas ce qui s'est passé. La méthode d'installation fournie sur le site officiel nécessite de recompiler PHP pour prendre en charge ffmpeg, étant donné que les services fonctionnent tous sur centos, puisque centos est déjà disponible. ,
alors je peux simplement utiliser la fonction exec de php pour appeler la commande shell de liunx, ce qui signifie qu'il n'est pas nécessaire d'installer FFMPEG-PHP
Pour plus d'informations sur la fonction exec de php, veuillez vous référer à : Utilisation d'exec, du système et d'autres fonctions en php pour appeler les commandes système
Vous trouverez ci-dessous une commande courante pour obtenir des vignettes :
Exemple 1 :
Découpez une image de taille 352x240 au format jpg :ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a. jpg
Exemple 2 :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
Exemple 3 : C'est ce dont j'ai besoin !
ffmpeg -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320x240 test.jpg
Exemple 4 :
Convertir la vidéo en un fichier flv (c'est le plus couramment utilisé, et maintenant Flv est devenu le standard pour les vidéos en ligne)
ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv .
Parmi eux :
- source : est le nom du fichier original, qui peut être aux formats mov, mpeg, avi, wmv, ffmpeg les supporte essentiellement.
- -s wxh : Spécifiez la largeur et la hauteur de la vidéo
- -b : Définissez le débit binaire de la vidéo
- -aspect : Maintenez le ratio de la vidéo. Tel que 4:3 ou 16:9
- -y : si le fichier cible existe, écrasez directement le fichier cible d'origine.
- -f : Spécifiez le format de fichier converti, voici le format flv. (En fait, si le format de fichier n'est pas spécifié, ffmpeg convertira également en fonction du nom de suffixe du fichier).
- dest : Le nom du fichier cible converti ne doit pas nécessairement être flv, il peut s'agir de mov, mpeg et d'autres formats courants.
- Description du paramètre :
-L licence
-h aide
-fromats Afficher les formats, codecs, protocoles disponibles
-f fmt Forcer le format fmt
-I fichier d'entrée du nom de fichier
-y écrase le fichier de sortie
-t durée définit la durée d'enregistrement hh:mm:ss[.xxx] la durée d'enregistrement au format est également prise en charge
-ss recherche la position pour l'heure spécifiée [-]hh:mm:ss[.xxx] Le format est également pris en charge
s lxh : Spécifiez la largeur et la hauteur de la vidéo
********************************* ** *******************************************
Exemple 3 : Obtenez la vignette à l'emplacement spécifié pour la vidéo au format flv. N'oubliez pas que le format de conversion forcée -f est mjpeg car je souhaite obtenir la vignette .jpg. Il existe de nombreux articles écrits sur Internet qui le sont. écrit comme ffmpeg -i test. flv -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg C'est une erreur et il est impossible de sortir
Grâce à la capture d'écran ci-dessus : nous pouvons voir le. informations flv d'entrée et informations sur l'image jpg de sortie, la durée est la longueur de la vidéo nécessaire pour cet article, mais je ne sais pas comment obtenir cette variable
Ce qui suit est le code pour appeler la commande shell en PHP pour obtenir le vignette
<?php exec("/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320x240 /usr/local/apache/htdocs/test.jpg",$out,$status); print_r($status);//0是成功 1是失败
********************* ************************* ************
Si aucune image n'est générée, les raisons possibles sont :
①Pour stocker les images générées Le dossier doit avoir une autorisation en écriture #chomd 777 /usr/local/apache/htdocs
②Il y a Disable_functions dans php.ini pour désactiver PHP appelant la fonction de commande Shell,
disable_functions = proc_open, popen,exec, system, shell_exec, passthru
Solution : commentez l'élément Disable_functions
#disable_functions = proc_open, popen ,exec, system, shell_exec, passthru
or Disable_functions = (supprimer la fonction interdite)
Enregistrer, fermer et activer
③Le mode sans échec dans php.ini doit être désactivé avant d'appeler la fonction exec
safe_mode = off
④L'interception du temps d'image est également très importante, il s'agit probablement d'une image invalide ou d'un écran noir
Il est recommandé d'ajouter des images clés, généralement les premières images sont des images clés, vous pouvez utiliser : vframes : paramètres d'image, ignorer les paramètres de microseconde , ne conservez que les paramètres temporels
/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg - ss 3 -vframes 1 -s 320x240 /usr/local/apache/htdocs/ test.jpg
*************************** ******************* *******************************
Ce sont toutes des solutions pour obtenir des vignettes. J'ai vu quelqu'un utiliser ffmpeg pour obtenir des vignettes. de vidéos sur les téléphones mobiles pendant le développement d'Android étant donné que la couche inférieure d'Android est Linux, elle devrait être universelle ! Voici comment obtenir la durée de la vidéo. Bien que la durée soit la durée de la vidéo requise, je ne sais pas comment l'obtenir, pouvez-vous m'apprendre, s'il vous plaît !
Voici la durée d'une vidéo obtenue en PHP pur :
Vous pouvez effectuer une recherche sur Internet : Comment obtenir la longueur d'une vidéo flv avec php
Vous pouvez trouver de nombreux résultats, mais j'ai feuilleté plus de dix pages et J'ai découvert que les tmd sont tous copiés et réimprimés et qu'ils ne peuvent pas tous être utilisés, je ne sais pas pourquoi ? Ce code est bizarre. Vous pouvez exécuter le code sur Internet. Vous constaterez que ce n'est pas PHP, car l'éditeur n'affiche pas la coloration syntaxique. J'ai copié le code en ligne et j'ai trouvé que l'erreur est toujours bizarre. . . . Le message d'erreur est très étrange. Si vous êtes intéressé, vous pouvez l'essayer. Je n'ai pas décidé de rechercher des informations en anglais. Finalement, j'ai vu le code sur un site Web étranger, je peux l'essayer ! Hahaha, les trucs des étrangers fonctionnent si bien
Code incorrect :
Les mots clés ne sont pas mis en évidence
Ce qui suit est le code correct :
<?php function BigEndian2Int($byte_word, $signed = false) { $int_value = 0; $byte_wordlen = strlen($byte_word); for ($i = 0; $i < $byte_wordlen; $i++) { $int_value += ord($byte_word{$i}) * pow(256, ($byte_wordlen - 1 - $i)); } if ($signed) { $sign_mask_bit = 0x80 << (8 * ($byte_wordlen - 1)); if ($int_value & $sign_mask_bit) { $int_value = 0 - ($int_value & ($sign_mask_bit - 1)); } } return $int_value; } //获得视频的数字时间 function getTime($name){ if(!file_exists($name)){ return; } $flv_data_length=filesize($name); $fp = @fopen($name, 'rb'); $flv_header = fread($fp, 5); fseek($fp, 5, SEEK_SET); $frame_size_data_length =BigEndian2Int(fread($fp, 4)); $flv_header_frame_length = 9; if ($frame_size_data_length > $flv_header_frame_length) { fseek($fp, $frame_size_data_length - $flv_header_frame_length, SEEK_CUR); } $duration = 0; while ((ftell($fp) + 1) < $flv_data_length) { $this_tag_header = fread($fp, 16); $data_length = BigEndian2Int(substr($this_tag_header, 5, 3)); $timestamp = BigEndian2Int(substr($this_tag_header, 8, 3)); $next_offset = ftell($fp) - 1 + $data_length; if ($timestamp > $duration) { $duration = $timestamp; } fseek($fp, $next_offset, SEEK_SET); } fclose($fp); return $duration; } //转化为0:03:56的时间格式 function fn($time){ $num = $time; $sec = intval($num/1000); $h = intval($sec/3600); $m = intval(($sec%3600)/60); $s = intval(($sec%60)); $tm = $h.':'.$m.':'.$s; return $tm; } $t = getTime("22.flv");//显示数字时间如236722 echo fn($t);//显示时间格式0:03:56 ?>
Effet d'aperçu :
Ma vidéo est55 Juste quelques secondes ! ok
Apprentissage recommandé : Tutoriel vidéo php
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Introduction pratique à l'épissage vidéo à l'aide de Golang et FFmpeg : Dans la vie quotidienne, nous rencontrons souvent des situations où nous devons fusionner plusieurs fichiers vidéo en un seul, comme l'assemblage de plusieurs vidéos enregistrées en un fichier vidéo complet. Pour atteindre cet objectif, cet article présentera comment utiliser les bibliothèques Golang et FFmpeg pour implémenter le processus d'épissage vidéo et fournira des exemples de code spécifiques. 1. Que sont Golang et FFmpeg ? Golang (langage Go) est un langage de programmation open source développé par

Golang vs FFmpeg : Comment implémenter le mixage et la séparation audio, exemples de code spécifiques requis Résumé : Le traitement audio est une partie essentielle de nombreuses applications multimédias. Dans Golang, nous pouvons utiliser la bibliothèque FFmpeg pour réaliser le mixage et la séparation audio. Cet article expliquera comment utiliser Golang pour appeler la bibliothèque FFmpeg afin de réaliser le mixage et la séparation audio, et fournira des exemples de code spécifiques. En étudiant cet article, les lecteurs apprendront comment utiliser Golang et FFmpeg pour implémenter le traitement audio

Golang et FFmpeg : Comment implémenter la conversion et la compression de formats audio, des exemples de code spécifiques sont nécessaires Introduction : Dans le traitement de fichiers audio, vous rencontrez parfois le besoin de convertir des formats audio ou de compresser la taille des fichiers audio. En tant que langage de programmation puissant, Golang, associé à FFmpeg, un outil de traitement audio et vidéo populaire, peut réaliser une conversion et une compression de format audio rapides et efficaces. Cet article expliquera comment utiliser Golang et FFmpeg pour implémenter la conversion et la compression de format audio, et donnera des exemples de code spécifiques.

Golang et FFmpeg : Comment implémenter la synthèse et la segmentation audio, des exemples de code spécifiques sont requis Résumé : Cet article présentera comment utiliser les bibliothèques Golang et FFmpeg pour implémenter la synthèse et la segmentation audio. Nous utiliserons quelques exemples de code spécifiques pour aider les lecteurs à mieux comprendre. Introduction : Avec le développement continu de la technologie de traitement audio, la synthèse et la segmentation audio sont devenues des exigences fonctionnelles courantes dans la vie quotidienne et au travail. En tant que langage de programmation rapide, efficace et facile à écrire et à maintenir, Golang, associé à FFmpeg

Golang et FFmpeg : Technologie permettant de mettre en œuvre l'analyse et la reconnaissance de flux vidéo en temps réel, nécessitant des exemples de code spécifiques Introduction : À l'ère numérique et intelligente d'aujourd'hui, la technologie vidéo est de plus en plus utilisée. Parmi eux, l'analyse et la reconnaissance des flux vidéo en temps réel jouent un rôle important dans la surveillance de la sécurité, les transports intelligents, la reconnaissance faciale et d'autres domaines. Cet article présentera comment utiliser la technologie combinant Golang et FFmpeg pour réaliser l'analyse et l'identification de flux vidéo en temps réel, et fournira des exemples de code spécifiques. 1. Introduction à Golang Golang est un

Un aperçu pratique de l'utilisation de Golang et FFmpeg pour obtenir un anti-scintillement vidéo : le scintillement vidéo est un défi souvent rencontré dans le traitement vidéo. Lorsque la fréquence d'images de la vidéo enregistrée ne correspond pas à la fréquence d'éclairage, cela peut provoquer un scintillement dans la vidéo. Cet article expliquera comment utiliser les bibliothèques Golang et FFmpeg pour implémenter le anti-scintillement vidéo et fournira des exemples de code spécifiques. Étapes : Installez la bibliothèque FFmpeg : Tout d'abord, nous devons installer la bibliothèque FFmpeg dans l'environnement de développement Golang. peut passer

Comment installer l’extension PHPFFmpeg sur le serveur ? L'installation de l'extension PHPFFmpeg sur le serveur peut nous aider à traiter les fichiers audio et vidéo dans les projets PHP et à implémenter des fonctions telles que l'encodage, le décodage, l'édition et le traitement des fichiers audio et vidéo. Cet article explique comment installer l'extension PHPFFmpeg sur le serveur, ainsi que des exemples de code spécifiques. Tout d’abord, nous devons nous assurer que PHP et FFmpeg sont installés sur le serveur. Si FFmpeg n'est pas installé, vous pouvez suivre les étapes ci-dessous pour installer FFmpe

Guide d'installation de l'extension PHPFFmpeg : tutoriel simple et facile à comprendre Dans le processus de développement de sites Web, nous devons parfois traiter divers fichiers multimédias, tels que l'audio, la vidéo, etc. FFmpeg est un puissant outil de traitement multimédia capable de traiter l'audio, la vidéo et d'autres formats, et prend en charge diverses opérations de transcodage, de découpage et autres. L'extension PHPFFmpeg est une bibliothèque d'extensions qui appelle les fonctions FFmpeg en PHP. Elle peut être utilisée pour traiter facilement des fichiers multimédia. Ci-dessous, nous présenterons PHPF en détail
