Light Bullet: Главная
Главная

Light Bullet - информационно - новостной сайт, в котором собрана информация сообщества по различным тематикам. Для ознакомления вы можете перейти в соответствующий раздел сайта.

Последние новости
31.03.2026: Тестовый чат

В экспериментальном порядке сайт "обзавелся" своим простеньким чатом (флудильня), которая планируется к дальнейшей модернизации и улучшении. Чат доступен по ссылке https://lightbullet.ru/chat.php.

03.10.2025: Восстановление работы сервера

Сервер возобновил свою работу на благо человечества.

В связи с этим скоро на канале youtube и в тематической группе telegram по minecraft будет выложен видеообзор серверного шкафа, используемого мной.

24.09.2025: Временное прекращение работы сервера

Я понимаю, что некоторым постояльцам неприятен тот факт, что сервер отключен, но не беспокойтесь: как только у меня сделают проводку, сервер снова начнет свою работу на благо человечества.

В связи с этим скоро на канале youtube и в тематической группе telegram по minecraft будет выложен видеообзор серверного шкафа, используемого мной.

Последние статьи
31.03.2026: Трансляция веб-камеры с помощью MJPEG-сервера

Иногда возникает потребность трансляции обычной веб-камеры, например, для того, чтобы удаленно показывать, что происходит в соседней комнате (Вставка изображения в OBS во время трансляции). Для реализации трансляции веб-камеры мы воспользуемся популярным инструментом mjpg-streamer.

Установка необходимых компонентов

Входим в режим суперпользователя

user@COMPXX:~$ su -

#Ввод пароля

Устанавливаем необходимые зависимости

root@COMPXX:~# apt-get -y install libjpeg-dev libv4l-dev cmake subversion

Далее создаем папку, где будет лежать программа (В моем случае это /ftpsd/REMOTEWEBCAM/)

root@COMPXX:~# mkdir -p /ftpsd/REMOTEWEBCAM/

Для дальнейшего использования, необходимо создать пользователя с правами root

root@COMPXX:~# adduser rwc

#Ввод данных по подсказкам

root@COMPXX:~# usermod -aG sudo rwc

Также нужно добавить пользователя в группу video, чтобы можно было запустить mjpg-streamer от имени данного пользователя

root@COMPXX:~# usermod -aG video rwc

Далее переходим в созданную папку, скачиваем mjpg-streamer, распаковываем архив

root@COMPXX:~# cd /ftpsd/REMOTEWEBCAM/

root@COMPXX:~# wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip

root@COMPXX:~# unzip master.zip

Переходим в папку mjpg-streamer-master/mjpg-streamer-experimental/

root@COMPXX:~# cd mjpg-streamer-master/mjpg-streamer-experimental/

В данной директории выполните следующую команду

root@COMPXX:~# make USE_LIBV4L2=true clean all

Скопируйте все файлы с расширением .so в папку /usr/lib/

root@COMPXX:~# cp -r *.so /usr/lib/

Также нужно установить владельца созданной ранее директории

root@COMPXX:~# chown -R rwc: /ftpsd/REMOTEWEBCAM

Проверка работоспособности mjpg-streamer

В этой же директории введите следующую команду

root@COMPXX:~# ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 30" -o "output_http.so -p 8080"

Если все сделано верно, то после выполнения данной команды изображение с веб камеры доступно по следующему адресу: http://*IP_адрес*:8080/?action=stream (Вместо *IP_адрес* вводите IP адрес системы, где запущен mjpg-streamer).

Прервать выполнение команды можно с помощью комбинации клавиш Ctrl + C

Установка mjpg-streamer в качестве службы

Для того, чтобы не запускать программу длинной командой, нам нужно создать службу, которая будет ее запускать.

Для этого нам нужно создать файл службы

root@COMPXX:~# nano /etc/systemd/system/mjpg-streamer.service

[Unit]

 Description=MJPG Streamer

 After=network-online.target

 Wants=network-online.target

[Service]

 Type=simple

 User=rwc

 WorkingDirectory=/ftpsd/REMOTEWEBCAM/mjpg-streamer-master/mjpg-streamer-experimental

 Environment=LD_LIBRARY_PATH=/ftpsd/REMOTEWEBCAM/mjpg-streamer-master/mjpg-streamer-experimental

 ExecStart=/ftpsd/REMOTEWEBCAM/mjpg-streamer-master/mjpg-streamer-experimental/mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 30" -o "output_http.so -p 8080"

 Restart=always

 RestartSec=5

[Install]

 WantedBy=multi-user.target

Примечание: Параметры разрешения (параметр -r), частоты кадра (параметр -f) и порт для веб доступа к камере (параметр -p) можно менять по потребности и техническим характеристикам веб-камеры.

Для того, чтобы служба смогла запуститься, необходимо обновить список служб

root@COMPXX:~# systemctl daemon-reload

Теперь мы сможем проверить работу mjpg-streamer, запустив службу

root@COMPXX:~# systemctl start mjpg-streamer

Можно еще проверить, запущена ли служба корректно

root@COMPXX:~# systemctl status mjpg-streamer

Для того, чтобы добавить службу в автозагрузку, необходимо ввести следующую команду

root@COMPXX:~# systemctl enable mjpg-streamer

Остановка службы производится следующей командой

root@COMPXX:~# systemctl stop mjpg-streamer

Если все сделано верно, то после выполнения данной команды изображение с веб камеры доступно по следующему адресу: http://*IP_адрес*:8080/?action=stream (Вместо *IP_адрес* вводите IP адрес системы, где запущен mjpg-streamer).

Примечание: Перед запуском нужно предварительно подключить веб-камеру к серверу, где установлен mjpg-streamer. В системе веб-камера в большинстве случаев определяется, как /dev/video0. Если на сервере установлено несколько веб-камер, то нужно искать ее индекс отдельно. Если веб-камера не определилась или определилась некорректно, нужно установить на сервер драйвера от этой веб-камеры.

23.07.2025: Сервер интернет-радио (icecast2 + ezstream)

Начало

Установим необходимые компоненты

user@COMPXX:~$ sudo apt-get install icecast2 ezstream

После установки сервисов необходимо их остановить, если они запущены

user@COMPXX:~$ sudo systemctl stop icecast2.service

Создание плейлистов

Создаем папку для плейлистов

user@COMPXX:~$ sudo mkdir -p /etc/icecast2/playlists

Создаем сам плейлист

user@COMPXX:~$ sudo nano /etc/icecast2/playlists/public.m3u

Пути к звуковым файлам.

Настройка icecast2

Приводим файл настройки icecast2 к следующему виду:

user@COMPXX:~$ sudo nano /etc/icecast2/icecast.xml

<icecast>

 <location>Russia</location>

 <admin>admin@localhost</admin>

 <limits>

  <clients>250</clients>

  <sources>20</sources>

  <queue-size>524288</queue-size>

  <client-timeout>30</client-timeout>

  <header-timeout>15</header-timeout>

  <source-timeout>10</source-timeout>

  <burst-on-connect>1</burst-on-connect>

  <burst-size>65535</burst-size>

 </limits>

 <authentication>

  <source-password>changeme</source-password>

  <relay-password>changeme</relay-password>

  <admin-user>admin</admin-user>

  <admin-password>changeme</admin-password>

 </authentication>

 <hostname>radio.site.ru</hostname>

 <listen-socket>

  <port>8080</port>

 </listen-socket>

 <http-headers>

  <header name="Access-Control-Allow-Origin" value="*" />

 </http-headers>

 <fileserve>1</fileserve>

 <paths>

  <basedir>/usr/share/icecast2</basedir>

  <logdir>/var/log/icecast2</logdir>

  <webroot>/usr/share/icecast2/web</webroot>

  <adminroot>/usr/share/icecast2/admin</adminroot>

  <alias source="/" destination="/status.xsl"/>

 </paths>

 <logging>

  <accesslog>access.log</accesslog>

  <errorlog>error.log</errorlog>

  <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->

  <logsize>10000</logsize> <!-- Max size of a logfile -->

 </logging>

 <security>

  <chroot>1</chroot>

  <changeowner>

   <user>icecast2</user>

   <group>icecast</group>

  </changeowner>

 </security>

</icecast>

Запускаем сервис

user@COMPXX:~$ sudo systemctl start icecast2.service

Теперь можно проверить работоспособность сервера, перейдя по ссылке http://radio.site.ru:8080.

Если все настроено верно, то вы увидите страницу icecast2. На данный момент на сервере нет источников вещания: не пугайтесь, так и должно быть.

Настройка источника вещания ezstream

Создание директории конфигурации и логов для ezstream

user@COMPXX:~$ sudo mkdir -p /etc/ezstream

Создаем конфигурацию для ezstream:

user@COMPXX:~$ sudo nano /etc/ezstream/public.xml

<?xml version="1.0" encoding="UTF-8"?>

<ezstream>

 <servers>

  <server>

   <name>Site Radio</name>

   <hostname>localhost</hostname>

   <port>8080</port>

   <password>changeme</password>

  </server>

 </servers>

 <streams>

  <stream>

   <server>Site Radio</server>

   <mountpoint>/public</mountpoint>

   <format>MP3</format>

   <shuffle>0</shuffle>

   <playlist_program>0</playlist_program>

   <intake>Site Public</intake>

   <svrinfoname>Site Public</svrinfoname>

   <svrinfogenre>Public Music</svrinfogenre>

   <svrinfodescription>Public Music</svrinfodescription>

   <svrinfobitrate>256</svrinfobitrate>

   <svrinfochannels>2</svrinfochannels>

   <svrinfosamplerate>44100</svrinfosamplerate>

   <svrinfopublic>1</svrinfopublic>

  </stream>

 </streams>

 <intakes>

  <intake>

  <name>Site Public</name>

  <type>playlist</type>

  <filename>/etc/icecast2/playlists/public.m3u</filename>

  </intake>

 </intakes>

</ezstream>

Сменим владельца файла настройки

user@COMPXX:~$ sudo chown -R icecast2:icecast /etc/ezstream/public.xml

Создадим точку запуска сервиса ezstream

user@COMPXX:~$ sudo nano /etc/systemd/system/ezstream_public.service

[Unit]

 Description=ezstream_public

 After=network.target

 Requires=ezstream_public.service

[Service]

 User=icecast2

 Group=icecast

 Type=simple

 PIDFile=/etc/ezstream/ezstream.pid

 ExecStart=/usr/bin/ezstream -c /etc/ezstream/public.xml

 ExecReload=/bin/kill -HUP $MAINPID

 Restart=always

[Install]

 WantedBy=multi-user.target

Обновляем информацио о точках запуска сервисов

user@COMPXX:~$ sudo systemctl daemon-reload

Запускаем созданный сервис

user@COMPXX:~$ sudo systemctl start ezstream_public.service

Если все настроено верно, то перейдя по ссылке http://radio.site.ru:8080/public вы сможете прослушать музыку, которая указана в плейлисте.

Для дополнительных источников вещания необходимо создать файлы настроек ezstream, плейлисты и точки запуска сервиса под каждый источник вещания отдельно.

11.07.2025: Создание и настройка сетевых папок linux

Для настройки сетевых папок с общим доступом необходимо сначала установить samba:

user@COMPXX:~$ sudo apt-get install samba

Следующее, что необходимо сделать - создать папку для общего доступа (для примера создадим папку /SHARE в корне системы):

user@COMPXX:~$ sudo mkdir -p /SHARE

user@COMPXX:~$ sudo chown -R www-data:www-data /SHARE

user@COMPXX:~$ sudo chmod -R 0775 /SHARE

После этого необходимо изменить настройки в /etc/samba/smb.conf следующим образом:

user@COMPXX:~$ sudo nano /etc/samba/smb.conf

[global]

 workgroup = WORKGROUP

 security = user

 map to guest = bad user

 wins support = no

 dns proxy = no

[SHARE]

 path = /SHARE

 guest ok = yes

 force user = www-data

 browsable = yes

 writable = yes

Для применения настроек на лету необходимо перезапустить службы smbd и nmbd:

user@COMPXX:~$ sudo systemctl restart smbd nmbd

После проделанных действий вы можете проверить доступность папки с другого ПК:

Если, перейдя по IP компьютера, вы увидите сетевой ресурс SHARE, значит все сделано правильно.

На этом, собственно, все.

Связаться с нами
mail telegram vk youtube twitch