2016-07-14 6 views
1

Hallo wir verwenden ffmpeg zum Komprimieren des Videos über PHP-Skript, jetzt was ich brauche ist ich möchte die Videogröße des komprimierten Bildes zu bekommen, aber bekomme einen Video-Pfad so freundlich, mich zu führen, wie ich das überkommen muss?Wie bekomme ich die Videogröße komprimierter Videos per ffmpeg?

Unten ist der Code, was ich zum Komprimieren der Video

ursprünglichen Pfad

$path = "sample.mp4"; 

Befehl

exec("ffmpeg -i sample.mp4 -vcodec h264 -acodec aac -strict -2 compressed_video.mp4); 

Der Befehl, was ich für das Erhalten Videogröße

zum Komprimieren verwendet
$compressed_video_information = exec("ls -h1 compressed_video.mp4); 
echo $compressed_video_information; 

Ich habe nur den Dateipfad installiert, um die Videodateigröße zu erhalten, also hilft mir jemand, dieses Problem zu lösen?

Antwort

1

-h Option (ex: ls -lh) zeigt Größe in für Menschen lesbaren Form (KB/MB/GB etc ..)

exec("ls -lh compressed_video.mp4",$out);// pass file path here 
$size=explode(' ',$out[0]); 
print_r($size[4]); 
+0

Dank i habe die Ausgabe so wie ich brauchte. –

0

Verwenden Sie die PHP-Funktion filesize:

<?php 
$filesize_in_bytes = filesize('compressed_video.mp4'); 
+0

das wird etwas mehr Zeit für meine Ausführung brauchen. –

+0

Es gibt auch 0 zurück, wenn die Dateigröße mehr als 2GB ist – Saty

+0

@ManiKandan: Wenn die Zeit wichtig ist, dann verwenden Sie 'du', wie in' du compressed_video.mp4'. Es ist doppelt so schnell wie mit 'ls -lh'. Ich bin mir jedoch nicht sicher, wie die Ausführungszeit von 'filesize' Sie behindern kann, wenn die Auswirkung auf die gesamte Ausführungszeit Ihres Skripts keine Rolle spielt. Das Konvertieren von Videos dauert viel länger. Es ist auch genauso schnell wie mit 'ls'. @Saty: In der Frage wird keine Angabe über die Größe der resultierenden Videodateien gemacht. Eine native PHP-Lösung ist auch robuster, da die Verwendung von "ls" mit dem Explodieren des Ergebnisses von der Konfiguration des Betriebssystems abhängt. – Plenka