Я пытаюсь конвертировать видео в конфигурацию 1080p-Resolution; 18Mps-видео битрейт; От 30 кадров в секунду до 1080p; 18Mps; 60fps, используя ffmpeg на платформе Windows.

Я использую команду: ffmpeg -i input.avi -r 60 output.avi

Наблюдение: вместо преобразования только кадра в секунду, я наблюдаю, что скорость передачи видео также снижается до 4 Мбит / с.

Где я, должно быть, ошибся? Что я должен сделать, чтобы преобразовать только кадры в секунду? Я скучаю по основному пониманию того, как происходит конвертирование видео?

1 ответ1

0

Когда вы пытаетесь изменить любой аспект видео, FFMPEG перекодирует ваше видео, без указания дополнительных параметров, он выбирает некоторые варианты поведения по умолчанию. Скорость передачи битов изменяется в зависимости от параметров вывода по умолчанию для преобразования.

Если выходное видео выглядит нормально, не беспокойтесь об этом.

Если выходное видео выглядит более низкого качества, вы можете указать, что следует использовать выходное качество. Один из способов повлиять на качество вывода - аргумент -qscale в диапазоне от 1 (лучшее) до 31 (худшее) качество:

ffmpeg -i input.avi -r 60 -qscale 1 output.avi

Это позволит получать видео высокого качества с постоянной скоростью, но с переменным битрейтом.

На самом деле это может привести к увеличению размера файла. Вы можете регулировать общую скорость передачи данных с помощью опции -b:v, например, так:

ffmpeg -i input.avi -r 60 -b:v 18Mi -bufsize 18Mi output.avi

Это создаст файл, в котором каждая секунда видео может иметь длину до 18 * 2 ^ 20 бит. Другие битрейты, которые могут вас заинтересовать:

  • 18M - 18 * 10 ^ 6 бит в секунду
  • 18 МБ - 18 * 8 * 10 ^ 6 бит в секунду
  • 18 МБ - 18 * 8 * 2 ^ 20 бит в секунду

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .