Ответы:
В основном, вот так:
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 для получения дополнительной информации.