我在 Debian Wheezy 下安装了 ffmpeg,并尝试在 24 小时内以每小时为一个时间段记录办公室周围的几个摄像机。
当我输入以下命令时,它可以毫无问题地记录下来;
ffmpeg -f mjpeg -i http://<user>:<pass>@192.168.200.220/video/mjpg.cgi -acodec copy -vcodec copy ~/data/temp.mp4
当我尝试以下命令(其中包含片段)时,它不会开始录制。
ffmpeg -f mjpeg -i http://<user>:<pass>@192.168.200.220/video/mjpg.cgi -acodec copy -vcodec copy -y -f segment -segment_time 3600 -segment_wrap 24 ~/data/temp%03d.mp4
这是完整的错误;
ffmpeg version 1.0.10 Copyright (c) 2000-2014 the FFmpeg developers
built on Jul 25 2014 07:50:40 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libfdk-aac --enable-libdc1394 --disable-altivec --dis libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
max_analyze_duration 5000000 reached at 5000000
[mjpeg @ 0x1750e60] Estimating duration from bitrate, this may be inaccurate
Input #0, mjpeg, from 'http://<user>:<password>@192.168.200.220/video/mjpg.cgi':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p, 640x480 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1200k tbn, 25 tbc
Output #0, segment, to '/home/map7/data/temp3.mp4':
Output file #0 does not contain any stream
Received signal 2: terminating.
我尝试了不同的 max_analyze_duration 设置,但没有成功
更新
尝试使用 ffmpeg 3.0
这有效
docker run jrottenberg/ffmpeg -i http://<user>:<pass>@192.168.200.220/video/mjpg.cgi -f mjpeg - > /media/data/temp%03d.mp4
我也使各个部分的工作变得更好一些,但是又遇到了另一个问题;
docker run -v /media/data:/data jrottenberg/ffmpeg -i http://:@192.168.200.220/video/mjpg.cgi -f fragment -segment_time 5 -segment_wrap 24 /data/temp%03d.mpeg
我现在遇到以下问题;
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=39 size=343ate=N/A speed=0.153x
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=229 size=332te=N/A speed=0.152x
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=1323 size=13091N/A speed=0.151x
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=3352 size=13091
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=5393 size=13091
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=7434 size=13091
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=9475 size=13091
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=11516 size=13091
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=457 size=536te=N/A speed=0.151x
[mpeg @ 0x2fea340] buffer underflow st=0 bufi=81 size=270ate=N/A speed=0.15x
^C[mpeg @ 0x2fea340] VBV buffer size not set, using default size of 130KB15x
If you want the mpeg file to be compliant to some specification
但它现在确实输出了一些东西。