Если вы еще этого не знаете, 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 -versionffmpeg версии X.XXXXXXXX Copyright (c) 2000-2018 разработчики FFmpeg
Если после копирайта вы видите «разработчики FFmpeg», значит у вас оригинальная версия FFMpeg, ничего делать не нужно. Однако, если вы видите:
$ ffmpeg -versionffmpeg версии X.XXXXXXXX Copyright (c) 2000-2018 разработчики Libav
Тогда это означает, что вы используете вилка ffmpeg называется Libav. Debian и более старые версии Ubuntu тихо заменить FFMpeg на Libav. Если он сообщает, что он устарел, не обращайте на него внимания, это вводит в заблуждение. Если у вас установлена вилка, пора удалить вашу версию ложного ffmpeg, а затем следовать руководству ниже, чтобы установить правильную версию. Наверное так:
$ sudo apt-get удалить ffmpegИтак, теперь вы, возможно, еще не установили его или у вас неправильная версия, пора его установить!
В Fedora, Red Hat Enterprise Linux (RHEL) и CentOS перейдите по адресу https: // rpmfusion.org / Configuration и включите бесплатный репозиторий RPMFusion на вашем компьютере. Затем, если вы используете Fedora, выполните:
$ sudo dnf установить ffmpegА для CentOS и Red Hat Enterprise Linux выполните:
$ sudo yum install ffmpegЭто все для систем на базе Fedora и Red Hat, он установлен.
Во всех версиях Debian (и всех производных) и Ubuntu до 16.04, вам необходимо получить статическую сборку FFMpeg с официального сайта. Перейдите на https: // ffmpeg.org / download.html # build-linux и ниже "Статические сборки Linux", нажмите на "32-битные и 64-битные для ядра 2.6.32 и выше”. Затем ниже «выпуск: X.Икс.Икс”, Загрузите соответствующий архив, распакуйте его, и вы сможете запускать исполняемые файлы, находящиеся в распакованной папке, через интерфейс командной строки.
Для тех, кто использует Ubuntu 16.04 и выше, это проще, просто выполните:
$ sudo apt-get install ffmpegУф! Наконец, нам должно быть хорошо идти! Перед тем как продолжить, проверьте в последний раз:
$ ffmpeg -versionffmpeg версии X.XXXXXXXX Copyright (c) 2000-2018 разработчики FFmpeg
Создавайте видео из множества изображений
Итак, для нашего первого примера мы создадим видео из изображений, где каждое изображение представляет собой кадр, который будет отображаться в течение 33 миллисекунд. Позвольте мне сначала показать вам команду.
** MP4 и H.264 являются запатентованными кодеками, проверьте, имеете ли вы право кодировать с их помощью. **
$ ffmpeg -r: v 30 -i "Пингвины -% 05d.png "-codec: v libx264 -preset veryslow-pix_fmt yuv420p -crf 28 -an "Пингвины".mp4 "
Хорошо, так как это работает? Чтобы эта команда работала, у вас должно быть много кадров, каждый из которых представляет собой файл, например Penguins - 00043.PNG. Затем эта команда объединит все кадры по порядку со скоростью 30 кадров в секунду. Итак, Пингвины - 00043.png идет раньше пингвинов - 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: v 1/5 -i "Пингвины -% 05d.png "-r: v 30 -codec: v libx264 -preset veryslow-pix_fmt yuv420p -crf 28 -an "Пингвины".mp4 "
Вот мы идем! ffmpeg заставит каждое из ваших изображений отображаться в течение 5 секунд, но в видео с частотой 30 кадров в секунду. Не беспокойтесь о предупреждении о повторяющихся кадрах: это то, что вам нужно.
Заключение
Теперь ты - новый спилберг - возможность создавать свои собственные видео. Вы можете сделать простое слайд-шоу или подготовить видео кадр за кадром с помощью редактора изображений, такого как GIMP, но вы также можете воспользоваться большим набором эффектов и кодеков, которые вы можете найти в ffmpeg.
Найдите время, чтобы поэкспериментировать самостоятельно - ты же художник, в конце концов - и создайте видео, которое наберет миллионы просмотров на YouTube!