Вопрос или проблема
Какую команду я должен использовать, чтобы конвертировать видеофайл 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. Эта опция обеспечивает выполнение этого условия.
В моем случае использование 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:
-
Установка FFmpeg:
Убедитесь, что FFmpeg установлен на вашем компьютере. Это можно сделать, выполнив следующую команду в командной строке:ffmpeg -version
Если программа не установлена, её можно скачать и установить с официального сайта FFmpeg.
-
Основная команда для конвертации 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.
-
Добавление циклов в видео:
Если вы хотите задать количество циклов для видео, вы можете использовать опцию-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 будет повторяться дважды. -
Альтернативный способ конвертации:
Вы также можете использовать другую команду, которая обеспечивает разное качество вывода: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 или обработке мультимедийных файлов, не стесняйтесь их задавать.