在laravel中使用php ffmpeg转换和保存视频时编码失败
我正在使用软件包将用户上传的视频转换为在laravel中使用php ffmpeg转换和保存视频时编码失败,php,laravel,ffmpeg,ffmpeg-php,Php,Laravel,Ffmpeg,Ffmpeg Php,我正在使用软件包将用户上传的视频转换为mp4格式,请注意,我正在使用Laravel framework进行开发过程。 但我面临着这个错误,我不确定我做错了什么,因为它只说明编码失败了。我附上了下面的错误图片,你可以在底部看到 这是我处理用户上传的函数: public function upload() { $this->putVideoIntoStorage(); $this->ffmpeg->saveVideo($this->st
mp4
格式,请注意,我正在使用Laravel framework进行开发过程。但我面临着这个错误,我不确定我做错了什么,因为它只说明编码失败了。我附上了下面的错误图片,你可以在底部看到 这是我处理用户上传的函数:
public function upload()
{
$this->putVideoIntoStorage();
$this->ffmpeg->saveVideo($this->storageManager->getAbsolutePathOf($this->video->getClientOriginalName()));
return $this->saveVideoIntoDatabase();
}
这是一个使用php-ffmpeg
public function saveVideo(String $path)
{
$ffmpeg = FFMpeg::create([
'ffmpeg.binaries' => config('services.ffmpeg.ffmpeg_path'),
'ffprobe.binaries' => config('services.ffmpeg.ffprobe_path'),
'timeout' => 3600, // The timeout for the underlying process
'ffmpeg.threads' => 12, // The number of threads that FFMpeg should use
]);
$video = $ffmpeg->open($path);
$video->save(new X264(), 'video.mp4');
}
这是我得到的错误:如果您需要,我可以提供更多详细信息。请询问我,如果有人能帮我解决这个问题,我将非常高兴。以下是正确的方法:
$format = new FFMpeg\Format\Video\X264();
$format->setAudioCodec("libmp3lame");
$video->save($format, '/path/to/new/file');
启用时,您应该可以访问包含有用错误的堆栈跟踪。提示:将长时间运行的进程移动到
作业
,这样您可以快速向用户返回响应,然后开始处理代码。您还可以尝试在tinker会话php artisan tinker
中使用已上载的文件运行上述代码,并检查错误。