Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
відеоспостереження [2023/03/28 13:40] wombat створено |
відеоспостереження [2023/03/28 14:16] (поточний) wombat [Запис звуку] |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
====== Відеоспостереження ====== | ====== Відеоспостереження ====== | ||
+ | |||
+ | ===== Вибір та налаштування камери ===== | ||
+ | |||
+ | ls /dev/video* | ||
+ | |||
+ | v4l2-ctl --list-formats-ext -d /dev/video0 | ||
+ | |||
+ | <code> | ||
+ | Type: Video Capture | ||
+ | |||
+ | [0]: 'YUYV' (YUYV 4:2:2) | ||
+ | Size: Discrete 640x480 | ||
+ | Interval: Discrete 0.033s (30.000 fps) | ||
+ | Interval: Discrete 0.067s (15.000 fps) | ||
+ | Size: Discrete 1280x720 | ||
+ | Interval: Discrete 0.100s (10.000 fps) | ||
+ | [1]: 'MJPG' (Motion-JPEG, compressed) | ||
+ | Size: Discrete 640x480 | ||
+ | Interval: Discrete 0.033s (30.000 fps) | ||
+ | Interval: Discrete 0.067s (15.000 fps) | ||
+ | Size: Discrete 1280x720 | ||
+ | Interval: Discrete 0.033s (30.000 fps) | ||
+ | Interval: Discrete 0.067s (15.000 fps) | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | ===== Запис звуку ===== | ||
+ | |||
+ | Запис звуку для відеоспостереження нічим не відрізняється від звичайного запису звуку до файлу за допомогою ffmpeg ((https://trac.ffmpeg.org/wiki/Capture/PulseAudio , https://trac.ffmpeg.org/wiki/Capture/ALSA)). | ||
+ | |||
+ | Тут лише коротко назвемо передумови: | ||
+ | * Зазвичай користувач має бути членом групи ''audio'', щоб мати доступ до звукових пристроїв. | ||
+ | * Необхідно дізнатися, які пристрої запису звуку є в системі: | ||
+ | Для ALSA: ''arecord -l'' | ||
+ | |||
+ | Для PulseAudio: ''pacmd list-sources'' | ||
+ | |||
+ | Відповідно, якщо сервер PulseAudio не запущений для нашого користувача, його слід запустити: ''<nowiki>pulseaudio --start</nowiki>'' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Запис та збереження ===== | ||
Рядок 10: | Рядок 53: | ||
while [ 1 ]; do | while [ 1 ]; do | ||
# denoise 10:10:10:10 | # denoise 10:10:10:10 | ||
- | if ! /usr/bin/ffmpeg -f v4l2 -video_size 1280x720 -framerate 10 -input_format yuyv422 -i /dev/video2 -an -sn -vf "hqdn3d=10:10:10:10,drawtext=fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=white: x=10: y=10: text='%{localtime\:%d.%m.%Y %H\\\\\:%M\\\\\:%S}'" -f webm -cluster_size_limit 2M -cluster_time_limit 1100 -content_type video/webm -c:v libvpx -crf 30 -b:v 600k -g 15 -deadline realtime -cpu-used 6 -threads 4 icecast://source:846d160e6a2f5ac2e5466d4e52ba6870169511024bb16f6a89bb3e79e01544a3@icecast.streaming.server:8000/outside_cam < /dev/null ; then | + | # if ! /usr/bin/ffmpeg -f v4l2 -video_size 1280x720 -framerate 10 -input_format yuyv422 -i /dev/video2 -an -sn -vf "hqdn3d=10:10:10:10,drawtext=fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=white: x=10: y=10: text='%{localtime\:%d.%m.%Y %H\\\\\:%M\\\\\:%S}'" -f webm -cluster_size_limit 2M -cluster_time_limit 1100 -content_type video/webm -c:v libvpx -crf 30 -b:v 600k -g 15 -deadline realtime -cpu-used 6 -threads 4 icecast://source:846d160e6a2f5ac2e5466d4e52ba6870169511024bb16f6a89bb3e79e01544a3@icecast.streaming.server:8000/outside_cam < /dev/null ; then |
+ | |||
+ | # denoise 10:10:10:10 | ||
+ | # with sound | ||
+ | if ! /usr/bin/ffmpeg -f pulse -i alsa_input.pci-0000_00_1b.0.analog-stereo -f v4l2 -video_size 1280x720 -framerate 10 -input_format yuyv422 -i /dev/video2 -sn -vf "hqdn3d=10:10:10:10,drawtext=fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=white: x=10: y=10: text='%{localtime\:%d.%m.%Y %H\\\\\:%M\\\\\:%S}'" -f webm -cluster_size_limit 2M -cluster_time_limit 1100 -content_type video/webm -c:v libvpx -crf 30 -b:v 600k -c:a libvorbis -q 0 -g 15 -deadline realtime -cpu-used 6 -threads 4 icecast://source:846d160e6a2f5ac2e5466d4e52ba6870169511024bb16f6a89bb3e79e01544a3@icecast.streaming.server:8000/outside_cam < /dev/null ; then | ||
sleep 5; | sleep 5; | ||
fi | fi | ||
Рядок 29: | Рядок 76: | ||
+ | |||
+ | |||
+ | ===== Виявлення руху ===== | ||
+ | |||
+ | https://dvr-scan.readthedocs.io/en/latest/guide/quickstart/ | ||
+ | |||
+ | https://softwarerecs.stackexchange.com/q/12097/83264 | ||