Mit der schnellen Entwicklung des Internets ist das Video für Menschen zur Hauptmethode geworden, um Informationen und Unterhaltung zu erhalten. Videodateien sind jedoch normalerweise groß, und um die Übertragungsgeschwindigkeit der Datei zu erhöhen und den Speicherplatz zu verringern, müssen Websites normalerweise das Video transkodieren und komprimieren. In diesem Artikel wird vorgestellt, wie die PHP -Sprache in Kombination mit FFMPEG -Tool verwendet wird, um Video -Transcodierungs- und Komprimierungsfunktionen zu implementieren.
$ sourceFile = 'Original Videodateipfad'; $ targetFile = 'Transcodierende Videodateipfad'; $ command = "ffmpeg -i $ sourceFile -vcodec libx264 -Acodec aAC -Preset Slow -CRF 22 $ targetFile"; Exec ($ Command);
Im obigen Code:
$ sourceFile ist der Weg zum Originalvideo.
$ targetFile ist der transkodierende Videodateiweg.
-VCODEC LIBX264 Gibt die Verwendung des X264 -Encoders für die Videocodierung an.
-Acodec AAC Gibt die Verwendung von AAC -Encoder für die Audio -Codierung an.
-Preset Slow verwendet die langsame Transkodierungsgeschwindigkeit, um eine bessere Videoqualität zu gewährleisten.
-CRF 22 ist ein Komprimierungsparameter für die Videoqualität. Je kleiner der Wert ist, desto höher ist die Videoqualität.
Durch Anpassen dieser Parameter können Sie nach Bedarf transkodieren.
$ sourceFile = 'Original Videodateipfad'; $ targetFile = 'komprimierter Videodateipfad'; $ command = "ffmpeg -i $ sourceFile -vCodec libx264 -Acodec AAC -S 640x480 -B: v 500K $ targetFile"; Exec ($ Command);
In diesem Code:
$ sourceFile ist der Weg zum Originalvideo.
$ targetFile ist der komprimierte Videodateiweg.
-S 640x480 legt die Auflösung des Videos auf 640 x 480 fest.
-B: V 500K setzen die Bitrate von Video auf 500 kbit / s.
Durch das Anpassen dieser Parameter können Sie das Komprimierungsniveau und die Qualität Ihres Videos flexibel steuern.
$ sourceFile = 'Original Videodateipfad'; $ targetFile = 'transkopierter/komprimierter Videodateipfad'; $ command = "ffmpeg -i $ sourceFile -vcodec libx264 -Acodec aAC -Preset Slow -CRF 22 $ targetFile"; Exec ($ Command, $ output, $ returnVar); if ($ returnvar === 0) { echo 'Video Transcoding/Komprimierung erfolgreich'; } anders { Echo 'Video -Transcodierung/-komprimierung fehlgeschlagen. Überprüfen Sie bitte die Fehlermeldung:'. implode ("\ n", $ output); }
Im obigen Code wird der dritte Parameter der Funktion $ $ $ returnVar der Exec () verwendet, um den Ausführungsstatus des Befehls zurückzugeben. Wenn der Rückgabewert 0 ist, bedeutet dies, dass die Befehlsausführung erfolgreich ist; Wenn es nicht 0 ist, bedeutet dies, dass die Ausführung fehlgeschlagen ist. Sie können helfen, das Problem zu finden, indem Sie Fehlermeldungen in $ Output ausgeben.