Где бы вы реализовали сжатие изображения и видео (сервер или клиент)?
Последовательные действия пользователя:
1) Фотографирует / снимает объект (ограничение на видео 10 секунд)
(Почему нельзя просто сказать камере, в каком качестве снимать? По тому что не на всех устройствах приложение "камера" понимает эти ограничения, по крайней мере так говорят, например, на stackoverflow (нет, я не задавал там этот вопрос, просто проверял разные варианты))
2) Нажимает на кнопку, после которой происходит магия
Магия:
1) Отправка изображения на сервер
2) Рассылка изображения на устройства ~5 других людей
Стоит вопрос - где производить фото/видео сжатие? С 1 стороны делать её на клиенте "не хорошо", по тому что он выступает в роли "интерфейса", что-то типа "тонкого клиента", с другой делать её на сервере - затратно.
В силу своей неопытности (студент) я не могу точно сказать на сколько затратны данные операции (если они слишком ресурсоемки, то проводить на клиенте их категорически нельзя), посему стоит вопрос - на сколько трудозатратны данные операции?
PS Стоит так же учесть и интернет-соединение клиента, для которого сжатие фото/видео несомненно является плюсом (в основном мобильный интернет).
Я тут вообще проходом и как раз таки бэк - энд разработчик, но позволю себе ответить. Как вы представляете передачу пусть даже 10 секунд 4к видео по мобильному интернету? Да, есть lte у девайсов умеющих 4к, но тем не менее, я думаю это не целесообразно. Хотя я в клиент сайд программировании полный ноль, так что не воспринимайте всерьез.
На клиенте сжатие еще более затратно. Батарейка будет жраться - мама не горюй. Плюс неприятное ожидание и тормоза у пользователя
С другой стороны - каналы связи. Если ваше приложение только на Wi-Fi, то можете и не сжимать на клиенте.
Короче, дилемма.
Что касается серверного сжатия - то оно нисколько не затратно. Есть специализированные сервисы (не Youtube, а сырые, для создания своих видеосервисов), которые за небольшую денежку на своем специальном железе будет и сжимать и хранить и отдавать видео в нескольких разрешениях и форматах.
Я не видел такого, чтобы можно было получить raw с камеры. Чтобы пережать на устройстве - вам сначала придется распаковать, потом опять запаковать. Резонный вопрос - зачем? Имхо, если нужно сжимать - то только серверсайд. На устройстве это будет до боли в зубах затратно.