[FFmpeg-user] Feeding DVR to ffserver

Alex Povolotsky tarkhil at corp.infotel.ru
Wed Feb 24 15:04:13 CET 2016


Hello

I'm working with pretty aged video recorer for surveillance cams, trying
to connect it to zoneminder instead of weird propiertary surveillance soft.

tanidvr gets video stream, but all attempts to send it to ffserver
failed so far.

=== ffserver.conf ===
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>
=== ffserver.conf ===

than

# /usr/local/bin/tanidvr -m 1 -c 1 -m 1 -t dvr1 -u admin -w admin |
ffmpeg -i - -vcodec h264 -r 1/30 -f lavfi -i aevalsrc=0 -c:a libmp3lame
http://localhost:8090/feed1.ffm
ffmpeg version 2.8.6 Copyright (c) 2000-2016 the FFmpeg developers
  built with FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final
208032) 20140512
  configuration: --prefix=/usr/local --mandir=/usr/local/man
--datadir=/usr/local/share/ffmpeg
--pkgconfigdir=/usr/local/libdata/pkgconfig --enable-shared --enable-gpl
--enable-postproc --enable-avfilter --enable-avresample
--enable-pthreads --disable-libstagefright-h264 --disable-libutvideo
--disable-libsoxr --cc=cc --extra-cflags='-msse
-I/usr/local/include/vorbis -I/usr/local/include'
--extra-ldflags='-L/usr/local/lib ' --extra-libs=-lpthread
--disable-libaacplus --disable-indev=alsa --disable-outdev=alsa
--disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libass
--disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcelt
--disable-libdc1394 --disable-debug --enable-htmlpages --disable-libfaac
--disable-libfdk-aac --enable-ffserver --disable-libflite
--disable-fontconfig --disable-libfreetype --enable-frei0r
--disable-libfribidi --disable-libgme --disable-libgsm --enable-iconv
--disable-libilbc --disable-indev=jack --disable-ladspa
--disable-libmp3lame --disable-libbluray --enable-mmx
--disable-libmodplug --disable-openal --disable-indev=openal
--disable-opencl --enable-libopencv --disable-opengl
--enable-libopenh264 --disable-libopenjpeg --disable-libopus
--disable-libpulse --disable-indev=pulse --disable-outdev=pulse
--disable-libquvi --enable-runtime-cpudetect --enable-librtmp
--enable-libschroedinger --disable-ffplay --disable-outdev=sdl
--disable-libsmbclient --disable-libsnappy --disable-libspeex
--enable-sse --disable-libssh --enable-libtheora --disable-libtwolame
--disable-libv4l2 --disable-indev=v4l2 --disable-outdev=v4l2
--disable-vaapi --disable-vdpau --disable-libvidstab --enable-libvorbis
--disable-libvo-aacenc --disable-libvo-amrwbenc --enable-libvpx
--disable-libwavpack --disable-libwebp --disable-x11grab
--enable-libx264 --disable-libx265 --disable-libxcb --enable-libxvid
--disable-outdev=xv --disable-libzmq --disable-libzvbi --disable-gnutls
--enable-openssl --enable-version3 --enable-nonfree
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
INFO (main): Identifying type of media container in stream...
INFO (buffer): Starting DVR session controller...
DETAIL (buffer): DVR session controller started. Waiting for data from
that...
INFO (DVR streamer): DVR session controller started.
INFO (main): Media container: DHAV
Invalid UE golomb code
    Last message repeated 1 times
Input #0, matroska,webm, from 'pipe:':
  Metadata:
    encoder         : TaniDVR 1.4.1
  Duration: 00:00:00.27, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 352x288,
SAR 12:11 DAR 4:3, 24.98 fps, 24.98 tbr, 1000k tbn, 2000k tbc
Input #1, lavfi, from 'aevalsrc=0':
  Duration: N/A, start: 0.000000, bitrate: 2822 kb/s
    Stream #1:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
[mpeg1video @ 0x808478200] bitrate tolerance 21333 too small for bitrate
64000, overriding
[mpeg1video @ 0x808478200] too many threads/slices (9), reducing to 8
[mpeg1video @ 0x808478200] MPEG1/2 does not support 3/1 fps
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
  Metadata:
    encoder         : TaniDVR 1.4.1
    creation_time   : 2016-02-24 17:01:01
    Stream #0:0: Audio: mp2, 22050 Hz, mono, s16, 64 kb/s
    Metadata:
      encoder         : Lavc56.60.100 mp2
    Stream #0:1: Video: mpeg1video, none, 160x128, q=2-31, 64 kb/s, SAR
16:15 DAR 4:3, 25 fps, 3 tbc
    Metadata:
      encoder         : Lavc56.60.100 mpeg1video
    Stream #0:2: Audio: wmav2, 22050 Hz, 1 channels, fltp, 64 kb/s
    Metadata:
      encoder         : Lavc56.60.100 wmav2
    Stream #0:3: Video: msmpeg4v3 (msmpeg4), none, 352x240, q=2-31, 256
kb/s, SAR 10:11 DAR 4:3, 24.98 fps, 15 tbc
    Metadata:
      encoder         : Lavc56.60.100 msmpeg4
Stream mapping:
  Stream #1:0 -> #0:0 (pcm_f64le (native) -> mp2 (native))
  Stream #0:0 -> #0:1 (h264 (native) -> mpeg1video (native))
  Stream #1:0 -> #0:2 (pcm_f64le (native) -> wmav2 (native))
  Stream #0:0 -> #0:3 (h264 (native) -> msmpeg4v3 (msmpeg4))
Error while opening encoder for output stream #0:1 - maybe incorrect
parameters such as bit_rate, rate, width or height
FATAL ERROR (main): Unable to write to target: -1.
DETAIL (buffer): Got SIGTERM|SIGHUP|SIGXCPU.
DETAIL (buffer): Write socket closed remotely.
DETAIL (buffer): buffered_tunnel_pipe() returned: -5
DETAIL (buffer): Got SIGCHLD.
DETAIL (buffer): Intermediate process returned (102).
DETAIL (main): Got SIGCHLD.

I'm new to video processing and maybe I'm doing lots of dumb errors, but
googling for error yielded nothing meaningful.

What should I do to feed ffserver with video and what are good codec
params to compress the video?

Where can I find good introduction for video processing with ffmpeg?

Alex


More information about the ffmpeg-user mailing list