Erfassen FFMPEG Ausgabe
Ich Lesen müssen, die Ausgabe von ffmpeg, um sogar versuchen, die Lösung zu meine Frage von gestern. Dies ist ein weiteres Problem, mein problem ist es, also habe ich eine neue Frage stellen.
Wie zum Teufel bekomme ich die Ausgabe aus einer ffmpeg -i
Befehl in PHP?
Dies ist, was ich versucht habe:
<?PHP
error_reporting(E_ALL);
$src = "/var/videos/video1.wmv";
$command = "/usr/bin/ffmpeg -i " . $src;
echo "<B>",$command,"</B><br/>";
$command = escapeshellcmd($command);
echo "backtick:<br/><pre>";
`$command`;
echo "</pre><br/>system:<br/><pre>";
echo system($command);
echo "</pre><br/>shell_exec:<br/><pre>";
echo shell_exec($command);
echo "</pre><br/>passthru:<br/><pre>";
passthru($command);
echo "</pre><br/>exec:<br/><pre>";
$output = array();
exec($command,$output,$status);
foreach($output AS $o)
{
echo $o , "<br/>";
}
echo "</pre><br/>popen:<br/><pre>";
$handle = popen($command,'r');
echo fread($handle,1048576);
pclose($handle);
echo "</pre><br/>";
?>
Dies ist meine Ausgabe:
<B>/usr/bin/ffmpeg -i /var/videos/video1.wmv</B><br/>
backtick:<br/>
<pre></pre><br/>
system:<br/>
<pre></pre><br/>
shell_exec:<br/>
<pre></pre><br/>
passthru:<br/>
<pre></pre><br/>
exec:<br/>
<pre></pre><br/>
popen:<br/>
<pre></pre><br/>
Ich verstehe es nicht. safe_mode
ausgeschaltet ist. Es gibt nichts in disable_functions
. Das Verzeichnis ist im Besitz von www-data
(der apache-Benutzer auf meinem Ubuntu-system). Bekomme ich einen gültigen status zurück aus exec()
und system()
und laufen den gleichen Befehl von der Befehlszeile aus geben Sie mir Tonnen von output. Ich habe das Gefühl, ich muss etwas fehlen offensichtlich, aber ich habe keine Ahnung, was es ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, Sie fangen nur stdout und nicht stderr (siehe Standard-Streams).
Ändern Sie diese Zeile:
in
geben und es noch einmal versuchen 🙂
Verwenden ffprobe statt, es ist viel schneller und unterstützt JSON-Ausgabe.
Und Sie haben alle Ihre video-Informationen in einem php-array! Dies ist viel schneller als ffmpeg -i aus irgendeinem Grund.
Bekommen-Ausgang status-und Ausgang:
Können Sie mit exec und print_r den Ausgang...