Актуальный кейс: Получение видео потока для дальнейшей записи любых мероприятий используя мэш-панель с подключенной веб-камерой. МосТех панели уже имеют встроенную камеру!

 

  • Откройте терминал.
  • Создайте новый файл для скрипта:
nano webcam_rtsp.sh
  • Вставьте код в редактор:
#!/bin/bash
#скрипт запускается НЕ от root
#ПОИСК ИСТОЧНИКА ЗВУК ПО НАЗВАНИЮ webcam
PULSE=`pactl list short sources | grep --ignore-case webcam | awk '{ print $1 }'`
#НЕ найдя берем источник по умолчанию
if [ -z "${PULSE}" ]; then
PULSE=default
fi
#ПОИСК ИСТОЧНИКА ВИДЕО
V4L=`v4l2-ctl --list-devices | grep -A 1 --ignore-case webcam | grep /dev/ | awk '{ print $1 }'`
#НЕ НАЙДЯ БЕРЕМ ПЕРВЫЙ
if [ -z "${V4L}" ]; then
V4L=/dev/video0
fi

#запуск сервера rtsp на порту 8554

nohup ffmpeg -thread_queue_size 1024 -f v4l2 -framerate 15 -input_format mjpeg  -i ${V4L}  -f pulse -ac 1 -thread_queue_size 1024 -i ${PULSE}  -acodec aac -vcodec libx264 -preset ultrafast -crf 22 -s hd720 -vf format=yuv420p -profile:v main -threads 0 -f mpegts - 2>/dev/null | vlc -I dummy -  --sout='#rtp{sdp=rtsp://:8554/} --sout-all --sout-keep' >/dev/null 2>/dev/null &

В скрипте -framerate 15 это количество кадров, можно делать больше.

  • Сохраните файл и выйдите из редактора: нажмите Ctrl + O, затем Enter, и затем Ctrl + X.
  • Сделайте скрипт исполняемым:
chmod +x webcam_rtsp.sh

Скрипт готов, можете запускать:

./webcam_rtsp.sh

IP адрес камеры будет равен ip адресу пк (панели) с портом 8554.

Cкрипт запускается от имени пользователя ВНИМАНИЕ пользователь должен быть авторизован в этот момент!

В 30/70 и 50 вланах могут быть проблемы из за закрытых портов. можно пробовать порты 11000+

Проверка

  • Откройте VLC или другой медиаплеер, поддерживающий RTSP.
  • Например, в VLC выберите: Media -> Open Network Stream (или Медиа -> Открыть поток…).
  • Введите адрес RTSP — rtsp://<ваш_ip_адрес>:8554/

 

На чмось 12 возможны проблемы с получением звука, по этому установите:

dnf -y install pulseaudio-utils

Для остановки трансляции введите:

pkill vlc

 

Ошибки и баги: 

  • Ошибка pactl — поставить пакет pulseaudio-utils
  • Ошибка pa_context_connect() — тоже связана с pulseaudio-utils, возможно запуск скрипта производится из под другого пользователя или рута.
  • Ошибка v4l2 — поставить пакет v4l2loopback или 4l2loopback-dkms
  • 404 при подключении: Проверить, не закрыты ли порты. Так же если подключаться через VLC с Windows в адресе не забывать поставить / в конце.

!! Так же в системе должен стоять пакеты ffmpeg и vlc

 

Спасибо скажем дружно @Uluscat, можно деньгами, но не скажу куда переводить… 


3 комментарий для “Использование Web — камеры как rtsp по сети в МОС (чМОС, МЭШ ОС)”
  1. Это значит, что пользователь, от которого запускается данный скрипт, вошел в систему (загрузился до рабочего стола)

  2. А авторизован, это как? Там же не как в ноутбучных мостехах, где создается учетная запись учителя через авторизацию по мос.ру?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *