FFMpeg PHP Ошибка при получении пакета при загрузке в Laravel Очередь - PullRequest
0 голосов
/ 18 марта 2020

Я создал код на Laravel, чтобы добавить водяной знак в мое видео с пакетом ffmpeg. Эта функция прекрасно работает при работе с контроллером.

Из-за трудоемкой задачи я перемещаю код в систему очередей Laravel, и она успешно отправляется в таблицу очередей. но когда я запускаю php artisan queue: работаю с кодом, получающим ошибку вроде

 Alchemy\BinaryDriver\Exception\ExecutionFailureException: ffmpeg failed to execute command '/usr/bin/ffmpeg' '-y' '-i' '/home/forge/demosite/public/frontend/video/1276841041584344642.mp4' '-threads' '12' '-vcodec' 'libx264' '-acodec' 'libmp3lame' '-b:v' '1000k' '-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' '256k' '-ac' '2' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes5e6f2f04cec372bg0z/pass-5e6f2f04cecc2' '/home/forge/demosite/frontend/posts/video/org-post/n-w-post-video-org/17957037231584344836.mp4' in /home/forge/demosite/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:10

Во многих ссылках я вижу, что эта проблема связана с проблемой разрешения папки publi c. поэтому я даю 777 разрешение на публикацию папки c, и она не будет работать ...

Рабочий код ..

   $ffmpeg = FFMpeg\FFMpeg::create([
        'ffmpeg.binaries'  => '/usr/bin/ffmpeg',
        'ffprobe.binaries' => '/usr/bin/ffprobe' ,
        'timeout' => 3600, // The timeout for the underlying process
        'ffmpeg.threads' => 12, // The number of threads that FFMpeg should use
    ]);
    $video = $ffmpeg->open($this->file);
    $random = rand().''.time();
    $randomFileName = $random . ".$this->extension";

    /*-------------------------------original video----------------------------------------------*/
    $format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264');       
    $format->setKiloBitrate(1000)->setAudioChannels(2)->setAudioKiloBitrate(256);        
    // $saveLocation = getcwd() . '/frontend/video/uploads/n_w_org_vd/' . $randomFileName;
    $saveLocation = getcwd() . '/frontend/posts/video/org-post/n-w-post-video-org/' . $randomFileName;
    $video->save($format, $saveLocation);
    $filepath = 'frontend/posts/video/org-post/n-w-post-video-org/' . $randomFileName;
    Storage::put($filepath, file_get_contents($saveLocation),'public');    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...