2012-01-30 24 views
6

Napisałem trochę kodu PHP, aby wyciągnąć tagi ID3 z plików mp3. Następnym krokiem jest zrobić to samo z plikami .m4a. Z przeprowadzonych przeze mnie badań wynika, że ​​większość plików m4a nie używa ID3, a zamiast tego formatu używającego "atomów".Pobieranie informacji ID3 z pliku m4a w PHP

Czy są jakieś biblioteki PHP, które mogą sparsować te "atomy"? Widziałem niektóre C#/C++, ale nie mogłem znaleźć żadnych PHP. Wszelkie inne przewodniki lub dokumentacja również byłyby świetne.

Dzięki

+2

Możesz spróbować ['getID3()'] (http://getid3.sourceforge.net/) - W przeszłości miałem wielki sukces w tej bibliotece dla różnych typów tagów mediów. – DaveRandom

+0

Jedna rzecz, o której zapomniałem wspomnieć, to że nie mam pełnego pliku. Mam tylko pierwsze X bajty. Czy getID3 obsługuje częściowe pliki? – Nick

+1

Myślę, że odczytuje tylko tagi w nagłówku i myślę, że zwykle jest to pierwsze X bajtów pliku - ale odpowiedź brzmi "Wypróbuj i zobacz" – DaveRandom

Odpowiedz

-1

natknąłem podobnego problemu nie zbyt dawno temu i miał rozejrzeć. Najprostszą i najskuteczniejszą metodą (moim zdaniem) jest użycie komendy exec w celu uzyskania dodatkowych informacji o multimediach.

oparłem mój kod na forum pisać na co 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 
?> 

Ten skrypt może obsługiwać cokolwiek ffmpeg jest przygotowany do obsługi (które jest dużo!) Wiem, że powyższy przykład ilustruje plik wideo, ale będzie działać dobrze z dźwiękiem również