LINUX.ORG.RU

Скрипт для работы камеры в skypeforlinux

 ,


0

1

Приветствую! Прошу помочь со скриптом для работы камеры в Skype. Смысл такой: вебкамера ID 045e:00f7 Microsoft Corp. LifeCam VX-1000 в skypeforlinux_8.55.0.141_amd64 (да и в других версиях) показывает черный квадрат где должна быть картинка. Предполагаю что проблема в скайпе с отображением mjpeg, yuvj422p. Борьба с этим ведется через ffmpeg:

ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1

После чего в скайпе выбирается /dev/video1 и камера работает. Однако у метода изъян в виде подгружающего проц ffmpeg в фоне. Соответственно желается запускать его вместе со skypeforlinux и тушить ffmpeg вместе с выходом из skypeonlinux. Как бы это засунуть в один скрипт (ffmpeg пока работает не дает запустить skypeforlinux если делать в одну строку с ";" да и мусорит в терминал немало).

[ffmpeg start] &; skypeforlinux && [ffmpeg stop]

Так не катит?

ArkaDOSik ★★ ()
Последнее исправление: ArkaDOSik (всего исправлений: 1)

Пускай ffmpeg в отдельном процессе и на фоне, как-то так:

(ffmpeg <всякие там параметры>) &

А затем в том же процессе и с блокировкой скайп:

skypeforlinux

А последней строкой, когда из скайпа вышел, прибиваешь первый процесс с ffmpeg. Можно либо «быть по площадям», killall ffmpeg, либо если более аккуратно, выводить PID второго процесса и убивать только его.

Чтобы ffmpeg не выводил ничего, добавляешь ему в опции «-loglevel silent».

Как-то так.

seiken ★★★★★ ()
Ответ на: комментарий от seiken

Вообще, отдельный процесс шелла тут вроде нафиг не нужен. Вот так проще всего:

#/bin/sh

ffmpeg -loglevel silent <…> &

p=$!

skypeforlinux

kill $p

seiken ★★★★★ ()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от seiken

Почему то не работает ffmpeg с & в конце (процесс типа висит но ничего не делает) Для экспериментов без наличия камеры но со скайпом:

ffmpeg -i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -loglevel quiet -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1 &

DJArty ()

Запуск с конвертером не помогает? Вот так:

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so skypeforlinux

Библиотека v4l2convert.so перехватывает картинку с камеры и преобразует формат на лету.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.