Я хочу создать прямую трансляцию (окна на) моего рабочего стола Linux с использованием бесплатного потокового сайта, используя захваченное видео в качестве поддельной веб-камеры. Есть много инструментов для этого на окнах. ffmpeg позволяет мне захватывать входные данные в определенном окне, но я не могу найти способ вывести видео на поддельное устройство в стиле веб-камеры, используемое вспышкой.
Кто-нибудь может порекомендовать метод (или программное обеспечение) для этого?
linux
ffmpeg
screencasts
virtual-webcam
bkconrad
источник
источник
Ответы:
Вы можете установить v4l2loopback . Это модуль ядра, который имитирует веб-камеру. Загрузите это с:
Затем вам нужно отправить видеопоток на устройство / dev / video0 с помощью программы типа ffmpeg. Чтобы захватить рабочий стол и переслать его в / dev / video0 с помощью ffmpeg, вы можете использовать следующую командную строку:
Измените значение -r с 15 на другое, если вы хотите другую частоту кадров. Разрешение выбирается в параметре -s. Если вы хотите указать смещение от верхнего левого угла экрана, передайте его в параметре -i в форме «-i: 0.0 + x, y», где x и y - горизонтальное и вертикальное смещение соответственно.
источник
[x11grab @ 0x24013c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
,[v4l2 @ 0x2409520] ioctl(VIDIOC_G_FMT): Invalid argument
иCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Используйте v4l2loopback с mplayer .
make
иsu -c 'make install'
),su -c 'modprobe v4l2loopback'
,затем измените одну строку в файле
examples/yuv4mpeg_to_v4l2.c
исходной папки v4l2loopback изв
и сделать
make
в этой папке.Затем запустите его из
examples
каталога следующим образом:где вы заменяете
movie.mp4
на имя вашего видео файла. И замените его/dev/video0
на ваше петлевое устройство.MPlayer может воспроизводить любые веб-потоки, любые видеофайлы, даже со стандартного ввода! Я только что проверил это с файлом из http://www.tagesschau.de, который является немецким новостным сайтом.
Вместо $ TS вы можете поставить
-
(что означает stdin). И перед mplayer ваша команда ffmpeg перенаправляет свой вывод на стандартный вывод. Так что-то вроде:Не проверял последний, потому что вы не сказали, как выглядит ваша команда ffmpeg.
источник
./yuv4mpeg_to_v4l2 < /dev/video0 &
приводит к./yuv4mpeg_to_v4l2: : missing YUV4MPEG2 header
. Как заменить/tmp/pipe
на/dev/video0
?Какой дистрибутив вы используете? Я имел успех с WebCamStudio под Arch в сочетании с веб-студией Livestream. Прошло немного времени с тех пор, как я его использовал.
http://www.ws4gl.org/
Что вы пытаетесь сделать именно? ffmpeg, скомпилированный с x11grab, может записывать рабочий стол. У меня был ограниченный успех, доведя это до Ustream, но опять же прошло много времени, и я думаю, что то, что я делал, больше не работает.
Если вы просто хотите потоковую передачу файла, а не рабочего стола (я думаю, когда вы говорите «Окно», вы имеете в виду «VLC»), я могу указать вам правильное направление для работы с Livestream (возможно, Ustream). Я неуклюже выясняю, как это сделать с помощью экспериментов. Это не фантастика, но работает с Livestream.
Justin.tv также имеет скрипты, которые могут транслироваться из VLC в их сервис.
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
источник
Во-первых, вероятно, visible.in делает то, что вы хотите, без каких-либо хлопот (я не связан): http://appear.in/
Во-вторых, вы можете транслировать на Twitch или другие сервисы, используя OBS, который недавно добавил поддержку linux (!): Https://obsproject.com/
OBS также решает гораздо более сложную проблему, связанную со звуком и звуком, подаваемым системой, во время захвата экрана в Ubuntu (ничего не решается в
universe
репозитории, который я нашел до сих пор).У меня нет никаких удивительных unix-y решений. Но те работали для меня в реальном мире.
источник