Как конвертировать MP4 в SWF

4

Может кто-нибудь дать мне параметры командной строки для FFmpeg для преобразования видео MP4 в файл Adobe Flash SWF?

Майкл
источник

Ответы:

6

В основном, вот так:

ffmpeg -i in.mp4 out.swf

По умолчанию будет конвертироваться видео в Sorenson Spark (H.263 или известное как flv1) и аудио в MP3 с использованием любого MP3-кодера, который есть у вашего FFmpeg - возможно libmp3lame.

Если вам нужно изменить качество видео, у вас есть два варианта:

  • добавьте -qscale:vопцию после -i in.mp4со значением от 1 до 31, где более высокое означает более низкое качество (попробуйте сначала 2 или 3). Это настройка VBR.

  • добавить -b:vопцию с битрейтом, например 1Mили 500K. Конечно, это настройка CBR, которая может привести к снижению качества изображения в зависимости от размера файла.

Для аудио:

  • добавьте -q:aопцию для VBR MP3, со значениями от 0 до 7, 0 - лучшее качество.

  • добавить -b:aопцию для CBR MP3, например, с 192K.


Попробуйте вместо этого преобразовать видео в контейнер FLV, который будет обрабатывать большее количество кодеков, чем SWF (который поддерживает только H.263, VP6 или Motion JPEG).

Это позволит вам использовать видео H.264 и аудио AAC, что обеспечит вам лучшее качество при меньших размерах файлов по сравнению с вариантом H.263 / MP3 в SWF-файлах. У вас может даже быть возможность скопировать потоки битов, что вовсе не будет означать снижения качества.

ffmpeg -i in.mp4 -c copy out.flv

Если это не сработает, перекодируйте:

ffmpeg -i in.mp4 -c:v libx264 -c:a aac -strict experimental -b:a 192K out.flv

Это будет использовать кодер x264. Чтобы изменить качество видео здесь, у вас есть следующие варианты:

  • добавьте -crfопцию после -i in.mp4со значением от 0 до 51, где ниже означает лучшее качество. По умолчанию 23, а вменяемые значения от 18 до 28.

  • добавить -b:vопцию, аналогичную описанной выше для режима постоянной скорости

См. Руководство по кодированию x264 в FFmpeg wiki для получения дополнительной информации.

slhck
источник
Знаете ли вы, можно ли задать свойство сглаживания объекта видеоизображения? (обычно это свойство, которое вы устанавливаете для видеодисплея, используя имя его экземпляра, например videoObj.smoothing = true)
Якоб Штернберг