FFMpeg: ffmpeg не удалось выполнить команду ошибка

Я пытаюсь перекодировать видеофайл размером 1,2 Мб, загруженный на сервер моего сайта с помощью загрузки php / html, но получаю сообщение об ошибке:

Неустранимая ошибка PHP: необработанное исключение 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' с сообщением 'ffmpeg не удалось выполнить команду'/usr/local/bin/ffmpeg' '-y' '-i' '/home/user/public_html/contents/videos/1490719990_MP4_360p_Short_video_clip_nature_mp4.mp4' '-async' '1' '-метаданные:s:v:0' 'start_time=0' '-r' '16' '-b_strategy' '1' '-bf' '3' '-g' '9' '-vcodec' 'libx264' '-acodec' 'libmp3lame' '-b:v' '128k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '8k' '-ac' '1' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-pass58dab05a323b6eknk4/pass-58dab05a32465' '/home/user/public_html/contents/videos/1490719990_MP4_360p_Short_video_clip_nature_mp4_22995.mp4'' в /home/user/public_html/app/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunck.ck:

0 /home/user/public_html/app/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php(72): добавить в /home/user/public_html/app/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Video.php в строке 168

Забавно, что один и тот же сервер извлекает кадры и получает длительность одного и того же файла с помощью ffprobe и ffmpeg.

Вот код, который я использую для транскодирования:

$ffmpeg = $ffmpeg = FFMpeg\FFMpeg::create(['timeout'=>3600, 'ffmpeg.thread'=>12, 'ffmpeg.binaries'  => '/usr/local/bin/ffmpeg',
    'ffprobe.binaries' => '/usr/local/bin/ffprobe']);

            $ffprobe_prep = FFMpeg\FFProbe::create(['ffmpeg.binaries'  => '/usr/local/bin/ffmpeg',
    'ffprobe.binaries' => '/usr/local/bin/ffprobe']);
            $ffprobe = $ffprobe_prep->format($video_file);

            $video = $ffmpeg->open($video_file);

            // Get video duration to ensure our videos are never longer than our video limit.
            $duration = $ffprobe->get('duration');

            // Use mp4 format and set the audio bitrate to 56Kbit and Mono channel.
            // TODO: Try stereo later...
            $format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264');
            $format
                -> setKiloBitrate(128)
                -> setAudioChannels(1)
                -> setAudioKiloBitrate(8);

            $first = $ffprobe_prep
                        ->streams($video_file)
                        ->videos()
                        ->first();

            $width = $first->get('width');

            if($width > VIDEO_WIDTH){
                // Resize to 558 x 314 and resize to fit width.
                $video
                    ->filters()
                    ->resize(new FFMpeg\Coordinate\Dimension(VIDEO_WIDTH, ceil(VIDEO_WIDTH / 16 * 9)));
            }

            // Trim to videos longer than three minutes to 3 minutes.
            if($duration > MAX_VIDEO_PLAYTIME){

                $video
                    ->filters()
                    ->clip(FFMpeg\Coordinate\TimeCode::fromSeconds(0), FFMpeg\Coordinate\TimeCode::fromSeconds(MAX_VIDEO_PLAYTIME));
            }

            // Change the framerate to 16fps and GOP as 9.
            $video
                ->filters()
                ->framerate(new FFMpeg\Coordinate\FrameRate(16), 9);

            // Synchronize audio and video
            $video->filters()->synchronize();

            $video->save($format, $video_file_new_2);

Я связался с моим хозяином без какой-либо жизненно важной помощи. Единственная полезная информация, которую они могут предоставить мне, это то, что ffmpeg был скомпилирован на сервере с поддержкой libmp3lame.

Этот код прекрасно работает на локальном хосте

Любая помощь в том, почему я могу получить ошибку и как ее исправить, приветствуется.

0 ответов

Другие вопросы по тегам