2

I am trying to use Raspberry pi as a web camera streaming server. I am following this tutorial which uses Motion tool.

When I start the motion service, it exists without giving me an error and when I go to the streaming URL(http://myrpi:8081) I get nothing there.

I tried to take a few pictures using FFmpeg and it worked.

ffmpeg -f video4linux2 -i /dev/video0 -vframes 2 test%3d.jpeg

This means my USB Web camera is working with the raspberry pi. I am attaching configuration and log file contents below. Please let me know if you need more details.

-- Thank you in advance.

  • Model Number: Raspberry Pi 4 Model B Rev 1.4
  • OS Version: Raspbian GNU/Linux 11 (bullseye)
  • USB Web Camera Model: Please see below:
$ lsusb
Bus 001 Device 004: ID 1e4e:0100 Cubeternet WebCam

$ v4l2-ctl --device=/dev/video0 --all
Driver Info:
    Driver name      : uvcvideo
    Card type        : USB2.0 Camera: USB2.0 Camera
    Bus info         : usb-0000:01:00.0-1.3
    Driver version   : 5.10.63
    Capabilities     : 0x84a00001
        Video Capture
        Metadata Capture
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04200001
        Video Capture
        Streaming
        Extended Pix Format
Media Driver Info:
    Driver name      : uvcvideo
    Model            : USB2.0 Camera: USB2.0 Camera
    Serial           : 
    Bus info         : usb-0000:01:00.0-1.3
    Media version    : 5.10.63
    Hardware revision: 0x00000002 (2)
    Driver version   : 5.10.63
Interface Info:
    ID               : 0x03000002
    Type             : V4L Video
Entity Info:
    ID               : 0x00000001 (1)
    Name             : USB2.0 Camera: USB2.0 Camera
    Function         : V4L2 I/O
    Flags         : default
    Pad 0x01000007   : 0: Sink
      Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
    Width/Height      : 640/480
    Pixel Format      : 'YUYV' (YUYV 4:2:2)
    Field             : None
    Bytes per Line    : 1280
    Size Image        : 614400
    Colorspace        : sRGB
    Transfer Function : Rec. 709
    YCbCr/HSV Encoding: ITU-R 601
    Quantization      : Default (maps to Limited Range)
    Flags             : 
Crop Capability Video Capture:
    Bounds      : Left 0, Top 0, Width 640, Height 480
    Default     : Left 0, Top 0, Width 640, Height 480
    Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 640, Height 480, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 640, Height 480, Flags: 
Streaming Parameters Video Capture:
    Capabilities     : timeperframe
    Frames per second: 30.000 (30/1)
    Read buffers     : 0
                     brightness 0x00980900 (int)    : min=-127 max=127 step=1 default=0 value=0
                       contrast 0x00980901 (int)    : min=0 max=127 step=1 default=62 value=62
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=64 value=64
                            hue 0x00980903 (int)    : min=-16000 max=16000 step=1 default=20 value=20
                          gamma 0x00980910 (int)    : min=16 max=500 step=1 default=125 value=125
                      sharpness 0x0098091b (int)    : min=0 max=31 step=1 default=2 value=2


  • Conf file motion.conf: Please see below

# 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 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 /var/log/motion/motion.log

# 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 /var/lib/motion: this was default setting
target_dir /home/pi/Monitor

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0
# videodevice /dev/video1
# 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

# 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

# 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

# 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

# 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 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

  • Log file content(/var/log/motion/motion.log): Please see below:

[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_startup: Motion 4.3.2 Started
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_startup: Using default log type (ALL)
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_startup: Using log type (ALL) log level (NTC)
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] become_daemon: Motion going to daemon mode
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_startup: Motion running as daemon process
[0:motion] [NTC] [STR] [Dec 04 17:03:18] webu_start_strm: Starting all camera streams on port 8081
[0:motion] [NTC] [STR] [Dec 04 17:03:18] webu_strm_ntc: Started camera 0 stream on port 8081
[0:motion] [NTC] [STR] [Dec 04 17:03:18] webu_start_ctrl: Starting webcontrol on port 8080
[0:motion] [NTC] [STR] [Dec 04 17:03:18] webu_start_ctrl: Started webcontrol on port 8080
[0:motion] [NTC] [ENC] [Dec 04 17:03:18] ffmpeg_global_init: ffmpeg libavcodec version 58.91.100 libavformat version 58.45.100
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] translate_init: Language: English
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_start_thread: Camera ID: 0 is from /etc/motion/motion.conf
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] motion_start_thread: Camera ID: 0 Camera Name: (null) Device: /dev/video0
[0:motion] [NTC] [ALL] [Dec 04 17:03:18] main: Waiting for threads to finish, pid: 4956
[1:ml1] [NTC] [ALL] [Dec 04 17:03:18] motion_init: Camera 0 started: motion detection Enabled
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] vid_start: Opening V4L2 device
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_device_open: Using videodevice /dev/video0 and input -1
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_device_capability: - VIDEO_CAPTURE
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_device_capability: - STREAMING
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_input_select: Name = "Camera 1"- CAMERA
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_norm_select: Device does not support specifying PAL/NTSC norm
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_select: Configuration palette index 17 (YU12) for 640x480 doesn't work.
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_select: Supported palettes:
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_select: (0) YUYV (YUYV 4:2:2)
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_set: Testing palette YUYV (640x480)
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_set: Using palette YUYV (640x480)
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_pixfmt_select: Selected palette YUYV
[1:ml1] [NTC] [ALL] [Dec 04 17:03:18] image_ring_resize: Resizing pre_capture buffer to 1 items
[1:ml1] [NTC] [ALL] [Dec 04 17:03:18] image_ring_resize: Resizing pre_capture buffer to 4 items
[1:ml1] [NTC] [ALL] [Dec 04 17:03:18] mlp_actions: End of event 1
[1:ml1] [NTC] [ALL] [Dec 04 17:03:18] motion_loop: Thread exiting
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] vid_close: Cleaning up V4L2 device
[1:ml1] [NTC] [VID] [Dec 04 17:03:18] v4l2_cleanup: Closing video device /dev/video0
[0:motion] [NTC] [ALL] [Dec 04 17:03:19] main: Threads finished
[0:motion] [NTC] [ALL] [Dec 04 17:03:19] main: Motion terminating
[0:motion] [NTC] [ALL] [Dec 04 17:03:19] motion_remove_pid: Closing logfile (/var/log/motion/motion.log).

  • Motion service status: Please see below
$ sudo service motion status

● motion.service - Motion detection video capture daemon
     Loaded: loaded (/lib/systemd/system/motion.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Sat 2021-12-04 17:03:19 IST; 46s ago
       Docs: man:motion(1)
    Process: 4955 ExecStart=/usr/bin/motion (code=exited, status=0/SUCCESS)
   Main PID: 4955 (code=exited, status=0/SUCCESS)
        CPU: 346ms

Dec 04 17:03:17 raspberrypi systemd[1]: Started Motion detection video capture daemon.
Dec 04 17:03:18 raspberrypi motion[4955]: [0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
Dec 04 17:03:18 raspberrypi motion[4955]: [0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
Dec 04 17:03:18 raspberrypi motion[4955]: [0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)
Dec 04 17:03:18 raspberrypi motion[4955]: [0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)
Dec 04 17:03:19 raspberrypi systemd[1]: motion.service: Succeeded.

4
  • any updates? I've run into the same issue running a RPI with RPI camera: Motion just terminates and fails to do any processing. Thanks
    – richbl
    Jan 17, 2022 at 4:36
  • Hi. I'm having a similar issue with the RPi cam. Were you able to fix it? Feb 26, 2022 at 19:37
  • Unfortunately no. @ThomasWeller
    – Prakash P
    Mar 7, 2022 at 10:58
  • 1
    See here: github.com/Motion-Project/motion/pull/303 tl;dr: you shouldn't set "daemon on" if you run it as simple frpm systemd
    – Andy
    Mar 27, 2022 at 9:20

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.