自宅サーバー ≫ Linux Server ≫ CentOS Stream 8 ≫ Webカメラサーバー(motion)

 
ここでは基本的な設定のみを行うので詳細な設定はWebカメラサーバー(motion conf ファイル解説)を参照
Webカメラ
1.motion を使い映像撮影
2.その映像をライブ配信
USBカメラ認識確認
 
 [root@centos]#
lsusb
 Bus 002 Device 002: ID 8087:8000 Intel Corp.
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 8087:8008 Intel Corp.
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 003 Device 002: ID 0411:0165 Product: USB 2.0 PC Camera     
<--- USBカメラ認識確認
 Bus 003 Device 004: ID 058f:3831 Alcor Micro Corp.
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
ビデオデバイス確認
 
 [root@centos]#
/dev/video*
 -bash: /dev/video0: Permission denied    
<--- /dev/video0 を確認
 
Nux Dextop Remi リポジトリをインストール
既にインストールされている場合は不要
 
 [root@centos]#
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
 [root@centos]#
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release
                                                                           
-0-5.el7.nux.noarch.rpm
 
関連ソフトのインストール
 
 [root@centos]#
dnf -y install https://download.fedoraproject.org/pub/epel/epel-release-latest-
                                                                                     
8.noarch.rpm
 [root@centos]#
dnf -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el
                                                              
/rpmfusion-free-release-8.noarch.rpm
 [root@centos]#
dnf -y --enablerepo=powertools install SDL2
 
ffmpeg のインストール
無効になっているEPELリポジトリとNux Dextopリポジトリを有効にしてインストール
 
 [root@centos]#
dnf -y --enablerepo=epel --enablerepo=nux-dextop install ffmpeg ffmpeg-devel
 
motion のインストール
無効になっているEPELリポジトリとNux Dextopリポジトリを有効にしてインストール
 
 [root@centos]#
dnf -y --enablerepo=epel --enablerepo=nux-dextop install motion
 
motion の設定
 
 [root@centos]#
vi /etc/motion/motion.conf
 # Rename this distribution example file to motion.conf
 #
 # This config file was generated by motion 4.3.2
 # Documentation: /usr/share/doc/motion/motion_guide.html
 #
 # This file contains only the basic configuration options to get a
 # system working. There are many more options available. Please
 # consult the documentation for the complete list of all options.
 #

 ############################################################
 # System control configuration parameters
 ############################################################

 # Start in daemon (background) mode and release terminal.
 daemon
off <--- 変更(デーモンで起動)
 
    ↓
 daemon
on

 # Start in Setup-Mode, daemon disabled.
 setup_mode off

 # File to store the process ID.
 ; pid_file value

 # File to write logs messages into. If not defined stderr and syslog is used.
 ; log_file value

 # Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL).
 log_level 6

 # Target directory for pictures, snapshots and movies
 ; target_dir value

 # Video device (e.g. /dev/video0) to be used for capturing.
 videodevice /dev/video0

 # Parameters to control video device. See motion_guide.html
 ; vid_control_params value

 # The full URL of the network camera stream.
 ; netcam_url value

 # Name of mmal camera (e.g. vc.ril.camera for pi camera).
 ; mmalcam_name value

 # Camera control parameters (see raspivid/raspistill tool documentation)
 ; mmalcam_control_params value

 ############################################################
 # Image Processing configuration parameters
 ############################################################

 # Image width in pixels.
 width 640    
<--- 画像の横サイズを変更したい場合は任意に変更
 # Image height in pixels.
 height 480    
<--- 画像の横サイズを変更したい場合は任意に変更

 # Maximum number of frames to be captured per second.
 framerate
15    <---  1秒間にカメラからキャプチャされる最大フレーム数
 
    ↓                              当サイトは100に変更 ただし、カメラの解像度によって調整
 framerate
100
                                 
 # Text to be overlayed in the lower left corner of images
 text_left CAMERA1

 # Text to be overlayed in the lower right corner of images.
 text_right %Y-%m-%d\n%T-%q

 ############################################################
 # Motion detection configuration parameters
 ############################################################

 # Always save pictures and movies even if there was no motion.
 emulate_motion off

 # Threshold for number of changed pixels that triggers motion.
 threshold
1500   <--- 必要に応じ変更
  最大値にすると認知しなくなのるので監視カメラとして使用しない場合は最大値(2147483647)にする


 # Noise threshold for the motion detection.
 ; noise_level 32

 # Despeckle the image using (E/e)rode or (D/d)ilate or (l)abel.
 despeckle_filter EedDl

 # Number of images that must contain motion to trigger an event.
 minimum_motion_frames 1

 # Gap in seconds of no motion detected that triggers the end of an event.
 event_gap 60

 # The number of pre-captured (buffered) pictures from before motion.
 pre_capture 3

 # Number of frames to capture after motion is no longer detected.
 post_capture 0

 ############################################################
 # Script execution configuration parameters
 ############################################################

 # Command to be executed when an event starts.
 ; on_event_start value

 # Command to be executed when an event ends.
 ; on_event_end value

 # Command to be executed when a movie file is closed.
 ; on_movie_end value

 ############################################################
 # Picture output configuration parameters
 ############################################################

 # Output pictures when motion is detected
 picture_output off

 # File name(without extension) for pictures relative to target directory
 picture_filename %Y%m%d%H%M%S-%q

 ############################################################
 # Movie output configuration parameters
 ############################################################

 # Create movies of motion events.
 movie_output on

 # Maximum length of movie in seconds.
 movie_max_time 60

 # The encoding quality of the movie. (0=use bitrate. 1=worst quality, 100=best)
 movie_quality
45    <---  映像クオリティーを最大 ただし、カメラの解像度によって調整
 
    ↓
 movie_quality
100

 # Container/Codec to used for the movie. See motion_guide.html
 movie_codec mkv

 # File name(without extension) for movies relative to target directory
 movie_filename %t-%v-%Y%m%d%H%M%S

 ############################################################
 # Webcontrol configuration parameters
 ############################################################

 # Port number used for the webcontrol.
 webcontrol_port 8080

 # Restrict webcontrol connections to the localhost.
 webcontrol_localhost on   
<--- ※下記 "motion Web上でのコントロール" を参照

 # Type of configuration options to allow via the webcontrol.
 webcontrol_parms 0

 ############################################################
 # Live stream configuration parameters
 ############################################################

 # The port number for the live stream.
 stream_port
8081     <--- ポートを変更したい場合は書き換える

 # Restrict stream connections to the localhost.
 stream_localhost
on     <--- 変更 ローカルホスト以外もライブ映像を配信
 
    ↓
 stream_localhost
off

 ##############################################################
 # Camera config files - One for each camera.
 ##############################################################
 ; camera /usr/etc/motion/camera1.conf
 ; camera /usr/etc/motion/camera2.conf
 ; camera /usr/etc/motion/camera3.conf
 ; camera /usr/etc/motion/camera4.conf

 ##############################################################
 # Directory to read '.conf' files for cameras.
 ##############################################################
 ; camera_dir /usr/etc/motion/conf.d
 
motion 起動
 
 [root@centos]#
systemctl start motion  (motion だけでも起動する)
 
ブラウザで http://<自分のドメイン or 自分のIPアドレス>:8081 にアクセスしカメラ映像が表示される事を確認

motion Web上でのコントロール
設定ファイルの "webcontrol_localhost on" を off に変えることで下のように Web 上でコントリールできる
Web 上でコントリールできるようにするには、ブラウザで http://<自分のドメイン or 自分のIPアドレス>:8080 にアクセス
 

当方だけなのか文字設定が上手くいかない・・・今後の課題
motion 終了
 
 [root@centos]#
systemctl stop motion
 
motion の自動起動設定
 
 
[root@centos]# systemctl enable motion
 
motion の自動起動設定の確認
 
 
[root@centos]# systemctl is-enabled motion
 enabled        
<--- enabled になっていればOK
 
ライブ配信用HTMLドキュメントを作成
下記ようなHTMLドキュメントを作成してWebサーバーにアップ
   
 
[root@centos]# vi /home/****/www/webcam-live.html
 
<HTML>
 <meta http-equiv="refresh" content="3">
 <BODY>
 <iframe width="640" height="480" src="http://www.papa-net.info:8081">
 </iframe>
 </BODY>
 </HTML>
 
インターネットブラウザよりWebサーバーにアップした上記ファイルにアクセスして画像表示を確認
ライブ映像を見たいという方は ここ をクリックして下さい

戻る