Сжимайте видео, как whatsapp

Я не эксперт в области редактирования видео, но я хочу понять логику обработки видео Whatsapp.

Первый из всего, что я заметил, что независимо от файла, Whatsapp устанавливает предел загруженных видео на 16 МБ, после чего whatsapp обрезает видео, чтобы он не превышал предел. это конвенция или это личный выбор?

Во-вторых. Когда видео записывается с использованием камеры, оно не сжимается по умолчанию, поэтому whatsapp сжимает его, используя FFMPEG, я думаю, и это не требует времени. (пробовал для видео 1мин 1920x1080 с размером 125 МБ, становится без изменений 640x360 с 5 МБ размера, и загрузка начинается автоматически).. как они могут это сделать? и почему выбор 640x360. Мне кажется очень быстрым для двух асинхронных задач: Сжатие + Загрузка.

Когда я запускаю команду сжатия ffmpeg -y -i in.mp4 -codec:v libx264 -crf 23 -preset medium -codec:a libfdk_aac -vbr 4 -vf scale=-1:640,format=yuv420p out.mp4, она занимает приблизительно 1 мин, и видео поворачивается!!: D

Наконец, когда мы загружаем видео с Youtube, оно уже сжато (я думаю), и whatsapp даже не пытается его сжать. Поэтому я думаю, что он автоматически обнаруживает, что видео сжато. Как мы можем это обнаружить?

Спасибо.

Ответы

Ответ 1

Ниже приведены ответы на ваши вопросы:

Quest. 1: Его личный выбор. Команда whatsapp пытается предложить пользователям пользовательский интерфейс (UX), который они могут использовать для пользователей своего приложения, поэтому они сохранили предел в 16 МБ для видеофайла. Представьте, сколько времени потребуется, чтобы загрузить файл размером около 125 МБ. Следовательно, приложение сжимает файл для более быстрой загрузки и без проблем.

Quest. 2: Думаю, вы уже сами ответили на этот вопрос - асинхронное программирование. Большой видеофайл, который вы его кормите, кодируется в сжатый формат в соответствии с алгоритмом, который они пишут для приложения. Как Devs., Мы все знаем об алгоритмах, и все мы знаем, что есть вещи, которые вы можете сделать, чтобы ускорить выполнение. Я предполагаю, что они реализовали свой собственный алгоритм, используя асинхронное программирование, которое ускоряет процесс. Библиотека ffmpeg, которую вы упомянули, я предполагаю, был закодирован в C, который, я думаю, не поддерживает асинхронный вызов (хотя это не так уж верно). После этого загрузка загружается.

Quest. 3 & Наконец: кодеки - это стандарты. Если вы кодируете видеофайл в MPEG4, попробуйте снова его перекодировать в MPEG4, даже используя другую программу, вы получите тот же результат, насколько обе программы используют одни и те же стандарты кодирования, то есть не реализовали конкретный алгоритм для их программ (это требует многолетней работы). Итак, когда ваш Whatsapp пытается закодировать файл, он дает тот же результат.

Надеюсь, что я смог ответить на ваши вопросы.

MichVeline