Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Videoinformationen in PHP auslesen

Ich bin ja extrem begeistert von Libraries, die ihren Zweck genau so erfüllen, wie man es als Anwender / Entwickler wünscht. Die letzte Lobeshymne sang ich auf PHPQRCode, eine exzellente Library, die QR-Codes aus PHP heraus erzeugt.

Hier und heute geht es um einen weiteren Vertreter dieser „Tut genau was sie soll“ – Libraries: getid3. Letztens auf Arbeit sah ich mich mit dem Problem konfrontiert, Videoinformationen auf PHP-Seite auslesen zu müssen und das möglichst ohne Verrenkungen wie mit ffmpeg-php.

getid3 spuckt zu Videos die gewünschten Informationen aus: Datenformat, Codec, Auflösung und Framerate. Dabei zu beachten ist, dass getid3 nur auf den id3-Tags arbeitet und nicht das Video selbst untersucht. Heißt: Um böswillige, id3-Tag manipulierende Nutzer abzuhalten, ist getid3 ungeeignet und eine direkt auf dem Video operierende Lösung wie das oben genannte ffmpeg-php wird wieder interessanter.

Zur Verwendung

Kurz und schmerzlos wie es sein soll:

<?php require_once "getid3/getid3.php";  $getID3 = new getID3; $file = $getID3->analyze("WMFRA41_1.m4v"); echo "<pre>" . print_r($file['video'], true) . "</pre>";  /* Array (     [dataformat] => quicktime     [resolution_x] => 1280     [resolution_y] => 720     [fourcc] => avc1     [frame_rate] => 600 ) */ 

Lässt man sich das komplette $file – Array ausgeben, zeigt sich getid3 von seiner gesprächigen Seite und liefert noch Informationen zu den einzelnen Streams, die in der Datei intergriert sind. Aber getid3 ist logischerweise nicht auf Videos limitiert. Noch 2 Kostproben:

mp3-Handling

<?php require_once "getid3/getid3.php";  $getID3 = new getID3; $file = $getID3->analyze("Ace of Base - The sign.mp3"); echo "<pre>" . print_r($file['audio'], true) . "</pre>";  /* Array (     [dataformat] => mp3     [channels] => 2     [sample_rate] => 44100     [bitrate] => 128000     [channelmode] => dual channel     [bitrate_mode] => cbr     [lossless] =>      [encoder_options] => CBR128     [compression_ratio] => 0.090702947845805     [streams] => Array         (             [0] => Array                 (                     [dataformat] => mp3                     [channels] => 2                     [sample_rate] => 44100                     [bitrate] => 128000                     [channelmode] => dual channel                     [bitrate_mode] => cbr                     [lossless] =>                      [encoder_options] => CBR128                     [compression_ratio] => 0.090702947845805                 )          )  ) */ 

png-Handling (gekürzte Form)

<?php require_once "getid3/getid3.php";  $getID3 = new getID3; $file = $getID3->analyze("file.png"); echo "<pre>" . print_r($file['png'], true) . "</pre>";  /* Array (     [IHDR] => Array     ( 		... 		 		[width] => 966 		[height] => 796 		[raw] => Array 		( 			[bit_depth] => 8 			[color_type] => 6 			[compression_method] => 0 			[filter_method] => 0 			[interlace_method] => 0 		)  		[compression_method_text] => deflate/inflate 		[color_type] => Array 		( 			[palette] =>  			[true_color] => 1 			[alpha] => 1 		)     ) 	... */ 

Sollte man definitiv im Hinterkopf behalten, wenn sowas benötigt wird.