Превращаем ноутбук в камеру наблюдения с записью по сети
Скрипты для настройки записи с веб-камеры на ноутбуке с Ubuntu в сетевую папку:
Для захвата видео с веб-камеры и его сохранения можно использовать инструмент FFmpeg, который поддерживает работу с веб-камерами и запись видео в реальном времени.
sudo apt update
sudo apt install ffmpeg
Подключение шары для записи:
sudo apt install cifs-utils
sudo mkdir /mnt/network_share
sudo mount -t cifs -o username=имя_пользователя,password=пароль //адрес_сервера/папка /mnt/network_share
Можно добавить автоматическое монтирование после перезагрузки. В файл /etc/fstab
добавить:
//адрес_сервера/папка /mnt/network_share cifs username=имя_пользователя,password=пароль 0 0
Собственно, команда для захвата видео с веб-камеры и записи его в файл:
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -r 30 -s 1280x720 /mnt/network_share/запись_$(date +"%Y%m%d_%H%M%S").mp4
Параметры:
-f v4l2
— указывает на использование интерфейса видеозахвата Linux (веб-камера)./dev/video0
— путь к веб-камере (проверьте, что веб-камера подключена с помощью командыls /dev/video*
).-c:v libx264
— кодек для сжатия видео в формате H.264.-r 30
— частота кадров (30 кадров в секунду).-s 1280x720
— разрешение видео 720p./mnt/network_share/запись_$(date +"%Y%m%d_%H%M%S").mp4
— путь для сохранения видео, с меткой времени в имени файла.
Если требуется разбивать файлы по времени или размеру файлов, можно добавить параметры к FFmpeg. Например, чтобы каждые 60 минут создавался новый файл:
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -r 30 -s 1280x720 -f segment -segment_time 3600 -reset_timestamps 1 /mnt/network_share/запись_%03d.mp4
Ну и вишенка на скрипте - создание systemd-скрипта для запуска при загрузке системы. Здесь встречаются грабли с параметрами внутри файла конфигурации скрипта, поэтому создадим промежуточный файл для запуска:
sudo nano /usr/local/bin/start_webcam_recording.sh
Его содержимое:
#!/bin/bash
/usr/bin/ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -r 30 -s 1280x720 -f segment -segment_time 3600 -reset_timestamps 1 /mnt/camera/rec_%03d.mp4
Этот файл надо сделать исполняемым:
sudo chmod +x /usr/local/bin/start_webcam_recording.sh
Создаем файл /etc/systemd/system/webcam-record.service со следующим содержимым:
[Unit]
Description=Webcam Recording Service
After=network.target
[Service]
ExecStart=/usr/local/bin/start_webcam_recording.sh
Restart=always
[Install]
WantedBy=multi-user.target
Активируем службу:
sudo systemctl daemon-reload
sudo systemctl enable webcam-record.service
sudo systemctl start webcam-record.service