Полагаю, вы хотите сделать это программно:
Для Windows:
Вы можете использовать directshow для перекодирования видео, создав график фильтра.
Получите (если у вас его еще нет) SDK платформы для Windows. Затем перейдите по ссылке, чтобы посмотреть некоторые примеры DirectShow, которые строят графы фильтров для транскодирования.
Для сборки вам понадобятся базовые классы. Вы можете построить их здесь:
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses
Тогда ознакомьтесь с примерами здесь:
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow
Вы также можете вручную создавать графики фильтров, чтобы понять, как они используются, и посмотреть, как эти вещи имеют смысл (например, перечисление кодеров, о которых вы узнаете в примерах):
C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe
Как только вы зайдете так далеко и поймете, как работает DirectShow, вы можете использовать математику, чтобы выяснить, как перекодировать видео, чтобы оно соответствовало желаемому размеру. Для этого вы можете посмотреть, сколько кадров / сек у входного видео и насколько велик каждый кадр.
Различные кодировщики работают по-разному:
Предположим, что вы перекодируете AVI-файл в AVI-файл меньшего или меньшего качества. Посмотрите на ваши входные размеры кадров и число кадров в секунду, чтобы определить полный размер файла, затем используйте некоторую алгебру, чтобы выяснить, как уменьшить размер кадра или уменьшить количество кадров в секунду (или их комбинацию) для достижения желаемого размера (который может быть ваша входная переменная).
Что касается других кодировщиков, вы можете посмотреть, как они работают. Кодеры с потерями, такие как mp4, выполняют оценки, чтобы выяснить, какое видео изменилось от кадра к кадру, и эта информация сохраняется в файле для восстановления кадров. Вам нужно будет прочитать о том, как они работают, или узнать, как использовать ваш конкретный кодер, для получения более подробной информации.
Для Linux (а также Windows):
Вы можете использовать ffmpeg , который является универсальным для транскодирования и прочего для видео. Вы даже можете найти готовый exe-файл приложения командной строки, хотя на главной странице его нет (только исходный текст). Это приложение использует видео библиотеки с открытым исходным кодом, чтобы сделать много транскодирования видео, а также многое другое. Если вы можете найти хороший надежный исполняемый файл, вам, вероятно, стоит проверить это, если вы хотите что-то простое в использовании для вашего приложения. Проверьте их домашнюю страницу здесь.
Надеюсь, это поможет вам.