Может кто-нибудь дать мне параметры командной строки для FFmpeg для преобразования видео MP4 в файл Adobe Flash SWF?
1 ответ
В основном, вот так:
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 вики для получения дополнительной информации.