@BarabanObivan

Почему Laravel + FFmpeg + S3 не работает?

Пытаюсь выгрузить кадры из видео и сохранить их на s3:

FFMpeg::openUrl($videoUrl)
            ->exportFramesByInterval(2)
            ->toDisk('s3Yandex')
            ->save('thumb_%05d.jpg')

конфиг s3Yandex:

's3Yandex' => [
            'driver' => 's3',
            'key' => env('YANDEX_ACCESS_KEY_ID'),
            'secret' => env('YANDEX_SECRET_ACCESS_KEY'),
            'region' => env('YANDEX_DEFAULT_REGION'),
            'bucket' => env('YANDEX_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
            'use_path_style_endpoint' => env('YANDEX_USE_PATH_STYLE_ENDPOINT', false),
            'throw' => false,
            'visibility' => 'public',
        ],

При вырезке выдает ошибку:

"League\\Flysystem\\UnableToCheckFileExistence"
"/var/www/html/vendor/league/flysystem/src/UnableToCheckExistence.php"
"Unable to check existence for: thumb_%05d.jpg"
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vhar-ru
Могу ошибаться, но думаю потому, что в имени файла присутсвует %05d который при urldecode выдает нечитабельный символ.
Подозреваю, что вы упустили sprintf, если хотите сохранить несколлько кадров с добавлением номера.
Т.е. у вас должна быть некая переменная - счетчик кадров, скажем$frame и код в цикле

FFMpeg::openUrl($videoUrl)
            ->exportFramesByInterval(2)
            ->toDisk('s3Yandex')
            ->save(sprintf('thumb_%05d.jpg', $frame));
$frame++;
`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы