2016-08-27 7 views
6

Я использую motion на своем ноутбуке, и он отлично работает в любом формате. Но когда я использую его на моей малине Pi 3 (Raspbian Jessie) с помощью Малиновой камеры V2, единственными форматами, которые работают, являются: .avi и .swf.Как получить видео .mp4 от движения на малиновой пи?

Когда я выбираю любой другой формат, выходное видео является «видео с частотой 0 секунд», которое воспроизводится и закрывается мгновенно.

Я хотел бы иметь .mp4 или .ogg выход, поэтому я легко читаю его с помощью HTML5.

Адрес motion codec documentation.

Вот мой конфигурационный файл:

############################################################ 
# Daemon 
############################################################ 

# Start in daemon (background) mode and release terminal (default: off) 
daemon on 

# File to store the process ID, also called pid file. (default: not defined) 
process_id_file /var/run/motion/motion.pid 

############################################################ 
# Basic Setup Mode 
############################################################ 

# Start in Setup-Mode, daemon disabled. (default: off) 
setup_mode off 


# Use a file to save logs messages, if not defined stderr and syslog is used. (default: not defined) 
#logfile /mnt/camshare/Cam1/motion.log 
logfile /tmp/motion.log 

# Level of log messages [1..9] (EMR, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL). (default: 6/NTC) 
log_level 2 

# Filter to log messages by type (COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL). (default: ALL) 
log_type all 

########################################################### 
# Capture device options 
############################################################ 

# Videodevice to be used for capturing (default /dev/video0) 
# for FreeBSD default is /dev/bktr0 
#videodevice /dev/video0 

# v4l2_palette allows to choose preferable palette to be use by motion 
# to capture from those supported by your videodevice. (default: 17) 
# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and 
# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG. 
# Setting v4l2_palette to 2 forces motion to use V4L2_PIX_FMT_SBGGR8 
# instead. 
# 
# Values : 
# V4L2_PIX_FMT_SN9C10X : 0 'S910' 
# V4L2_PIX_FMT_SBGGR16 : 1 'BYR2' 
# V4L2_PIX_FMT_SBGGR8 : 2 'BA81' 
# V4L2_PIX_FMT_SPCA561 : 3 'S561' 
# V4L2_PIX_FMT_SGBRG8 : 4 'GBRG' 
# V4L2_PIX_FMT_SGRBG8 : 5 'GRBG' 
# V4L2_PIX_FMT_PAC207 : 6 'P207' 
# V4L2_PIX_FMT_PJPG : 7 'PJPG' 
# V4L2_PIX_FMT_MJPEG : 8 'MJPEG' 
# V4L2_PIX_FMT_JPEG : 9 'JPEG' 
# V4L2_PIX_FMT_RGB24 : 10 'RGB3' 
# V4L2_PIX_FMT_SPCA501 : 11 'S501' 
# V4L2_PIX_FMT_SPCA505 : 12 'S505' 
# V4L2_PIX_FMT_SPCA508 : 13 'S508' 
# V4L2_PIX_FMT_UYVY : 14 'UYVY' 
# V4L2_PIX_FMT_YUYV : 15 'YUYV' 
# V4L2_PIX_FMT_YUV422P : 16 '422P' 
# V4L2_PIX_FMT_YUV420 : 17 'YU12' 
# 
v4l2_palette 7 

# Tuner device to be used for capturing using tuner as source (default /dev/tuner0) 
# This is ONLY used for FreeBSD. Leave it commented out for Linux 
; tunerdevice /dev/tuner0 

# The video input to be used (default: -1) 
# Should normally be set to 0 or 1 for video/TV cards, and -1 for USB cameras 
input -1 

# The video norm to use (only for video capture and TV tuner cards) 
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL) 
norm 0 

# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0) 
frequency 0 

# Rotate image this number of degrees. The rotation affects all saved images as 
# well as movies. Valid values: 0 (default = no rotation), 90, 180 and 270. 
rotate 0 

# Image width (pixels). Valid range: Camera dependent, default: 352 
#width 1024 
width 640 

# Image height (pixels). Valid range: Camera dependent, default: 288 
#height 576 
height 480 

# Maximum number of frames to be captured per second. 
# Valid range: 2-100. Default: 100 (almost no limit). 
framerate 15 

# Minimum time in seconds between capturing picture frames from the camera. 
# Default: 0 = disabled - the capture rate is given by the camera framerate. 
# This option is used when you want to capture images at a rate lower than 2 per second. 
minimum_frame_time 0 

# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// mjpg:// or file:///) 
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined 
;netcam_url http://127.0.0.1/cgi-bin/raspicam.sh 

# Username and password for network camera (only if required). Default: not defined 
# Syntax is user:password 
; netcam_userpass value 

# The setting for keep-alive of network socket, should improve performance on compatible net cameras. 
# off: The historical implementation using HTTP/1.0, closing the socket after each http request. 
# force: Use HTTP/1.0 requests with keep alive header to reuse the same connection. 
# on: Use HTTP/1.1 requests that support keep alive as default. 
# Default: off 
netcam_keepalive off 

# URL to use for a netcam proxy server, if required, e.g. "http://myproxy". 
# If a port number other than 80 is needed, use "http://myproxy:1234". 
# Default: not defined 
; netcam_proxy value 

# Set less strict jpeg checks for network cameras with a poor/buggy firmware. 
# Default: off 
netcam_tolerant_check off 

# Let motion regulate the brightness of a video device (default: off). 
# The auto_brightness feature uses the brightness option as its target value. 
# If brightness is zero auto_brightness will adjust to average brightness value 128. 
# Only recommended for cameras without auto brightness 
auto_brightness off 

# Set the initial brightness of a video device. 
# If auto_brightness is enabled, this value defines the average brightness level 
# which Motion will try and adjust to. 
# Valid range 0-255, default 0 = disabled 
brightness 0 

# Set the contrast of a video device. 
# Valid range 0-255, default 0 = disabled 
contrast 0 

# Set the saturation of a video device. 
# Valid range 0-255, default 0 = disabled 
saturation 0 

# Set the hue of a video device (NTSC feature). 
# Valid range 0-255, default 0 = disabled 
hue 0 

############################################################ 
# File "camera" support - read raw YUV data from a file 
############################################################ 
#filecam_path /home/pi/test-cap/motion-mmal.capture 

############################################################ 
# OpenMax/MMAL camera support for Raspberry Pi 
############################################################ 
mmalcam_name vc.ril.camera 
#mmalcam_control_params 
#mmalcam_raw_capture_file /home/pi/motion-mmal.capture 

# Switch this setting to "on" to use the still image mode of the Pi's camera 
# instead of video. This gives a wider field of view, but requires 
# a much slower frame-rate to achieve exposure stability 
# (e.g. 0.25 fps or slower). You can use the minimum_frame_time 
# parameter above to achieve this 

mmalcam_use_still off 


############################################################ 
# Round Robin (multiple inputs on same video device name) 
############################################################ 

# Number of frames to capture in each roundrobin step (default: 1) 
roundrobin_frames 1 

# Number of frames to skip before each roundrobin step (default: 1) 
roundrobin_skip 1 

# Try to filter out noise generated by roundrobin (default: off) 
switchfilter off 


############################################################ 
# Motion Detection Settings: 
############################################################ 

# Threshold for number of changed pixels in an image that 
# triggers motion detection (default: 1500) 
threshold 1500 

# Automatically tune the threshold down if possible (default: off) 
threshold_tune off 

# Noise threshold for the motion detection (default: 32) 
noise_level 32 

# Automatically tune the noise threshold (default: on) 
noise_tune on 

# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined) 
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid. 
# (l)abeling must only be used once and the 'l' must be the last letter. 
# Comment out to disable 
despeckle_filter EedDl 

# Detect motion in predefined areas (1 - 9). Areas are numbered like that: 1 2 3 
# A script (on_area_detected) is started immediately when motion is   4 5 6 
# detected in one of the given areas, but only once during an event.  7 8 9 
# One or more areas can be specified with this option. Take care: This option 
# does NOT restrict detection to these areas! (Default: not defined) 
; area_detect value 

# PGM file to use as a sensitivity mask. 
# Full path name to. (Default: not defined) 
; mask_file value 

# Dynamically create a mask file during operation (default: 0) 
# Adjust speed of mask changes from 0 (off) to 10 (fast) 
smart_mask_speed 0 

# Ignore sudden massive light intensity changes given as a percentage of the picture 
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled 
lightswitch 0 

# Picture frames must contain motion at least the specified number of frames 
# in a row before they are detected as true motion. At the default of 1, all 
# motion is detected. Valid range: 1 to thousands, recommended 1-5 
minimum_motion_frames 1 

# Specifies the number of pre-captured (buffered) pictures from before motion 
# was detected that will be output at motion detection. 
# Recommended range: 0 to 5 (default: 0) 
# Do not use large values! Large values will cause Motion to skip video frames and 
# cause unsmooth movies. To smooth movies use larger values of post_capture instead. 
pre_capture 2 

# Number of frames to capture after motion is no longer detected (default: 0) 
post_capture 2 

# Event Gap is the seconds of no motion detection that triggers the end of an event. 
# An event is defined as a series of motion images taken within a short timeframe. 
# Recommended value is 60 seconds (Default). The value -1 is allowed and disables 
# events causing all Motion to be written to one single movie file and no pre_capture. 
# If set to 0, motion is running in gapless mode. Movies don't have gaps anymore. An 
# event ends right after no more motion is detected and post_capture is over. 
event_gap 60 

# Maximum length in seconds of an mpeg movie 
# When value is exceeded a new movie file is created. (Default: 0 = infinite) 
# ATTENTION: when you're not using the motion build from the tutorial, it might fail with error 'Unknown config option "max_mpeg_time"' 
# the use this line instead: 
# max_movie_time 60 
max_movie_time 60 

# Always save images even if there was no motion (default: off) 
emulate_motion off 


############################################################ 
# Image File Output 
############################################################ 

# Output 'normal' pictures when motion is detected (default: on) 
# Valid values: on, off, first, best, center 
# When set to 'first', only the first picture of an event is saved. 
# Picture with most motion of an event is saved when set to 'best'. 
# Picture with motion nearest center of picture is saved when set to 'center'. 
# Can be used as preview shot for the corresponding movie. 
output_pictures best 

# Output pictures with only the pixels moving object (ghost images) (default: off) 
output_debug_pictures off 

# The quality (in percent) to be used by the jpeg compression (default: 75) 
quality 75 

# Type of output images 
# Valid values: jpeg, ppm (default: jpeg) 
picture_type jpeg 

############################################################ 
# FFMPEG related options 
# Film (movies) file output, and deinterlacing of the video input 
# The options movie_filename and timelapse_filename are also used 
# by the ffmpeg feature 
############################################################ 

# Use ffmpeg to encode movies in realtime (default: off) 
ffmpeg_output_movies on 

# Use ffmpeg to make movies with only the pixels moving 
# object (ghost images) (default: off) 
ffmpeg_output_debug_movies off 

# Use ffmpeg to encode a timelapse movie 
# Default value 0 = off - else save frame every Nth second 
ffmpeg_timelapse 0 

# The file rollover mode of the timelapse video 
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual 
ffmpeg_timelapse_mode daily 

# Bitrate to be used by the ffmpeg encoder (default: 400000) 
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled) 
ffmpeg_bps 500000 

# Enables and defines variable bitrate for the ffmpeg encoder. 
# ffmpeg_bps is ignored if variable bitrate is enabled. 
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps, 
# or the range 2 - 31 where 2 means best quality and 31 is worst. 
ffmpeg_variable_bitrate 5 

# Codec to used by ffmpeg for the video compression. 
# Timelapse mpegs are always made in mpeg1 format independent from this option. 
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4. 
# mpeg1 - gives you files with extension .mpg 
# mpeg4 or msmpeg4 - gives you files with extension .avi 
# msmpeg4 is recommended for use with Windows Media Player because 
# it requires no installation of codec on the Windows client. 
# swf - gives you a flash film with extension .swf 
# flv - gives you a flash video with extension .flv 
# ffv1 - FF video codec 1 for Lossless Encoding (experimental) 
# mov - QuickTime (testing) 
# ogg - Ogg/Theora (testing) 
#ffmpeg_video_codec msmpeg4 
ffmpeg_video_codec mp4 

# Use ffmpeg to deinterlace video. Necessary if you use an analog camera 
# and see horizontal combing on moving objects in video or pictures. 
# (default: off) 
ffmpeg_deinterlace off 

############################################################ 
# SDL Window 
############################################################ 

# Number of motion thread to show in SDL Window (default: 0 = disabled) 
#sdl_threadnr 0 

############################################################ 
# External pipe to video encoder 
# Replacement for FFMPEG builtin encoder for ffmpeg_output_movies only. 
# The options movie_filename and timelapse_filename are also used 
# by the ffmpeg feature 
############################################################# 

# Bool to enable or disable extpipe (default: off) 
use_extpipe off 

# External program (full path and opts) to pipe raw video to 
# Generally, use '-' for STDIN... 
;extpipe mencoder -demuxer rawvideo -rawvideo w=320:h=240:i420 -ovc x264 -x264encopts bframes=4:frameref=1:subq=1:scenecut=-1:nob_adapt:threads=1:keyint=1000:8x8dct:vbv_bufsize=4000:crf=24:partitions=i8x8,i4x4:vbv_maxrate=800:no-chroma-me -vf denoise3d=16:12:48:4,pp=lb -of avi -o %f.avi - -fps %fps 



############################################################ 
# Snapshots (Traditional Periodic Webcam File Output) 
############################################################ 

# Make automated snapshot every N seconds (default: 0 = disabled) 
snapshot_interval 0 


############################################################ 
# Text Display 
# %Y = year, %m = month, %d = date, 
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS, 
# %v = event, %q = frame number, %t = thread (camera) number, 
# %D = changed pixels, %N = noise level, \n = new line, 
# %i and %J = width and height of motion area, 
# %K and %L = X and Y coordinates of motion center 
# %C = value defined by text_event - do not use with text_event! 
# You can put quotation marks around the text to allow 
# leading spaces 
############################################################ 

# Locate and draw a box around the moving object. 
# Valid values: on, off, preview (default: off) 
# Set to 'preview' will only draw a box in preview_shot pictures. 
locate_motion_mode off 

# Set the look and style of the locate box if enabled. 
# Valid values: box, redbox, cross, redcross (default: box) 
# Set to 'box' will draw the traditional box. 
# Set to 'redbox' will draw a red box. 
# Set to 'cross' will draw a little cross to mark center. 
# Set to 'redcross' will draw a little red cross to mark center. 
locate_motion_style box 

# Draws the timestamp using same options as C function strftime(3) 
# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock 
# Text is placed in lower right corner 
text_right %d.%m.%Y\n%T 

# Draw a user defined text on the images using same options as C function strftime(3) 
# Default: Not defined = no text 
# Text is placed in lower left corner 
; text_left CAMERA %t 
text_left HofCam 

# Draw the number of changed pixed on the images (default: off) 
# Will normally be set to off except when you setup and adjust the motion settings 
# Text is placed in upper right corner 
text_changes off 

# This option defines the value of the special event conversion specifier %C 
# You can use any conversion specifier in this option except %C. Date and time 
# values are from the timestamp of the first image in the current event. 
# Default: %Y%m%d%H%M%S 
# The idea is that %C can be used filenames and text_left/right for creating 
# a unique identifier for each event. 
text_event %Y%m%d%H%M%S 

# Draw characters at twice normal size on images. (default: off) 
text_double on 


# Text to include in a JPEG EXIF comment 
# May be any text, including conversion specifiers. 
# The EXIF timestamp is included independent of this text. 
;exif_text %i%J/%K%L 

############################################################ 
# Target Directories and filenames For Images And Films 
# For the options snapshot_, picture_, movie_ and timelapse_filename 
# you can use conversion specifiers 
# %Y = year, %m = month, %d = date, 
# %H = hour, %M = minute, %S = second, 
# %v = event, %q = frame number, %t = thread (camera) number, 
# %D = changed pixels, %N = noise level, 
# %i and %J = width and height of motion area, 
# %K and %L = X and Y coordinates of motion center 
# %C = value defined by text_event 
# Quotation marks round string are allowed. 
############################################################ 

# Target base directory for pictures and films 
# Recommended to use absolute path. (Default: current working directory) 
target_dir /home/pi 

# File path for snapshots (jpeg or ppm) relative to target_dir 
# Default: %v-%Y%m%d%H%M%S-snapshot 
# Default value is equivalent to legacy oldlayout option 
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot 
# File extension .jpg or .ppm is automatically added so do not include this. 
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always 
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap' 
snapshot_filename %v-%Y%m%d%H%M%S-snapshot 

# File path for motion triggered images (jpeg or ppm) relative to target_dir 
# Default: %v-%Y%m%d%H%M%S-%q 
# Default value is equivalent to legacy oldlayout option 
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q 
# File extension .jpg or .ppm is automatically added so do not include this 
# Set to 'preview' together with best-preview feature enables special naming 
# convention for preview shots. See motion guide for details 
picture_filename %v-%Y%m%d%H%M%S-%q 

# File path for motion triggered ffmpeg films (movies) relative to target_dir 
# Default: %v-%Y%m%d%H%M%S 
# Default value is equivalent to legacy oldlayout option 
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S 
# File extension .mpg or .avi is automatically added so do not include this 
# This option was previously called ffmpeg_filename 
movie_filename %v-%Y%m%d%H%M%S 

# File path for timelapse movies relative to target_dir 
# Default: %Y%m%d-timelapse 
# Default value is near equivalent to legacy oldlayout option 
# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse 
# File extension .mpg is automatically added so do not include this 
timelapse_filename %Y%m%d-timelapse 

############################################################ 
# Global Network Options 
############################################################ 
# Enable or disable IPV6 for http control and stream (default: off) 
ipv6_enabled off 

############################################################ 
# Live Stream Server 
############################################################ 

# The mini-http server listens to this port for requests (default: 0 = disabled) 
stream_port 8080 

# Quality of the jpeg (in percent) images produced (default: 50) 
stream_quality 50 

# Output frames at 1 fps when no motion is detected and increase to the 
# rate given by stream_maxrate when motion is detected (default: off) 
stream_motion on 

# Maximum framerate for stream streams (default: 1) 
stream_maxrate 4 

# Restrict stream connections to localhost only (default: on) 
stream_localhost off 

# Limits the number of images per connection (default: 0 = unlimited) 
# Number can be defined by multiplying actual stream rate by desired number of seconds 
# Actual stream rate is the smallest of the numbers framerate and stream_maxrate 
stream_limit 0 

# Set the authentication method (default: 0) 
# 0 = disabled 
# 1 = Basic authentication 
# 2 = MD5 digest (the safer authentication) 
stream_auth_method 0 

# Authentication for the stream. Syntax username:password 
# Default: not defined (Disabled) 
; stream_authentication username:password 


############################################################ 
# HTTP Based Control 
############################################################ 

# TCP/IP port for the http server to listen on (default: 0 = disabled) 
webcontrol_port 8081 

# Restrict control connections to localhost only (default: on) 
webcontrol_localhost off 

# Output for http server, select off to choose raw text plain (default: on) 
webcontrol_html_output on 

# Authentication for the http based control. Syntax username:password 
# Default: not defined (Disabled) 
; webcontrol_authentication username:password 


############################################################ 
# Tracking (Pan/Tilt) 
############################################################# 

# Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo, 6=servo) 
# The generic type enables the definition of motion center and motion size to 
# be used with the conversion specifiers for options like on_motion_detected 
track_type 0 

# Enable auto tracking (default: off) 
track_auto off 

# Serial port of motor (default: none) 
;track_port /dev/ttyS0 

# Motor number for x-axis (default: 0) 
;track_motorx 0 

# Set motorx reverse (default: 0) 
;track_motorx_reverse 0 

# Motor number for y-axis (default: 0) 
;track_motory 1 

# Set motory reverse (default: 0) 
;track_motory_reverse 0 

# Maximum value on x-axis (default: 0) 
;track_maxx 200 

# Minimum value on x-axis (default: 0) 
;track_minx 50 

# Maximum value on y-axis (default: 0) 
;track_maxy 200 

# Minimum value on y-axis (default: 0) 
;track_miny 50 

# Center value on x-axis (default: 0) 
;track_homex 128 

# Center value on y-axis (default: 0) 
;track_homey 128 

# ID of an iomojo camera if used (default: 0) 
track_iomojo_id 0 

# Angle in degrees the camera moves per step on the X-axis 
# with auto-track (default: 10) 
# Currently only used with pwc type cameras 
track_step_angle_x 10 

[...] 

ответ

2

Еще нет ответа, поэтому я нашел обходной путь:

В on_movie_end случае motion.conf, я запускаю команду, которая преобразует мой .avi файл в .mp4

FFmpeg -i% е -c: v libx264 -c: копия myvideo.mp4

(% е будет FULLPATH видеофайла)

работает как шарм

+1

Возможно, вам нужно изменить все разрешения? Это не работает для меня. Это не похоже на то, что событие вообще стреляет. –

+1

Прошло год, но я недавно загрузил часть своего проекта, если он может вам помочь. [Вот моя конфигурация движения] (https://github.com/Maarti/RaspberryPiMotion/blob/master/etc/motion/motion.conf), где я вызываю [этот скрипт] (https://github.com/Maarti/ RaspberryPiMotion/blob/master/home/pi/MotionScripts/onMovieEndScript.sh) в ** on_movie_end ** (найдите строку ffmpeg). Пользователь «motion» должен иметь разрешение на выполнение сценария и запись в папку, в которой вы хотите получить видео. – Maarti

+0

Спасибо! Это очень помогло. –

-2

Motion 4.0 поддерживает формат mp4. См. Ниже мою конфигурацию.

 
    Supported formats are: 
    # mpeg4 or msmpeg4 - gives you files with extension .avi 
    # msmpeg4 is recommended for use with Windows Media Player because 
    # it requires no installation of codec on the Windows client. 
    # swf - gives you a flash film with extension .swf 
    # flv - gives you a flash video with extension .flv 
    # ffv1 - FF video codec 1 for Lossless Encoding 
    # mov - QuickTime 
    # mp4 - MPEG-4 Part 14 H264 encoding 
    # mkv - Matroska H264 encoding 
    # hevc - H.265/HEVC (High Efficiency Video Coding) 
    ffmpeg_video_codec mp4