Найти тему
Forlinx Embedded

Как добиться записи двойной камерой с помощью ffmpeg?

Оглавление

Команда

1. Запись видео не удалась с помощью команды ffmpeg -framerate 25 -f v4l2 -i /dev/video4 Recording1.mp4 . Согласно официальной документации ffmpeg, -r и -framerate имеют одну и ту же функцию, но фактический тест показывает, что они разные. -framerate используется для ограничения ввода, а -r используется для ограничения вывода

2. Видео можно записать с помощью команды ffmpeg -r 25 -f v4l2 -i /dev/video4 Recording1.mp4 , но возникнут такие проблемы, как ошибка кадра и повторение кадра.

3. Используйте ffmpeg -f v4l2 -r 25 -thread_queue_size 128 -i /dev/video4 -vcodec libx264 -b:v 800k-preset сверхбыстрая запись1.mp4 для одновременной записи видео с двух камер.

Описание параметра:

⚫ -f Установите формат вывода, формат вывода — кадр v412
(все найденные ранее команды используют фреймворк avfoundation, полнофункциональную инфраструктуру для обработки мультимедийных данных в iOS, macOS, watchOS и tvOS. В этом примере используется фреймворк v412). Команда представляет собой инфраструктуру для драйверов видеоустройств в ядре Linux, которая обеспечивает унифицированный интерфейс для уровня приложений и поддерживает гибкое расширение различного сложного оборудования).

⚫ -r Установить частоту кадров, установить частоту кадров 25 кадров в секунду.

⚫ -thread_queue_size
(Размер очереди_ потока применяется к первому входу, указанному после него. Термин «thread_queue_size» может применяться ко всем входам и определяется на уровне приложения. Сколько пакетов из этого входа можно поставить в очередь во время ожидания ffmpeg для получения и обработки их в своем основном потоке. Некоторые устройства захвата, в первую очередь dshow, используют «rtbufsize» для хранения входящих кадров, ожидая их передачи в очередь уровня приложения для этого ввода. Эти два параметра не настраиваются значение другого, поэтому их следует устанавливать вручную. Значение по умолчанию — 8. Общие предупреждения: блокировка очереди сообщений потока; рассмотрите возможность повышения параметра thread_queue_size (текущее значение: 8). Чтобы решить эту проблему, официальное объяснение: этот параметр устанавливает максимальное количество пакетов в очереди при чтении из файла или устройства (в потоках реального времени с низкой задержкой и высокой скоростью пакеты могут быть отброшены, если они не прочитаны своевременно; увеличение этого значения предотвращает это).

⚫ -i Установить входной поток, установить входной сигнал из видео4

⚫ -vcodec Установить видеокодер,(-vcodec и-codec:v равные значения)

Кодеры — это библиотечные файлы, реализующие определенный формат кодирования. Кодирование и декодирование видео/аудио в определенном формате возможно только в том случае, если установлен кодировщик для этого формата.

Вот некоторые из встроенных видеокодеров FFmpeg.

  • libx264: Самый популярный кодировщик H.264 с открытым исходным кодом.
  • NVENC: кодер H.264 на базе графического процессора NVIDIA.
  • libx265: кодер HEVC с открытым исходным кодом.
  • libvpx: кодировщики Google VP8 и VP9.
  • libaom:Кодер AV1

⚫ -B:v Битрейт видео

⚫ -preset определяет качество выходного видео, которое повлияет на скорость создания файла. Доступны следующие значения:

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

⚫ запись1.mp4 Имя и тип файла выходного видео. Вы можете использовать форматы ffmpeg, чтобы получить все типы файлов, поддерживаемые ffmpeg, где аннотация перед файлом выглядит следующим образом:

D.=Поддерживается демультиплексирование (Поддержка инкапсуляции видео/аудио)
. E=Поддерживается мультиплексирование (Поддержка декапсуляции видео/аудио).

Метод:

Программное обеспечение:

⚫ Убунту:

1. Сеть платы разработки.

2. Обновление sudo apt-gat обновляет apt-gat до последней версии (необязательно).

3. sudo apt-get install ffmpeg использует apt-gat для получения ffmpeg

4. Введите соответствующие команды.

Аппаратное обеспечение:

Подключите самодельный аналоговый модуль камеры Forlinx для поддержки двух камер. Video4-7 — это узлы, генерируемые TVIN, причем верхний левый соответствует видео7, нижний левый соответствует видео6, нижний правый соответствует видео5, а верхний правый соответствует видео4. Выбирайте в соответствии с реальной ситуацией.

Первоначально опубликовано на www.forlinx.net.