FFMPEG изображения в видеоурок

Ffmpeg Images Video Tutorial



Итак, вы заинтересованы в создании видео на основе изображений? Программное обеспечение Linux также может помочь вам с этой задачей, особенно с одной: ffmpeg.

Если вы еще не знаете, ffmpeg - это программа, которая выполняет преобразование и редактирование видео и аудио с помощью фильтров. Это тот, который поддерживает наибольшее количество различных кодеков. Если вы уже использовали VLC, то вы немного знаете ffmpeg: VLC использует ffmpeg для декодирования как можно большего количества видео.







Но прежде чем снимать видео, мне нужно рассказать вам несколько концепций, чтобы вы не заблудились.



Интегрировать изображения в видео совсем несложно. И тому есть причина: видео основаны на серии изображений. Позволь мне объяснить.



Видео (даже видео на YouTube) - это набор неподвижных изображений, которые быстро меняются. В кино и кинотеатрах между каждым изображением есть черное изображение, потому что механизм должен переключать кадры и работал слишком медленно. Но это не заметно человеческому глазу, потому что механизм достаточно быстрый и из-за оптической иллюзии.





Но у компьютеров нет этой проблемы. ЖК-экраны просто продолжают отображать последнее изображение. В любом случае, вы можете извлечь независимое изображение из каждого изображения в видео. Когда изображение появляется из видео, оно называется Рамка . Это именно то, что вы видите, когда ставите видео на паузу - а когда вы так делаете, лица обычно не выглядят хорошо!

Как правило, видео из США содержат 30 кадров в секунду - осознать немного. Это 1800 кадров в минуту, 54000 кадров за полчаса видео или 108000 кадров в час . Это много, и поэтому иногда возникает вопрос, как одно изображение может весить 1 МБ, а одна минута видео 1080p может весить всего 15 МБ.



Количество изображений в секунду называется частота кадров . При скорости 30 кадров в секунду вы меняете изображение каждые 33 миллисекунды . Конкретно, если вы хотите снять одну минуту видео исключительно на основе ваших изображений, вам потребуется 1800 файлов в формате JPG или PNG в минуту.

Это полезно, если вы хотите выполнять расширенное редактирование видео без использования инструментов для работы с видео: вам просто нужно создать изображения для каждого кадра с вашими эффектами, а затем вы можете объединить их в видео. Но иногда вам нужно, чтобы неподвижное изображение сохранялось, потому что, ну, вы хотите, чтобы неподвижное изображение было в видео.

Хорошо, теперь пора установить ffmpeg.

Установите ffmpeg в Linux

В зависимости от вашего дистрибутива установка ffmpeg может быть простой или небольшой. сложный . Это бесплатное программное обеспечение с общедоступным исходным кодом, но, поскольку оно может декодировать или кодировать запатентованные форматы, такие как MP4, некоторые дистрибутивы исключают его из своих репозиториев. Например, в Red Hat Enterprise Linux, CentOS и Fedora вам нужен RPMFusion из-за патентов. Более того, все версии Debian и Ubuntu до 16.04 распространяют ложную версию ffmpeg, основанную на нелегитимной вилке.

Но прежде чем торопиться с установкой, может быть, уже установлена ​​нужная версия? Давайте проверим:

$ffmpeg -версия
ffmpegверсия X.XXXXXXXX Авторские права(c) 2000 г.-2018 г.разработчики FFmpeg

Если после копирайта вы все-таки видите разработчиков FFmpeg, у вас оригинальная версия FFMpeg, ничего делать не нужно. Однако, если вы видите:

$ffmpeg -версия
ffmpegверсия X.XXXXXXXX Авторские права(c) 2000 г.-2018 г.разработчики Libav

Значит, вы используете вилка из ffmpeg называется Libav. Debian и более старые версии Ubuntu тихо замените FFMpeg на Libav. Если он сообщает, что он устарел, не обращайте на него внимания, это вводит в заблуждение. Если у вас установлена ​​вилка, пора удалить вашу версию ложного ffmpeg, а затем следовать приведенному ниже руководству, чтобы установить правильную версию. Наверное так:

$судо apt-get remove ffmpeg

Так что теперь вы, возможно, еще не установили его или у вас неправильная версия, самое время установить его!

В Fedora, Red Hat Enterprise Linux (RHEL) и CentOS перейдите по ссылке https://rpmfusion.org/Configuration и включите бесплатный репозиторий RPMFusion на вашем компьютере. Затем, если вы работаете в Fedora, выполните:

$судоdnfустановить ffmpeg

А для CentOS и Red Hat Enterprise Linux выполните:

$судо ням установить ffmpeg

Это все для систем на базе Fedora и Red Hat, он установлен.

Во всех версиях Debian (и всех производных) и Ubuntu до 16.04 вам необходимо получить статическую сборку FFMpeg с официального сайта. Перейти к https://ffmpeg.org/download.html#build-linux и ниже Статические сборки Linux , нажмите на 32-битные и 64-битные для ядра 2.6.32 и выше . Затем ниже выпуск: X.X.X , скачайте соответствующий архив, распакуйте его, и вы сможете запускать исполняемые файлы, находящиеся в распакованной папке, через интерфейс командной строки.

Для тех, кто использует Ubuntu 16.04 и выше, это проще, просто выполните:

$судо apt-get install ffmpeg

Уф! Наконец-то мы должны быть готовы к работе! Перед тем как продолжить, проверьте в последний раз:

$ffmpeg -версия

ffmpeg версия X.XXXXXXXX Copyright (c) 2000-2018 разработчики FFmpeg

Создавайте видео из множества изображений

Итак, для нашего первого примера мы создадим видео из изображений, где каждое изображение представляет собой кадр, который будет отображаться в течение 33 миллисекунд. Позвольте мне сначала показать вам команду.

** MP4 и H.264 являются запатентованными кодеками, проверьте, имеете ли вы право кодировать с их помощью. **

$ffmpeg-r: v30 'Пингвины -% 05d.png'-codec: v libx264-предустановкаочень медленно
-pix_fmt yuv420p-crf 28 год -ан 'Penguins.mp4'

Хорошо, так как это работает? Чтобы эта команда работала, у вас должно быть много кадров, каждый из которых представляет собой файл типа Penguins - 00043.png. Затем эта команда объединит все кадры по порядку со скоростью 30 кадров в секунду. Итак, Penguins - 00043.png предшествует Penguins - 00044.png в видео, и ffmpeg будет уважать это. Итак, если у вас 120 кадров, ваше видео будет иметь продолжительность 4 секунды.

Для работы фреймов существует несколько требований к формату, ширине и высоте. Если вы не соблюдаете эти правила, ffmpeg может проигнорировать некоторые изображения или отменить процесс создания видео. Так:

  • Все кадры в одном видео должны иметь:
    • Ширина высота
    • Глубина цвета
  • Кадры должны быть стандартного размера видео, например:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Предпочитайте кадры в PNG, а не в JPG
  • Избегайте прозрачности или альфа-канала в формате PNG

Затем команде потребуется некоторое время, чтобы преобразовать видео, оптимизировать его производительность и создать файл MP4 с именем Penguins.mp4.

Теперь вы можете захотеть, чтобы неподвижное изображение оставалось более 33 миллисекунд. В этом случае ваше видео представляет собой скорее слайд-шоу, а не одно и то же. Для этого вы можете сначала указать более низкую частоту кадров для ввода, а затем указать ffmpeg дублировать кадры на выходе. Нет, YouTube и Vimeo не оценят видео со скоростью 0,5 кадра в секунду, даже если вы меняете изображение каждые 2 секунды.

Давай лучше сделаем это:

$ffmpeg-r: v1/5 'Пингвины -% 05d.png'-r: v30-codec: v libx264-предустановкаочень медленно
-pix_fmt yuv420p-crf 28 год -ан 'Penguins.mp4'

Итак, мы идем! ffmpeg заставит каждое из ваших изображений отображаться в течение 5 секунд, но в видео со скоростью 30 кадров в секунду. Не беспокойтесь о предупреждении о повторяющихся кадрах: это то, что вам нужно.

Заключение

Теперь ты ... новый спилберг - возможность создавать свои собственные видео. Вы можете сделать простое слайд-шоу или подготовить видео кадр за кадром с помощью редактора изображений, такого как GIMP, но вы также можете воспользоваться большим набором эффектов и кодеков, которые вы можете найти в ffmpeg.

Найдите время, чтобы поэкспериментировать сами - ты же художник, в конце концов - и создайте видео, которое наберет миллионы просмотров на YouTube!