Как подсчитать общее количество кадров в видео в Linux с помощью FFmpeg?

Подсчет видеокадров может быть полезен в различных сценариях, например, при редактировании видео, анализе качества или определении частоты кадров.

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

В этой статье мы расскажем вам, как использовать FFmpeg в Linux для подсчета видеокадров.

Установка FFmpeg в Linux

Если в вашей системе Linux не установлен FFmpeg, используйте следующую команду для установки FFmpeg.

sudo apt install ffmpeg         [On Debian, Ubuntu and Mint]
sudo yum install ffmpeg         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/ffmpeg  [On Gentoo Linux]
sudo apk add ffmpeg             [On Alpine Linux]
sudo pacman -S ffmpeg           [On Arch Linux]
sudo zypper install ffmpeg      [On OpenSUSE]    
sudo pkg install ffmpeg         [On FreeBSD]

Использование FFmpeg для подсчета видеокадров

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

Чтобы подсчитать количество кадров в видео, используйте следующую команду:

ffmpeg -i video.mp4 -map 0:v:0 -c copy -f null -

Пояснение к команде:

  • ffmpeg: Запускает программу FFmpeg.
  • -i video.mp4: Указание входного видеофайла.
  • -map 0:v:0: Сопоставляет первый видеопоток (основное видео).
  • -c copy: Копирует видеокодек без повторного кодирования (более быстрая обработка).
  • -f null -: Отправляет вывод в нулевой сток (отбрасывает вывод).

FFmpeg отобразит вывод в терминале, включая статистику для каждого обработанного кадра. В конце вывода ищите строку, показывающую количество обработанных кадров.

frame= 4926 fps=0.0 q=-1.0 Lsize=N/A time=00:03:16.96 bitrate=N/A speed=1.97e+04x

Значение frame представляет собой общее количество кадров в видео. Например, если отображается frame= 4926, это означает, что в видео есть 4926 кадров.

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

ffmpeg -i video.mp4 -map 0:v:0 -c copy -f null - 2>&1 | grep "frame=" > frame_count.txt

Откройте файл frame_count.txt, чтобы увидеть общее количество кадров.

cat frame_count.txt

Образец вывода:

frame= 4926 fps=0.0 q=-1.0 Lsize=N/A time=00:03:16.96 bitrate=N/A speed=2.15e+04x

Использование FFprobe для подсчета видеокадров

FFprobe, еще один инструмент из набора FFmpeg, может напрямую извлекать информацию о кадрах без декодирования видео. Часто это быстрее, чем использование FFmpeg для подсчета кадров.

Чтобы подсчитать кадры с помощью ffprobe, используйте следующую команду:

ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of csv=p=0 video.mp4

Эта команда выведет общее количество кадров в виде одного числа.

4926

Заключение

Подсчитать количество кадров в видеоролике легко с помощью FFmpeg в Linux, и для этого существует несколько различных способов. Самый прямой способ – использовать команду -f null - с FFmpeg, но вы также можете использовать FFprobe для более быстрого результата.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)