Как прочитать поток h264 в виде файла с веб-камеры USB непосредственно в c / c ++ без использования opencv?

Я могу читать видеофайл формата h264 и делать некоторые выводы из машинного обучения. Код работает абсолютно нормально для ввода из файла. Ниже приведен пример кода из Deepstream SDK

FileDataProvider(const char *szFilePath, simplelogger::Logger *logger)
: logger_(logger)
{
fp_ = fopen(szFilePath, "rb");

//fp_ = fopen("/dev/video0", "rb");if (nullptr == fp_) {
LOG_ERROR(logger, "Failed to open file " << szFilePath);
exit(1);
}
pLoadBuf_ = new uint8_t[nLoadBuf_];
pPktBuf_ = new uint8_t[nPktBuf_];
assert(nullptr != pLoadBuf_);
}
~FileDataProvider() {
if (fp_) {
fclose(fp_);
}
if (pLoadBuf_) {
delete [] pLoadBuf_;
}
if (pPktBuf_) {
delete [] pPktBuf_;
}
}

Что такое требование?

  • Вместо этого прочтите видеокамеру с веб-камеры Logitech C920.
  • Я знаю, как читать с веб-камеры с помощью OpenCV. Но я не хочу использовать opencv здесь.

Мое исследование

  • Используя v4l, мы можем получить поток и отобразить его в vlc.
  • Камера поддерживает следующие форматы.

@ubox: ~ $ v4l2-ctl —device = / dev / video1 —list-форматы

ioctl: VIDIOC_ENUM_FMT Индекс: 0 Тип: захват видео
Формат пикселя: ‘YUYV’ Название: YUYV 4: 2: 2

Индекс: 1 Тип: пиксель видеозахвата Формат: ‘H264’
(сжатое) Имя: H.264

Индекс: 2 Тип: пиксель видеозахвата Формат: ‘MJPG’
(сжатое) Название: Motion-JPEG

Как это сделать?
— Теперь, как кормить этот прямой эфир в
приведенный выше пример кода такой, что он читает с веб-камеры, а не из файла?

[Обновление-1]
— Другими словами, есть ли в v4l некоторые опции для записи видеопотока в формате h264? Таким образом, я могу прочитать этот файл, как раньше (код выше), когда его (v4l) записывается на диск.

[Обновление-2]
— мы можем использовать FFmpeg вместо v4l. Если какие-либо решения для использования ffmpeg для непрерывного сохранения видеопотока на диск, чтобы другие программы считывали этот файл?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]