Последнее обновление:
Как разрезать видео на отдельные кадры в Linux
Иногда требуется посмотреть видео не «как обычно», а покадрово, т.е. в виде отдельных кадров, где каждый из них был бы представлен отдельной картинкой. Для этого можно использовать утилиту ffmpeg
. Если она еще не установлена, потребуется установка, например, при помощи команды:
sudo apt install ffmpeg
Потребуется ввести пароль и, конечно, нужен работающий интернет. После завершения установки в каталоге, где находится видео-файл, например, с именем video.mp4
, следует ввести команду:
ffmpeg -i video.mp4 image%d.jpg
Процесс раскадрирования продлится некоторое (небольшое) время, после чего в текущем каталоге появятся файлы с именами image1.jpg, image2.jpg, и т.д. С каждым их этих файлов можно работать, как с обычным графическим файлом формата jpg.
Как создать видео из отдельных картинок
Т.е. как объединить картинки в один цельный видеофайл. Например, команда создает видео в формате Flash (FLV):
ffmpeg -r 2 -i image%d.jpg -s 1080x1920 -y -an -r 24 videoOut.flv
-r 2
определяет частоту кадров во входном потоке (в данном случае - две картинки в секунду),
-i img%d.jpg
определяет шаблон для имён файлов с отдельными кадрами, т.е. в текущем каталоге должны присутствовать графические файлы (картинки) с именами img1.jpg, img2.jpg, img3.jpg
и т.д.
-s 1080x1920
масштабирует кадры (если изначально они имеют разный размер),
-y
определяет перезапись видеофайла с результатом без подтверждения пользователя,
-an
- не записывать звук,
-r 24
устанавливает частоту кадров в видеопотоке на выходе.
Если где-нибудь в середине команды добавить -sameq
, то качество картинок будет максимально сохранено, насколько это возможно.
Следующая команда создает видео в формате mp4
:
ffmpeg -framerate 24 -i image%d.jpg videoOut.mp4
Если не использовать опцию -framerate
, то как входной, так и выходной поток будет содержать по 25 кадров в секунду.
Как преобразовать видео в другой формат
Иногда требуется преобразовать видеофайлы из одного формата в другой. Скажем, в случае, если проигрыватель видеофайлов не поддерживает какой-либо формат, а видео представлено именно в нем. Например, команда
ffmpeg -i video.mp4 video1.avi
преобразует файл из формата mp4
в формат avi
. Точнее, создает новый файл, содержащий то же самое видео в формате avi.
Заключение
Вообще, утилита ffmpeg
в Linux – достаточно мощная, справка по ней (man
) – очень объемная, там описано много разных опций и возможностей. Единственное неудобство – то, что эта утилита – консольная, т.е. конкретный вид команды, ее опции необходимо знать, методом «тыка» мышью работать не получится. Кроме того, при обновлении могут меняться опции и их функциональность.