FFMPEG: Как использовать S3 url в FFMPEG Php - PullRequest
0 голосов
/ 01 сентября 2018

Я генерирую кадр изображения из видео в определенное время, используя FFMPEG Laravel SDK в Laravel 5.6. Если я использовал локальный путь для видеофайла, он работает нормально, но когда я использую URL напрямую, это выдает ошибку. Я хочу использовать видео, которое хранится в корзине s3.

Файл не найден по пути: 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.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 сентября 2018

Если указать disk как s3, достаточно просто key имя.

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

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

В дополнительном если вы хотите, чтобы загруженный файл был общедоступным. укажите visibility на config/filesystems.php

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