Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как захватить и заменить видео с веб камеры?  (Прочитано 3565 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Всем привет. Подскажите пожалуйста как захватить и заменить видео с веб камеры? Пробовал разные софтины так и не вышло. То есть надо в общем подменить изображение с вебки на готовое видео, или задать так чтобы готовое видео распознавалось как сигнал с веб камеры и шло на скайп.

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #1 : 01 Февраля 2019, 13:03:16 »
golovin1989, Вам нужно обратиться за помощью к модулю ядра v4l2loopback
Здесь приведен пример того, как захватить изображение с экрана компьютера с последующей "ретрансляцией" на фиктивную камеру.
« Последнее редактирование: 01 Февраля 2019, 13:17:38 от archuser »

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #2 : 01 Февраля 2019, 13:43:01 »
Спасибо) Попробую

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1742
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #3 : 01 Февраля 2019, 14:11:05 »
заменить видео с веб камеры

Банк подломить собрались или Гохран?

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #4 : 02 Февраля 2019, 16:24:10 »
Хах да нет) Для онлайн презентаций нужно) Виртуальную вебкамеру. Пока еще так и не получилось. Web Cam Studio еще дает какую то надежду что получится

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #5 : 02 Февраля 2019, 21:12:26 »
Пока еще так и не получилось.
А что конкретно не получается?

Только что попробовал реализовать задуманное и не сразу получилось (дистрибутив ArchLinux). У вас тоже не сработает, если установите пакет v4l2loopback из штатного репозитория. Версия 0.10.0 (и как выяснилось, также 0.11.*) приводит нас к следующей ошибке.  Проблема пофиксена в версии 0.12.1:
git clone --branch v0.12.1 https://github.com/umlaeute/v4l2loopback.git
cd v4l2loopback
make && sudo make install
sudo depmod -a
sudo modprobe v4l2loopback
# "ретранслируем" поток файла ~/manuals/using_v4l2loopback.mkv видео формата в файл /dev/video0 с оригинальной скоростью воспроизведения:
ffmpeg -re -i ~/manuals/using_v4l2loopback.mkv -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
# "ретранслируем" изображение с экрана
ffmpeg -f x11grab -i :0.0 -s 1920x1080 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
Для того, чтобы модуль v4l2loopback был доступен во время загрузки системы, создайте файл /etc/modules-load.d/v4l2loopback.conf, содержимое которого показано ниже:
v4l2loopbackПроверил, все работает в vlc и mplayer.

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #6 : 04 Февраля 2019, 14:30:24 »
А что конкретно не получается?
Ubuntu 16.04 делал по видео инструкции с ютуба, с сайта по ссылке выше. Несколько раз устанавливал v4l2loopback, потом установил WebCam Studio но подмена видео не происходит. Изображение от вебкамеры непременно с самой же веб камеры. Че только непробовал. То есть если я правильно понял то нужно установить v4l2loopback версии v0.12.1 и затем без стороннего ПО через терминал указать на видео и на веб камеру пойдет изображение из видео файла даже без WebCam Studio?

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #7 : 04 Февраля 2019, 14:33:00 »
если я правильно понял то нужно установить v4l2loopback версии v0.12.1 и затем без стороннего ПО через терминал указать на видео и на веб камеру пойдет изображение из видео файла даже без WebCam Studio?
Верно.

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #8 : 04 Февраля 2019, 15:05:54 »
Верно.
Получилось Спасибо) А со звуком как нибудь можно?
вот это получается порядок установки v4l2loopback v0.12.1
git clone --branch v0.12.1 https://github.com/umlaeute/v4l2loopback.git
cd v4l2loopback
make && sudo make install
sudo depmod -a
sudo modprobe v4l2loopback

файл в папке etc/modules-load.d/v4l2loopback.conf с содержанием v4l2loopback сделал через su nautilus.

а вот дальше допустим по видео: /dev/video0 - виртуальная веб камера. Далее создать папку maluals в /home/user/ и закинуть туда видос и работает.
ffmpeg -re -i ~/manuals/using_v4l2loopback.mkv -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

« Последнее редактирование: 04 Февраля 2019, 15:16:27 от golovin1989 »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #9 : 05 Февраля 2019, 04:17:44 »
А со звуком как нибудь можно?
Приведите файл /etc/modules-load.d/v4l2loopback.conf к виду:
v4l2loopback
snd_aloop
Перезагрузите компьютер или выполните команду для загрузки модуля:
sudo modprobe snd-aloopВыполните команду aplay -l | grep Loopback c целью получить больше информации о звуковых картах Loopback. Нас интересуют номер карты (card) и номера устройства (device):
Цитировать
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Любое из устройств может работать как на вход, так и на выход.
"Ретранслируем" с поддержкой звуковой дорожки:
Цитировать
ffmpeg -re -i ~/manuals/using_v4l2loopback.mkv -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 -ac 2 -f alsa hw:0,0
где первое число в строке параметров hw:0,0 соответствует номеру карты (ранее получили командой aplay), а второе - номеру устройства (любой на выбор из списка доступных устройств).
Аргумент -ac 2 добавил только из-за того, что многоканальный (выше двух) звук не выводится.
Далее в настройках программы skype (или любой другой) выставляете для параметра "Аудиоустройство" значение hw:0:1, где второе число противоположно числу, заданному для одноименного аргумента команды ffmpeg.

Оффлайн golovin1989

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #10 : 05 Февраля 2019, 19:17:15 »
А со звуком как нибудь можно?

Не работает, только видео и звук с микрофона. Если в настройках трансляции выбирать Loopback audio device то тишина, и видео тормозят. ФПС тот же а видео идет с замедлениями. Не пойму в че дело от звуковой данные такие же.

карта 0: Loopback [Loopback], устройство 0: Loopback PCM [Loopback PCM]
карта 0: Loopback [Loopback], устройство 1: Loopback PCM [Loopback PCM]

пробовал hw:0:1, hw:0:0, hw:1:0 и другие варианты

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Как захватить и заменить видео с веб камеры?
« Ответ #11 : 07 Февраля 2019, 06:17:37 »
golovin1989, действительно со звуком какие-то траблы при задействовании alsa. Поэтому пойдем обходным путем. Воспользуемcя pulseaudio. Тогда команда ffmpeg примет следующий вид:
ffmpeg -re -i ~/manuals/using_v4l2loopback.avi -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 -f pulse outstreamПосле нажатия клавишы <Enter> начнется процесс "перекачки" видео дорожки в камеру, а звуковой дорожки в устройство вывода pulseaudio. Вы услышите звук в динамиках Вашей системы. Запускаете skype и pavucontrol. Последний можно заменить на pactl, если предпочитаете терминал графическому интерфейсу. В окне программы pavucontrol на вкладке "Проигрывание" увидите новый элемент с именем outstream, ранее заданный в команде ffmpeg, как показано на рисунке:

Затем в скайпе совершаете видеозвонок. На вкладке "Запись" программы pavucontrol для приложения skype убедитесь, что в списке "Input from" выбран элемент "Monitor of Встроенное аудио Аналоговый стерео". Название элемента у вас может отличаться. Главное в названии - это присутствие слов "Monitor of...". Аналогичные манипуляции можно сделать непосредственно в настройках микрофона программы скайп.

Настройки закончены. Собеседник должен как видеть, так и слышать контент видео файла. Если Вы в это же время хотите заняться своими делами и не желаете слышать то, что транслируется в скайп, выполните следующую команду в терминале:
pactl load-module module-null-sinkНа вкладке "Воспроизведение" окна программы pavucontrol в списке "outstream on" выберите элемент "Пустой выход". Аналогично на вкладке "Запись" выберите в списке "Input from" "Monitor of Пустой выход". Звуковая трансляция для Вас завершится в отличии от Вашего собеседника:

Следует учесть то, что далеко не все видео файлы можно транслировать в скайпе. Некоторые из них даже не отобразятся у вашего собеседника. Здесь вероятно скайп накладывает какие-то ограничения на камеру, скорее всего на ее разрешение. Поэтому следует либо заранее позаботится о создании/конвертировании видео в допустимые форматы, либо конвертировать "на лету", что как раз и умеет делать ffmpeg.
P.S. Все выше изложенное протестировано.

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.