PHP FFMPEG не работает, когда я загружаю файл mp4 - PullRequest
3 голосов
/ 11 декабря 2011

Чтобы преобразовать видео в форматы, совместимые с видео HTML5, я написал следующий скрипт:

    $srcFile = "name/of/the/video.mp4";
    $destFile = "/media/video/newfilename";
    $ffmpegPath = "/usr/local/bin/ffmpeg";
    $flvtool2Path = "/usr/local/bin/flvtool2";

    // Create our FFMPEG-PHP class
    $ffmpegObj = new ffmpeg_movie($srcFile);
    // Save our needed variables
    $srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
    $srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
    $srcFPS = $ffmpegObj->getFrameRate();
    $srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
    $srcAR = $ffmpegObj->getAudioSampleRate();
    $srcVB = floor($ffmpegObj->getVideoBitRate()/1000); 


    // Call our convert using exec() to convert to the three file types needed by HTML5
    exec($ffmpegPath . " -i ". $srcFile ." -vcodec libx264 -vpre hq -vpre ipod640 -b ".$srcVB."k -bt 100k -acodec libfaac -ab " . $srcAB . "k -ac 2 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".mp4");

    exec($ffmpegPath . " -i ". $srcFile ." -vcodec libvpx -r ".$srcFPS." -b ".$srcVB."k -acodec libvorbis -ab " . $srcAB . " -ac 2 -f webm -g 30 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".webm");

    exec($ffmpegPath . " -i ". $srcFile ." -vcodec libtheora -r ".$srcFPS." -b ".$srcVB."k -acodec libvorbis -ab " . $srcAB . "k -ac 2 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".ogv");

Предполагается, что нужно взять любой тип входного видео и преобразовать его в mp4, ogv и webm.Когда я запускаю скрипт для файла .mov, он возвращает файлы mp4 и ogv, но не webm.Когда я запускаю его для файла .mp4, он вообще не возвращает преобразованные файлы.Что-то не так с тем, как я конвертирую файлы?Любая помощь?

1 Ответ

0 голосов
/ 11 декабря 2011

вы можете запустить CMD в командной строке, чтобы увидеть, что не так, или добавить конец переменной каждого EXEC в коде php

exec ($ ffmpegPath. "-I". $ SrcFile. "-Vcodec libx264-vpre hq -vpre ipod640 -b ". $ srcVB." k -bt 100k -acodec libfaac -ab ". $ srcAB." k -ac 2 -s ". $ srcWidth." x ". $ srcHeight." ".$ destFile. ". mp4" , $ VARIABLE );

var_dump ($ VARIABLE);

и посмотрите, какую ошибку вы получаете:)

...