я работал на видео-сайте [platform: php], где мне нужно загружать видео на сервер Amazon S3 и извлекать миниатюру.
Я создал ведро и загруженный видеофайл в этом ковше. Но я не знаю, как извлечь эскиз из этого загруженного видео. Итак, вот где я застрял.
Любая помощь будет оценена. Заранее спасибо!
Здесь у вас есть варианты.
Сначала вы можете «извлечь» миниатюру из видео, прежде чем загружать его в AWS. Что-то вроде: загружайте видео на свой сервер, при необходимости конвертируйте его в соответствующий формат, эскиз (или миниатюры), сохраните их где-нибудь (например, на S3 или на локальном сервере), а затем загрузите видео на S3. Отказ от этого метода заключается в том, что вашему локальному серверу придется выполнять много дополнительной работы, а не обслуживать посетителей вашего веб-сайта.
Во-вторых, вы можете использовать компьютерную службу Amazon EC2 для этого: загружать видео на S3, запускать EC2 (например, с заданиями cron), чтобы взять видео с S3, преобразовать его, взять эскизы и загрузить окончательный результат (преобразованное видео + миниатюры) обратно S3. Дисквалифицированы: не так просто реализовать эту «связь» (вам придется решить множество проблем, например, обеспечить стабильные преобразования, создать очереди заданий и т. Д.), Плюс вам придется использовать еще одну услугу AWS вместе с S3.
Что такое конвертация видео и получение миниатюр? Для этого есть много инструментов и программ. Мне нравится использовать ffmpeg для конвертирования видео (также есть PHP-обертка для использования ее функций с php- php-ffmpeg , но использование самого ffmpeg (например, с помощью функции php's exec () ) даст вам больше гибкости и возможностей, пожалуйста, прочитайте документацию для более подробной информации ). FFMpeg также может извлекать эскизы из видео, но требуется некоторое время (есть много дискуссий о том, как это сделать эффективно), но я бы предложил вам использовать ffmpegthumbnailer для этой цели. Он имеет более простое использование и оптимизирован специально для получения миниатюр из видеофайлов.
Вы должны сделать это на машине, которую вы используете для загрузки. Здесь у вас есть прямой доступ к файловому файлу. Как только он находится в S3, он доступен только через HTTP.
Инструмент ffmpeg можно использовать для создания миниатюр многих видеоформатов.
Пример:
ffmpeg -i "video.flv" -ss 00:00:10 -f image2 "thumbnail.jpg"
Создал бы миниатюру на видео второй 10 и сохранил бы ее как thumbnail.jpg При использовании PHP вы можете использовать system
для выполнения