6

Я занимаюсь разработкой приложения для Android, которое конвертирует mp4 файлы в gifs с помощью ffmpeg . Проблема в том, что сгенерированные гифки огромны по размеру. И еще одна проблема заключается в том, что я не могу использовать ничего, кроме ffmpeg(например, imagemagick для convert или даже palletes на данный момент), чтобы уменьшить размер сгенерированного GIF.

я использую эту команду:ffmpeg -y -i file.mp4 -pix_fmt rgb24 -r 10 -s 320x480 file.gif

Так есть ли другой способ оптимизировать конверсию?

2 ответа2

4

Стандартный способ использования ffmpeg для GIF

Создать палитру из видео

ffmpeg -y -i file.mp4 -vf palettegen palette.png

Затем,

ffmpeg -y -i file.mp4 -i palette.png -filter_complex paletteuse -r 10 -s 320x480 file.gif

Дополнительные параметры описаны здесь.

1
vid=       
start_time=00:00:01
duration=5       
height=ih/2      # input height halved , can replace with pixils . 
width=-2         # keeps aspect ratio . can replace with pixils . 
fps=25           # frames per a second .

filters="fps=$fps,scale=$width:$height:flags=lanczos"

ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -vf "$filters,palettegen"                   \
       -y  palette.png                             &&
ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -i  palette.png                                \
       -lavfi "$filters [x]; [x][1:v] paletteuse"  \
       -y  "$vid".gif                              &&
rm palette.png 

ссылка на документацию

больше информации

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