J'ai un fichier flv téléchargé sur un serveur. Je voudrais afficher sa durée dans le format suivant "minutes: secondes". Quelqu'un peut-il m'aider avec ça ?Obtenir la durée FLV avec php
Merci
J'ai un fichier flv téléchargé sur un serveur. Je voudrais afficher sa durée dans le format suivant "minutes: secondes". Quelqu'un peut-il m'aider avec ça ?Obtenir la durée FLV avec php
Merci
Voici mon code pour saisir une image et générer l'image de la vidéo ...
// get the duration and a random place within that
$cmd = "ffmpeg -i " . $videoPath . " 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$second = rand(1, ($total - 1));
}
exec($cmd);
// get the screenshot
exec("ffmpeg -i " . $videoPath . " -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg " . $imageOutput . " 2>&1");
seconde variable $ est le nombre aléatoire entre 0 et durée totale. et le second exec() consiste à créer un fichier image à partir de l'image sélectionnée.
$ imageOutput est l'emplacement absolu du chemin vers l'image générée. par exemple: /home/ariawan/image-generated.jpg
je suis en utilisant php et ffmpeg pour obtenir la durée de la vidéo.
$cmd = "ffmpeg -i " . $videoPath . " 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
}
exec($cmd);
print_r() la variable $ heure à voir. assurez-vous que ffmpeg est installé sur votre machine .. espérons que cela aidera.
merci l'homme je vais l'essayer. Je sais que ffmpeg est installé. – Ciprian
Je ne suis pas sûr de savoir comment faire cela. J'ai créé une variable $ videoPath = 'skittles.flv'; et j'ai appelé la variable $ time avec print_r (time); Le résultat est Array() – Ciprian
try ffmpeg -i /path/path/videofile.flv. est-ce qu'il fonctionne? – ariawan
Il existe également une extension PHP FFMPEG ie. apt-get install php5-ffmpeg
puis
$movie = new ffmepg_movie("path/to/movie.flv"); $duration_in_seconds = $movie->getDuration();
Ceci a fonctionné pour moi précédemment. L'extension est bonne pour récupérer des méta-données et tester si un fichier téléchargé est un FLV, etc.
puis diviser par 60 pour obtenir les minutes et modulo 60 pour obtenir les secondes restantes –
cool ... je vais essayer cette option aussi. Merci beaucoup! – Ciprian
Je utiliserais le getID3 PHP library
, écrit en PHP pur sans aucune dépendance.
Non seulement vous donne la durée du film .flv
en secondes, mais le convertit au format minute:seconds
déjà. Voici un exemple de code avec v 1.7.9 (dernière version stable de getid3
).
<?php
// getId3 library uses deprecated eregi_* functions
// which generate errors under PHP 5.3 - so I excluded them
error_reporting(E_ALL^E_DEPRECATED);
// just for debugging/sample
header('Content-Type: text/plain');
// include the getid3 base class in order to use the lib
require_once('./lib/getid3.php');
// path to your .flv file
$filename = './sample.flv';
$getID3 = new getID3();
$fileInfo = $getID3->analyze($filename);
// echoes something like 127.8743
print 'Playtime in seconds: ' . $fileInfo['playtime_seconds'];
print chr(10);
// echoes something like: 2:07
print 'Playtime in minute:seconds format: ' . $fileInfo['playtime_string'];
remercie l'homme. J'apprécie ton aide. Mais j'ai fini par utiliser la deuxième suggestion. Une idée sur comment attraper la vignette? – Ciprian
+1 pour getid3 car il n'a pas de dépendances –
@ciprian comment saisir la vignette devrait être une question distincte. –
Merci pour votre aide. Je voudrais également générer une vignette à partir du fichier flv. J'essaye actuellement d'accomplir ceci en utilisant ce code. Mais je semble faire quelque chose de mal.
$cmd = "ffmpeg -i /home/web1/wpmu.site.com/htdocs/wp-content/blogs.dir/7/files/2010/10/4973_3.flv -f image2 -vframes 1 -ss 00:00:01 -y -s 100x100 /home/web1/wpmu.site.com/htdocs/wp-content/blogs.dir/7/files/2010/10/4973_3.png";
exec($cmd, $output, $return);
Je l'ai inclus sur une page test.php. Il devrait fonctionner juste en rafraîchissant la page droite? J'ai ajouté le chemin d'accès au fichier png moi-même. Quel peut être le problème avec ça?
Merci
J'ai déjà ajouté une autre réponse à votre question de miniature. J'ai joint le code aussi, mais l'option que j'ai utilisée sur ffmpeg est jpeg. – ariawan
Ariawan, merci beaucoup pour votre aide. Je suis en mesure d'obtenir l'image dans le dossier, mais il est vide 0 octets. Voici ce que j'ai: – Ciprian
Je ne suis pas sûr de ce qui s'est passé, mais le serveur sur lequel je travaillais a été redémarré, et tout fonctionne bien maintenant. Merci beaucoup l'homme! – Ciprian
okay .. super ... – ariawan