2016-04-30 2 views
0

У меня есть видео с 120 МБ. Мне нужно уменьшить его размер до 20 МБ без изменения его качества. Есть ли какая-то прямая команда ffmpeg, которую я могу запустить?Как уменьшить размер видео в МБ с помощью ffmpeg?

Я знаю команды для уменьшения размера видео в зависимости от определенных временных интервалов и разрешения. Есть ли способ ffmpeg уменьшить размер в МБ?

+1

'Мне нужно уменьшить его размер до 20 МБ без изменения его качества.' lol. Когда вы узнаете, как это сделать, обязательно напишите патент, вы станете миллионером :) –

+0

Это ужасно помечено, а не по теме. Пожалуйста, обратите внимание на теги в будущем. Благодаря! –

ответ

3

Мне нужно уменьшить его размер [..], не меняя его качества.

Это вообще невозможно.

У меня есть видео 120 МБ. Мне нужно уменьшить его размер до 20 МБ

Добро пожаловать в видеокодирование (и аудиокодирование). Расскажите нам о входном файле. Пробег:

ffprobe input 

Это расскажет нам, как файл в настоящее время кодируется. Затем, давайте работать над его перекодировкой. Во-первых, я предполагаю, что вы не хотите изменять разрешение/частоту кадров, поэтому мы будем придерживаться этого же. Во-вторых, давайте выберем видеокодек/кодировщик. В зависимости от параметров, встроенных в двоичный файл ffmpeg, типичными параметрами являются H.264 (x264), VP9 (libvpx) или HEVC (x265).

Существуют различные способы кодирования видео (CRF 2-pass, VBR 2-pass), так что вы выбираете? Поскольку вы хотите видео определенного размера, вы хотите, чтобы VBR (CRF, если вы хотите, чтобы он был определенного качества и не заботился о размере). Как вы вычисляете битрейт? ffprobe говорит вам, продолжительность видео (в секундах), и целевой битрейт рассчитывается как:

target_rate_bits_per_second = target_size_bytes * 8/duration_seconds 

И затем использовать этот битрейт в качестве значения для -b:v опции в каждой переменной команде битрейта я просто связан с.

[править] Предполагая, что у вас есть звук, распределите доступные биты между потоками видео и аудио, чтобы общая сумма битрейта давала 20 МБ. Также предположим немного накладных расходов на контейнер. [/ edit]

Смежные вопросы