gpt4 book ai didi

laravel - 为什么ffmpeg处理时间这么慢?

转载 作者:行者123 更新时间:2023-12-04 22:51:54 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 转换和压缩视频。当我上传我的视频文件时,需要很长时间来处理。视频可以是 1.2mb 甚至 5.8mb 甚至 10mb 并且它仍然很慢,我只是盯着屏幕等待 20 分钟甚至更长时间。我能做些什么来加快这个过程?如果您需要我在这里为您提供我的代码

    $viddy=new Video;   
$file = $request->file('file');
$fileName =uniqid().$file->getClientOriginalName();

$request->file->move(public_path('/app'), $fileName);
$name_file=uniqid().'video.mp4';
$ffp=FFMpeg::fromDisk('local')
->open($fileName)
->addFilter(function ($filters) {
$filters->resize(new \FFMpeg\Coordinate\Dimension(640, 480));
})
->export()
->toDisk('s3')
->inFormat(new \FFMpeg\Format\Video\X264('libmp3lame'))

->save($name_file);

$imageName = Storage::disk('s3')->url($name_file);


$viddy->title=$imageName;
$viddy->save();

提前致谢

最佳答案

处理视频的速度很慢,真正加快速度的唯一可靠方法是投入更多资源,这通常是不值得的。 YouTube 的速度很快,至少部分原因是他们拥有 Google 的资源,而你和我这样的人通常没有这些资源。

但是,您可以通过将视频处理移动到消息队列(YouTube 几乎肯定也会使用)来加快用户对速度的感知。这样请求将很快完成,您可以在后台处理队列。然后,当它完成后,您可以以适当的方式通知用户,无论是电子邮件还是通过 Websockets 的通知。正如 Derek Pollard 提到的,Laravel 有自己的队列实现,你应该引用文档。

另一种选择可能是将视频处理移交给专用的微服务,在这种情况下,一旦处理完成,该微服务将需要通知您的应用程序。或者,如果您的预算允许,也有第三方服务可以做同样的事情。无论如何,这种类型的任务最好异步完成,而不是让用户等待 20 分钟左右。

关于laravel - 为什么ffmpeg处理时间这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53245912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com