2012-01-30 1 views
6

J'ai écrit du code PHP pour retirer des tags ID3 à partir de fichiers mp3. L'étape suivante consiste à faire la même chose avec les fichiers .m4a. D'après les recherches que j'ai faites, il semble que la plupart des fichiers m4a n'utilisent pas ID3 mais plutôt un format utilisant des 'atomes'.Récupérer des informations ID3 à partir du fichier m4a en PHP

Existe-t-il des bibliothèques PHP capables d'analyser ces 'atomes'? J'ai vu des C#/C++ mais je n'ai pas pu trouver de PHP. Tout autre guide ou documentation serait aussi bien.

Merci

+2

Vous pouvez essayer ['getID3()'] (http://getid3.sourceforge.net/) - J'ai eu beaucoup de succès avec cette librairie dans le passé pour différents types de tags de média. – DaveRandom

+0

Une chose que j'ai oublié de mentionner est que je n'ai pas le fichier complet. Je n'ai que les X premiers octets. Est-ce que getID3 supporte les fichiers partiels? – Nick

+1

Je pense qu'il ne lit que les balises dans l'en-tête, et je pense que c'est généralement dans les X premiers octets du fichier - mais la réponse est vraiment "Essayez et voyez" – DaveRandom

Répondre

-1

je suis tombé sur un problème similaire pas trop longtemps et a eu un coup d'oeil autour. La méthode la plus simple et la plus efficace (à mon avis) consiste à utiliser la commande exec pour obtenir des informations supplémentaires sur les médias.

Je basé mon code sur un forum poster sur au Longtailvideo http://www.longtailvideo.com/support/forums/jw-player/setup-issues-and-embedding/9448/how-to-get-video-duration-with-ffmpeg-and-php

<?php 
$videofile="/var/video/user_videos/partofvideo.avi"; 
ob_start(); 
passthru("/usr/bin/ffmpeg -i \"{$videofile}\" 2>&1"); 
$duration = ob_get_contents(); 
ob_end_clean(); 

$search='/Duration: (.*?),/'; 
$duration=preg_match($search, $duration, $matches, PREG_OFFSET_CAPTURE, 3); 

echo $matches[1][0]; <-- Duration 
?> 

Ce script peut gérer tout ffmpeg est prêt à gérer (ce qui est beaucoup!) Je sais que l'exemple ci-dessus illustre un fichier vidéo, mais , cela fonctionnera très bien avec l'audio aussi

Questions connexes