FFMPEG:如何在 FFMPEG Php 中使用 S3 url

FFMPEG: How to use S3 url in FFMPEG Php

我在 Laravel 5.6 中使用 FFMPEG Laravel SDK 从特定时间的视频生成图像帧。如果我使用视频文件的本地路径,它工作正常,但是当 我直接使用 URL 时,它会出错。我想使用存储在 s3 存储桶中的视频。

File not found at path: https:/xxxxx.cloudfront.net/uploaded_videos/filename.mp4

我的代码如下。

$videoFile = env('CLOUDFRONT')."/".$resultStatusValue[0]->video_url;

FFMpegFacade::fromDisk('s3')
->open($videoFile)   
->getFrameFromSeconds($timeToSecond)
->export()
->toDisk('s3')
->save($s3Path);

此后生成的图像应上传到 s3 存储桶。

提前致谢。

如果将 disk 指定为 s3,只需 key 名称就足够了。

$videoFile = $resultStatusValue[0]->video_url;  //= upload/video1.mp4

FFMpegFacade::fromDisk('s3')
->open($videoFile)   
->getFrameFromSeconds($timeToSecond)
->export()
->toDisk('s3')
->save($s3Path);

在附加 如果你想上传文件到 public。在 config/filesystems.php

上指定 visibility
's3' => [
            'driver' => 's3',
            'key' => 'your-key',
            'secret' => 'your-secret',
            'region' => 'your-region',
            'bucket' => 'your-bucket',
            'visibility' => 'public',
        ],