5

Я хочу использовать IP-камеру с webrtc. Однако webrtc поддерживает только веб-камеры. Поэтому я пытаюсь преобразовать поток IP-камеры в виртуальную веб-камеру.

Я нашел программное обеспечение, такое как IP Camera Adapter, но оно не работает хорошо (2-3 кадра в секунду и задержка 2 секунды), и они работают только в Windows, я предпочитаю использовать Linux (если это возможно).

Я пытаюсь ffmpeg/avconv: -первый, я создал виртуальное устройство с v4l2loopback (команда была: sudo modprobe v4l2loopback). Виртуальное устройство обнаружено и может быть передано с видео (.avi) с помощью команды вроде: ffmpeg -re -i testsrc.avi -f v4l2 /dev/video1

-поток с IP-камеры доступен с помощью: rtsp://IP/play2.sdp для камеры Dlink DCS-5222L. Этот поток может быть захвачен ffmpeg.

Моя проблема заключается в том, чтобы установить связь между этими двумя шагами (получить поток rstp и записать его на виртуальную веб-камеру). Я попытался ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0 но с v4l2 произошла ошибка (v4l2 не найден).

У кого-нибудь есть идеи, как преобразовать поток с IP-камеры в виртуальную камеру?

2 ответа2

3

FFMpeg может получать видео с вашей IP-камеры и пересылать его на устройство виртуальной камеры. Для этого вам нужно сначала указать все параметры вашей IP-камеры, как мне кажется:

-f video4linux2 -input_format mjpeg -i rtsp://192.168.1.16/play2.sdp

затем все ваши выходные параметры, как вы использовали в своем примере:

-f v4l2 /dev/video1

Так что попробуйте эту команду:

ffmpeg -f video4linux2 -input_format mjpeg -i rtsp://192.168.1.16/play2.sdp -f v4l2 /dev/video1
2

Вы также можете использовать gstreamer, так как ffmpeg и avconv могут иметь проблемы с форматом v4l2. Обратите внимание на использование decodebin в конвейере.

gst-launch rtspsrc location=rtsp://192.168.2.18/play.sdp ! decodebin ! v4l2sink device=/dev/video1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .