Насколько я знаю OpenCV Не имеет функционала получения видео. Она использует кодеки вроде VLC, FFMEPG, Gstreamer.
Исходники большинства кодеков доступны и лежат гитлабах, гитхабах, вы их легко найдете. Там весь этот исходный код есть.
Но для использования в продуктах вручную ничего писать не советую, вы очень много чего не учтете. На это нужны годы и тысячи пользователей вашей библиотеки.
А если вы хотите изучить это для опыта, то советую разобрать протокол RTSP. Веб камеры мало где применяются, а все остальные камеры обычно используют RTSP, UDP или Http протокол.
RTSP насколько я представляю работает так: На камере ставить RTSP сервер, клиент на удаленной программе подключается к этому серверу и может отправить команду PLAY - начать проигрывание, после чего сервер начинает непрерывно посылать клиент кадры(Обычно сжатые), STOP, PAUSE.
по UDP с камеры просто идут картинки в сжатом или не сжатом виде. Это быстро, но ошибки передачи не как не исправляются, иногда видео будет моргать.
по HTPP также, как под UDP просто на GET запрос в ответ присылают картинки в ответ.