Команда
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.