создание виртуального микрофона Ubuntu 16.04 и потоковая передача в него звука с IP-камеры RTSP

Мне нужно создать как виртуальную веб-камеру, так и виртуальный микрофон на машине Ubuntu 16.04 для использования в веб-приложении с использованием WebRTC через мой веб-браузер.

Мне нужно передать видео и аудио на эти 2 виртуальных устройства с IP-камеры (поток RTSP). Воспроизведение потока RTSP непосредственно в VLC отлично работает как с видео, так и со звуком.

Для этого я создал / dev / video1 с помощью video4linux2. Я могу передать IP-камеру в / dev / video1.

ffmpeg -i rtsp: // IP-адрес: 554 / потоковая передача / каналы / 101 / -f v4l2 / dev / video1

Если я посмотрю в проигрывателе VLC, я могу выбрать / dev / video1 в качестве видеоустройства, но у меня есть только «hw: 0,0» в качестве аудиоустройства, а это мой встроенный микрофон.

Как правильно направить такой поток RTSP на виртуальную веб-камеру и виртуальный микрофон?


person sunsetjunks    schedule 22.04.2017    source источник
comment
По теме: unix.stackexchange.com/questions/349689/   -  person baptx    schedule 29.05.2018


Ответы (1)


Вам нужен какой-то звуковой драйвер с обратной связью. Если вы хотите сделать это на уровне Alsa, вы можете потерять модуль snd-aloop. https://www.alsa-project.org/main/index.php/Matrix:Module-aloop#aloop_driver

Если ваше предполагаемое место назначения поддерживает Pulseaudio, вы можете добавить нулевой приемник и использовать его источник монитора для записи с него.

pactl load-module module-null-sink sink_name=video1

Тогда источник монитора будет назван video1.source.

https://wiki.archlinux.org/index.php/PulseAudio/Examples

Затем вам нужно добавить дополнительный вывод из FFmpeg. Это может быть так же просто, как добавить что-то вроде -f pulse "video1" в конец того, что у вас есть сейчас.

person Brad    schedule 22.04.2017
comment
Когда я добавляю -f pulse "video1", звук воспроизводится через мои динамики напрямую (монитор встроенного аудио и аналогового стерео) вместо виртуального микрофона. Может, у вас есть идея, почему? Вот команда, которую я использовал для воспроизведения звука через виртуальный микрофон ALSA: ffmpeg -re -i webcam_record.mp4 -f v4l2 /dev/video0 -f alsa hw:1,1. Когда я тестировал результат с помощью VLC, он не работал, мне пришлось протестировать с помощью guvcview. - person baptx; 29.05.2018