Как мне конвертировать анимированный gif в mp4 или mv4 через командную строку?

Вопрос или проблема

Какую команду я должен использовать, чтобы конвертировать видеофайл mp4 или mv4 в анимированный gif и наоборот? То есть, конвертировать анимированный gif в mp4 или mv4.

Вот что сработало для меня:

ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4

movflags – Эта опция оптимизирует структуру MP4 файла, чтобы браузер мог загружать его как можно быстрее.

pix_fmt – MP4 видео хранит пиксели в различных форматах. Мы включаем эту опцию, чтобы указать конкретный формат, который имеет максимальную совместимость со всеми браузерами.

vf – MP4 видео, использующее H.264, должно иметь размеры, которые делятся на 2. Эта опция обеспечивает выполнение этого условия.

Источник: https://web.archive.org/web/20160805113301/http://rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video

В моем случае использование ffmpeg напрямую решило проблему и дало лучший результат:

$ ffmpeg -f gif -i infile.gif outfile.mp4

Примечание: важным является указание -pix_fmt yuv420p, иначе ваше видео может выглядеть как черный прямоугольник в различных инструментах:

$ ffmpeg -i animated.gif -pix_fmt yuv420p output.mp4

Ссылки

Если вы хотите сделать вывод в “n циклов”, посмотрите это решение за один раз

Итак, давайте конвертируем normal.gif в loop.mp4

например, для 2 циклов:

ffmpeg -stream_loop 2 -i normal.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y

например, для 5 циклов:

ffmpeg -stream_loop 5 -i my.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y

обратите внимание: есть -y опция, так что выходные файлы будут перезаписаны

-vf опция предназначена для решения пропорциональности соотношения [ширина к высоте]

Другой способ конвертировать GIF-анимацию в видео:

ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4

-crf значения могут варьироваться от 4 до 63. Меньшие значения означают лучшее качество.
-b:v это максимальная разрешенная скорость передачи данных. Большее значение означает лучшее качество.

Ответ или решение

Для конвертации анимированного GIF в видео в формате MP4 или MV4 через командную строку самым распространенным и мощным инструментом является FFmpeg. Этот инструмент предоставляет широкий спектр возможностей для обработки видео и аудио файлов.

Шаги для конвертации GIF в MP4/MV4:

  1. Установка FFmpeg:
    Убедитесь, что FFmpeg установлен на вашем компьютере. Это можно сделать, выполнив следующую команду в командной строке:

    ffmpeg -version

    Если программа не установлена, её можно скачать и установить с официального сайта FFmpeg.

  2. Основная команда для конвертации GIF в MP4:
    Чтобы выполнить конвертацию, используйте следующую команду:

    ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
    • -i animated.gif: указывает входной файл.
    • -movflags faststart: оптимизирует структуру MP4 файла, обеспечивая более быструю загрузку в веб-браузерах.
    • -pix_fmt yuv420p: задаёт цветовой формат, совместимый с большинством видеоплееров и веб-браузеров.
    • -vf "scale=trunc(iw/2)2:trunc(ih/2)2": обрезает размеры, чтобы они были четными, что обязательно для видео в формате H.264.
  3. Добавление циклов в видео:
    Если вы хотите задать количество циклов для видео, вы можете использовать опцию -stream_loop. Например:

    ffmpeg -stream_loop 2 -i normal.gif loop.gif -y; ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y

    Здесь -stream_loop 2 указывает, что GIF будет повторяться дважды.

  4. Альтернативный способ конвертации:
    Вы также можете использовать другую команду, которая обеспечивает разное качество вывода:

    ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
    • -c:v libvpx: использует кодек VP8 для кодирования видео.
    • -crf 12: значение, контролирующее качество видео, где меньшие значения означают лучшее качество.
    • -b:v 500K: максимальный битрейт. Чем выше значение, тем лучше качество.

Заключение

Используя FFmpeg, вы можете легко конвертировать анимированные GIF в MP4 или MV4 с помощью командной строки. Программа предлагает Flexible возможности для настройки параметров кодирования, что позволяет достичь оптимального качества и совместимости. Рекомендуется ознакомиться с документацией к FFmpeg, чтобы использовать все его функции по максимуму.

Если у вас возникают дополнительные вопросы по использованию FFmpeg или обработке мультимедийных файлов, не стесняйтесь их задавать.

Оцените материал
Добавить комментарий

Капча загружается...