URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 3947
[ Назад ]

Исходное сообщение
"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"

Отправлено xintrea , 13-Дек-12 00:03 
Здравствуйте!


Файл /dev/video0 традиционно создается WEB-камерой. Из него берут видеопоток такие программы как kopete или skype.

Теперь представим задачу: мы хотим показать видеоролик собеседнику через skype.

WEB-камеры у нас нет, файл /dev/video0 не сущетсвует (но мы его можем создать).

Вопрос. Какие команды можно дать, чтобы Mplayer/VLC начали писать в /dev/video0?


Я пытался сделать так:

# Создаем символьный файл /dev/video0 
# Вроде у пользователей WEB-камер создается именно
# символьный файл а не блочный
=> mknod /dev/video0 c 81 0

# Поставим ему максимальные права, чтоб не заморачиваться с правами
=> chmod 777 /dev/video0

# Попробуем что-нибудь записать в /dev/video0
# (По-идее, данный файл должен скушивать все, как /dev/null?)
=> cat "Это видеопоток"> /dev/video0
bash: /dev/video0: Нет такого устройства или адреса

# Хм, странно. А ну посмотрим:
=> ls -l /dev | grep video
crw-rw---T+ 1 root video     252,   1 Дек 12 23:43 fw1
crw-rw----+ 1 root video     195,   0 Дек 12 22:39 nvidia0
crw-rw----+ 1 root video     195, 255 Дек 12 22:39 nvidiactl
crwxrwxrwx  1 root root       81,   0 Дек 13 00:53 video0

Файл /dev/video0 на месте, но при попытке записать в него, система сообщает что файл не существует.

Наверное, я что-то принципиально не так делаю. А как правильно?


Содержание

Сообщения в этом обсуждении
"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено xintrea , 13-Дек-12 09:16 
В общем, немного разобрался. Нужно запустить модуль ядра v4l2loopback (ранее он назывался vloopback).

После этого можно заставить mplayer гнать видео в файл /dev/video0:

mplayer movie.mp4 -vf scale=320:240 -vo yuv4mpeg:file=/dev/video0

Проблема в том, что не могу подобрать формат. Изображение, получаемое через смотрелку веб-камеры, зеленое в вертикальную полоску, с каким-то полупрозрачным наложением увеличенной в два раза копии основного изображения.

Как бы мне узнать, в каком формате обычные WEB-камеры передают данные на /dev/video0?


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено megatorr , 11-Апр-13 22:23 
> В общем, немного разобрался. Нужно запустить модуль ядра v4l2loopback (ранее он назывался
> vloopback).
> После этого можно заставить mplayer гнать видео в файл /dev/video0:
>
mplayer movie.mp4 -vf scale=320:240 -vo yuv4mpeg:file=/dev/video0

> Проблема в том, что не могу подобрать формат. Изображение, получаемое через смотрелку
> веб-камеры, зеленое в вертикальную полоску, с каким-то полупрозрачным наложением увеличенной
> в два раза копии основного изображения.
> Как бы мне узнать, в каком формате обычные WEB-камеры передают данные на
> /dev/video0?

незнаю


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено polya_bor , 25-Июл-13 14:54 
> В общем, немного разобрался. Нужно запустить модуль ядра v4l2loopback (ранее он назывался
> vloopback).
> После этого можно заставить mplayer гнать видео в файл /dev/video0:
>
mplayer movie.mp4 -vf scale=320:240 -vo yuv4mpeg:file=/dev/video0

> Проблема в том, что не могу подобрать формат. Изображение, получаемое через смотрелку
> веб-камеры, зеленое в вертикальную полоску, с каким-то полупрозрачным наложением увеличенной
> в два раза копии основного изображения.
> Как бы мне узнать, в каком формате обычные WEB-камеры передают данные на
> /dev/video0?

http://sv27.com/


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено John , 13-Дек-12 17:32 
У gstreamer есть элемент v4l2sink.
Если еще v4l2loopback - тоже может быть полезен для Вашей задачи.

"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено John , 13-Дек-12 17:32 
> Если еще v4l2loopback - тоже может быть полезен для Вашей задачи.

s/Если/Есть/


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено xintrea , 13-Дек-12 22:19 
>> Если еще v4l2loopback - тоже может быть полезен для Вашей задачи.

Таки вы случайно не знаете, в каком формате обычные WEB-камеры передают данные на /dev/video0?

Если у вас есть вебкамера, можете открыть /dev/video0 в VLC или в Mplayer, и посмотреть информацию о потоке?



"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено John , 15-Дек-12 00:43 
>>> Если еще v4l2loopback - тоже может быть полезен для Вашей задачи.
> Таки вы случайно не знаете, в каком формате обычные WEB-камеры передают данные
> на /dev/video0?
> Если у вас есть вебкамера, можете открыть /dev/video0 в VLC или в
> Mplayer, и посмотреть информацию о потоке?

вообще V4L2 поддерживает разные форматы

mplayer говорит - "RAW Uncompressed Video"

для gstreamer фильтр подобный такому
"video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)I420"

наиболее эффективный формат V4L2 например, для детектирования движения
V4L2_PIX_FMT_YUV420


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено xintrea , 15-Дек-12 01:42 
>[оверквотинг удален]
>> Таки вы случайно не знаете, в каком формате обычные WEB-камеры передают данные
>> на /dev/video0?
>> Если у вас есть вебкамера, можете открыть /dev/video0 в VLC или в
>> Mplayer, и посмотреть информацию о потоке?
> вообще V4L2 поддерживает разные форматы
> mplayer говорит - "RAW Uncompressed Video"
> для gstreamer фильтр подобный такому
> "video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)I420"
> наиболее эффективный формат V4L2 например, для детектирования движения
> V4L2_PIX_FMT_YUV420

Я все это спрашивал для того, чтобы подключить DV-камеру в виде WEB-камеры, чтобы по Skype можно было говорить.

По результатам написал статью:

Как в Linux превратить DV-камеру в WEB-камеру
http://webhamster.ru/site/page/index/articles/comp/252


"Можно ли заставить VLC или Mplayer писать в /dev/video0 ?"
Отправлено megatorr , 11-Апр-13 22:22 
>[оверквотинг удален]
> Дек 12 23:43 fw1
> crw-rw----+ 1 root video     195,   0
> Дек 12 22:39 nvidia0
> crw-rw----+ 1 root video     195, 255 Дек 12
> 22:39 nvidiactl
> crwxrwxrwx  1 root root       81,
>   0 Дек 13 00:53 video0

> Файл /dev/video0 на месте, но при попытке записать в него, система сообщает
> что файл не существует.
> Наверное, я что-то принципиально не так делаю. А как правильно?