Führen Sie eine ffmpeg-Prozess im hintergrund

Ich bin zu wollen, verwenden Sie ffmpeg zum konvertieren von video .flv in php. Derzeit habe ich diese zu arbeiten, aber es hängt der browser, bis die Datei hochgeladen wird und fertig ist. Ich schaue mir die php-docs zum ausführen einer exec () - Vorgang im hintergrund, während der Aktualisierung den Prozess mit der PID zurückgegeben. Hier ist was ich gefunden habe:

//Run linux command in background and return the PID created by the OS
function run_in_background($Command, $Priority = 0)
{
    if($Priority)
        $PID = shell_exec("nohup nice -n $Priority $Command > /dev/null & echo $!");
    else
        $PID = shell_exec("nohup $Command > /dev/null & echo $!");
    return($PID);
}

Es ist auch ein trick, die ich benutze, um zu verfolgen, ob der hintergrund-task ausgeführt wird, mithilfe der zurückgegebenen PID :

//Verifies if a process is running in linux
function is_process_running($PID)
{
    exec("ps $PID", $ProcessState);
    return(count($ProcessState) >= 2);
}

Bin, nehme ich an, erstellen Sie eine separate .php-Datei, die läuft dann aus dem php-cli ausführen einer dieser Funktionen? Ich brauche nur einen kleinen Schubs in immer diese Arbeit und dann kann ich es von dort nehmen.

Dank!

InformationsquelleAutor Nic Hubbard | 2009-07-29

Schreibe einen Kommentar