Как автоматически сжимать фото / видео для сайта при загрузке? - PullRequest
0 голосов
/ 19 ноября 2018

Я работаю над сайтом, на котором я даю пользователям возможность загружать картинки и видео, как бы я автоматически сжимал эти видео / картинки на стороне сервера, прежде чем сохранять их на своем сервере / базе данных. потому что я не хочу, чтобы необычно большие файлы замедляли работу моего веб-сайта, если бы я загружал сам, я, очевидно, мог бы изменять размеры и оптимизировать себя, но есть ли способ, которым я могу сделать это автоматически для своих пользователей?

1 Ответ

0 голосов
/ 19 ноября 2018

Ну, это широкий вопрос, и ответ зависит от типа файлов и алгоритма, который вы решите выбрать.

Для изображений вы можете просто использовать JPG и выбрать желаемый процент качества (чем меньше, тем лучшеразмер, но хуже выглядит результирующая картинка).Пример: http://blog.clonesinfo.com/how-to-reduce-compress-image-file-size-uploading-using-php-code/

Если вам нужны дополнительные параметры или, например, качество без потерь, вам определенно стоит поискать какую-нибудь библиотеку или инструмент, посмотрите в этом вопросе дополнительную информацию: Какой метод PHP самый лучшийуменьшить размер изображения без потери качества

Для видео это становится немного сложнее, поскольку для уменьшения размера видео требуется его перекодирование, а также выбор правильных настроек (кодек, который вы обычно выбираете)будет наиболее совместимым и эффективным - H.264 или что-то вроде VP9 от Google).Обратите внимание, что перекодирование требует значительных вычислительных ресурсов на вашем сервере (может возникнуть проблема, если видео будет длинным и большим).Кодирование видео - это очень широкая тема, которую я не могу охватить здесь в 1 ответе. Вы можете начать с поисков работы H.264.

Для кодирования видео вам также понадобится инструмент, вероятно, лучшийвыбор будет ffmpeg / avconv, плюс некоторая библиотека PHP, чтобы упростить использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...