Update Documentation

This commit is contained in:
Mr-Dave
2023-11-11 18:27:56 -07:00
parent 1ff5dd6052
commit e2472c7bfe
4 changed files with 247 additions and 91 deletions

View File

@@ -1,3 +1,22 @@
Summary of changes for version 4.6.0 are below
* Documentation updates
* Fix segfault on vaapi decoding
* Add support for DRM HW decode
* Remove default for allowed_media_types
* Fix libweb includes
* Fix autotools and translation files
* Update documentation on libcamerify
* Fix movie_extpipe
* Fix threshold_tune
* Add pragma for mmal code
* Update year in copyright notice
* Revise issue template
* Allow for bad packets when processing file
* Implement consistent time values
* Implement consistent calculation for pixel difference
* Fix compiler warnings
* Revise ioctl for devices to use long variable
* Print log message of signals
Summary of changes for version 4.5.1 are below
* Improve closing of v4l2 devices
* Fix creation of pid_file

View File

@@ -67,7 +67,7 @@
<button class="dropbtn">Distribution Specific Building</button>
<div class="dropdown-content">
<a href="#Preparation_For_Building"> Preparation For Building </a>
<a href="#BUILD_DEBIAN">Debian/Ubuntu/Raspbian</a>
<a href="#BUILD_DEBIAN">Debian/Ubuntu/Raspberry Pi OS</a>
<a href="#BUILD_OPENSUSE">Open SUSE</a>
<a href="#BUILD_FREEBSD">Free BSD</a>
<a href="#BUILD_CENTOS">CentOS</a>
@@ -100,7 +100,7 @@
<h3><a name="Install_Apt"></a> Installing with apt </h3>
<ul>
<p></p>
Motion is part of the Debian, Ubuntu and Raspbian repositories and can be installed with the apt tool. The
Motion is part of the Debian, Ubuntu and Raspberry Pi OS repositories and can be installed with the apt tool. The
version included with apt will be the version that was available when the distribution version
was initially deployed and therefore may not represent the latest release.
<p></p>
@@ -179,11 +179,11 @@
script. If errors occur during the process or you wish to customize the build, please
review the extended building instructions further below.
<p></p>
Debian / Ubuntu / Raspbian Packages
Debian / Ubuntu / Raspberry Pi OS Packages
<ul>
<code><strong>sudo apt-get install autoconf automake autopoint build-essential pkgconf libtool libzip-dev
libjpeg-dev git libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev
libwebp-dev gettext libmicrohttpd-dev</strong></code>
libwebp-dev gettext libmicrohttpd-dev libcamera-tools libcamera-dev</strong></code>
<p></p>
<code><strong>cd ~</strong></code>
<br /><code><strong>git clone https://github.com/Motion-Project/motion.git</strong></code>
@@ -247,13 +247,13 @@
<p></p>
<p></p>
<h4><a name="BUILD_DEBIAN"></a>Debian/Ubuntu/Raspbian</a> </h4>
<h4><a name="BUILD_DEBIAN"></a>Debian/Ubuntu/Raspberry Pi OS</a> </h4>
<ul>
<li>Required</li>
<ul>
<p></p>
<code><strong>sudo apt-get install autoconf automake autopoint build-essential pkgconf
libtool git libzip-dev libjpeg62-turbo-dev gettext libmicrohttpd-dev</strong></code>
<code><strong>sudo apt-get install autoconf automake autopoint build-essential pkgconf libtool libzip-dev
libjpeg-dev git gettext libmicrohttpd-dev </strong></code>
<p></p>
</ul>
<p></p>
@@ -293,10 +293,10 @@
<code><strong>sudo apt-get install libsqlite3-dev</strong></code>
<p></p>
</ul>
<li>JPEG Turbo</li>
<li>libcamera</li>
<ul>
<p></p>
<code><strong>sudo apt-get install libjpeg-turbo8 libjpeg-turbo8-dev</strong></code>
<code><strong>sudo apt-get install libcamera-tools libcamera-dev</strong></code>
<p></p>
</ul>
<li>Webp Image Support</li>

View File

@@ -234,67 +234,18 @@
<p></p>
<a name="basic_setup_picam"></a>
<strong>The raspberry Pi camera</strong> is set up multiple ways depending upon the distro being used.
<p></p>
In the Raspbian version based upon Debian release of 'bullseye' (and presumably later releases), Raspbian
allows access to the PI camera via an application called
<strong>The raspberry Pi camera</strong> is set up via an application called
<i><small><code>libcamera</code></small></i>. <i><small><code>libcamera</code></small></i> provides
access to the camera as a v4l2 device but this interface is only available when using a special
application. Users must run Motion using the
command <i><small><code>libcamerify motion</code></small></i> and
then specify the /dev/videoX device in the Motion configuration file.
<p></p>
The PI camera's drivers expose the camera's full functionality as a set of low-level /dev/videoX
devices, while Motion (and other applications) expect a single high-level /dev/videoX device. The
libcamerify wrapper transparently manages these low-level devices and presents a high-level
interface on one of the /dev/videoX device nodes to Motion
(<a href="https://libcamera.org/docs.html#v4l2-compatibility-layer">libcamera docs</a>).
<p></p>
With just one camera connected to the Pi, the device name should normally be
<i><small><code>/dev/video0</code></small></i>. With multiple cameras connected, e.g. a regular
USB web and the Pi camera, you should use the device names provided by V4L
(<i><small><code>v4l2-ctl --list-devices</code></small></i>). The wrapper doesn't seem to affect
the device names seen by Motion. In the below example, the PI camera is at
<i><small><code>/dev/video2</code></small></i> while an external USB camera is at
<i><small><code>/dev/video0</code></small></i> ("CSI" stands for the
<a href="https://en.wikipedia.org/wiki/Camera_Serial_Interface">interface used by the Pi camera</a>).
<p></p>
Also, /dev/videoN names are dynamically assigned and may not always point to the same camera (e.g.
when a USB camera is hot-plugged). Take a look at the stable symlinks under
<i><small><code>/dev/v4l/by-path/</code></small></i> and consider using them in your Motion config
instead of /dev/videoX.
<pre>
root@raspberrypi:~# v4l2-ctl --list-devices
unicam (platform:3f801000.csi):
/dev/video2 # <== PI Camera
/dev/media2
bcm2835-codec-decode (platform:bcm2835-codec):
/dev/video10 # <=== Low level devices
/dev/video11 # for the Pi cam, ignore
....
bcm2835-isp (platform:bcm2835-isp):
/dev/video13 # <=== Low level devices
/dev/video14 # for the Pi cam, ignore
....
Venus USB2.0 Camera: Venus USB2 (usb-3f980000.usb-1.2):
/dev/video0 # <== USB webcam
/dev/video1
/dev/media4
</pre>
<p></p>
For Raspbian releases prior to 'bullseye', the PI camera can be set up two different ways. If Motion is installed by using the
apt packages (e.g. apt-get install motion), then the camera must be set up using the bcm2835-v4l2 module which creates
a v4l2 device for the camera. Users will need to install this module using the
command <code>sudo modprobe bcm2835-v4l2</code>. This
will set up the camera as a normal v4l2 device and it can be accessed via a standard /dev/videoX device. If Motion is
built from source or installed via the deb packages on the project release page, then an additional option is to set
up the camera using the <a href="#mmalcam_name" >mmalcam_name</a> parameter or using
the bcm2835-v4l2 module. <strong>When Motion is installed via apt, the mmalcam option is not available.</strong>
It has been noted that this historical method of accessing the PI camera may be available in newer
releases via the enabling the legacy camera stack but it is unclear how long this method will be permitted.
USB web and the Pi camera, you will need to determine the device associated with the
Pi camera and the USB camera. The list of devices can be seen using the command
(<i><small><code>v4l2-ctl --list-devices</code></small></i>).
<p></p>
<a name="basic_setup_composite"></a>

View File

@@ -42,39 +42,225 @@
</section>
<section class="main-content">
<h3><a name="Current_Release"></a> Latest Stable Release</h3>
<ul>
<li> <a href="motion_build.html"> Installing with apt/debs and building from source </a></li>
<li> <a href="motion_config.html"> Configuration </a></li>
<li> <a href="motion_config.html#commandlineoptions"> Command Line Options </a></li>
<li> <a href="motion_config.html#configfiles">Configuration Files</a></li>
<li> <a href="motion_config.html#Signals_Sent"> Signals (sent with e.g. kill command) </a></li>
<li> Configuration Options</li>
<ul>
<li> <a href="motion_config.html#Configuration_OptionsAlpha"> Listed alphabetically with mapping of old option names to current names </a></li>
<li> <a href="motion_config.html#Configuration_OptionsTopic"> Listed by topic </a></li>
<li> <a href="motion_config.html#Configuration_OptionsDetail"> Detail descriptions of each option</a></li>
</ul>
<p></p>
The links below provide the documentation associated with the various releases of the Motion and MotionPlus software.
<p></p>
<p></p>
</ul>
<p></p>
<h3><a name="Prior"></a> Prior Release Versions</h3>
<ul>
<li> <a href="4.3.2/motion_config.html"> Version 4.3.2</a></li>
<li> <a href="4.3.1/motion_config.html"> Version 4.3.1</a></li>
<li> <a href="4.3.0/motion_config.html"> Version 4.3.0</a></li>
<li> <a href="4.2.2/motion_config.html"> Version 4.2.2</a></li>
<li> <a href="4.2.1/motion_config.html"> Version 4.2.1</a></li>
<li> <a href="4.2/motion_config.html"> Version 4.2</a></li>
<li> <a href="4.1.1/motion_guide.html"> Version 4.1.1</a></li>
<li> <a href="4.1/motion_guide.html"> Version 4.1</a></li>
<li> <a href="4.0.1/motion_guide.html"> Version 4.0.1</a></li>
<li> <a href="4.0/motion_guide.html"> Version 4.0</a></li>
<li> <a href="3.4.1/motion_guide.html"> Version 3.4.1</a></li>
<h3><a name="Current_Release"></a>Documentation For Latest Releases</h3>
<div class="tblreleasecurrent">
<table style="border-width:0.5px; text-align: center;" cellspacing="0" cellpadding="0" >
<colgroup>
<col width="300px">
<col width="300px">
<col width="300px">
</colgroup>
<thead >
<tr >
<th word-wrap:break-word > Motion </th>
<td word-wrap:break-word > </td>
<th word-wrap:break-word > MotionPlus </th>
</tr>
</thead>
<tbody>
<tr>
<td word-wrap:break-word > <a href="motion_build.html">Installing and building from source </a></td>
<td word-wrap:break-word > </td>
<td word-wrap:break-word > <a href="motionplus_build.html">Installing and building from source </a></td>
</tr>
<tr>
<td word-wrap:break-word > <a href="motion_config.html">Configuration</a></td>
<td word-wrap:break-word > </td>
<td word-wrap:break-word > <a href="motionplus_config.html">Configuration</a></td>
</tr>
<tr>
<td word-wrap:break-word > </a></td>
<td word-wrap:break-word > </td>
<td word-wrap:break-word > <a href="motionplus_examples.html">Examples</a></td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
</ul>
<p></p>
<p></p>
<h3><a name="Comparison"></a>Comparison Of Motion vs MotionPlus</h3>
<div>
<table class="tblcomp" >
<colgroup>
<col width="300px">
<col width="300px">
<col width="300px">
</colgroup>
<thead >
<tr >
<th bgcolor="#edf4f9" word-wrap:break-word >Motion</th>
<th bgcolor="#edf4f9" word-wrap:break-word >Description</th>
<th bgcolor="#edf4f9" word-wrap:break-word >MotionPlus</th>
</tr>
</thead>
<tbody>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Limited</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Feature Enhancements</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Optional</td>
<td bgcolor="#edf4f9" word-wrap:break-word >FFmpeg Libraries</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Required</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Supported</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Multiple input v4l2 cards(RoundRobin)</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Not Supported</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Supported</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Brooktree video cards</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Not Supported</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Internal partial legacy</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Camera Tracking</td>
<td bgcolor="#edf4f9" word-wrap:break-word >External scripts only</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >Optional</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Multiple ports for web control and streams</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Single port only</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >OpenCV Cascades/HOG/DNN</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Direct libcamera support</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Sound recording from passthrough cameras</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Sound frequency detection</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Download/Play movies via web page</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Add/Delete cameras via web page</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
<tr>
<td bgcolor="#edf4f9" word-wrap:break-word >-</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Additional Motion detection measures</td>
<td bgcolor="#edf4f9" word-wrap:break-word >Yes</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
<p></p>
<p></p>
<h3><a name="Prior"></a>Documentation For Prior Releases</h3>
<p></p>
The documentation is provided as it was included in each release.
<p></p>
<p></p>
<div class="tblreleaseprior">
<table style="border-width:0.5px; text-align: center;" cellspacing="0" cellpadding="0" >
<colgroup>
<col width="500px">
<col width="500px">
</colgroup>
<thead >
<tr >
<th word-wrap:break-word > Motion </th>
<th word-wrap:break-word > MotionPlus </th>
</tr>
</thead>
<tbody>
<tr>
<td word-wrap:break-word > <a href="4.5.1/motion_config.html"> Version 4.5.1</a> </td>
<td word-wrap:break-word > <a href="mp0.1.0/motionplus_config.html"> Version 0.1.0</a></td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.5.0/motion_config.html"> Version 4.5.0</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.4.0/motion_config.html"> Version 4.4.0</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.3.2/motion_config.html"> Version 4.3.2</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.3.1/motion_config.html"> Version 4.3.1</a></td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.3.0/motion_config.html"> Version 4.3.0</a></td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.2.2/motion_config.html"> Version 4.2.2</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.2.1/motion_config.html"> Version 4.2.1</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.2/motion_config.html"> Version 4.2</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.1.1/motion_guide.html"> Version 4.1.1</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.1/motion_guide.html"> Version 4.1</a></td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="4.0.1/motion_guide.html"> Version 4.0.1</a> </td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word > <a href="4.0/motion_guide.html"> Version 4.0</a></td>
<td word-wrap:break-word > </td>
</tr>
<tr>
<td word-wrap:break-word ><a href="3.4.1/motion_guide.html"> Version 3.4.1</a> </td>
<td word-wrap:break-word > </td>
</tr>
</tbody>
</table>
</div>
</section>
</body>
</html>