Dav*_*lay 11 video ffmpeg images
我正在尝试使用 ffmpeg 从 H.264 无线 IP 摄像机捕获静止图像。我在这里发现了一个类似的问题:如何使用 ffmpeg 从 H264 视频文件中提取高质量的 JPEG 图像?
ffmpeg -y -i rtsp://10.2.69.201:554/ch0_0.h264 -r 10 -f image2 /var/www/camera.jpg
Run Code Online (Sandbox Code Playgroud)
我已经实现了它,如该示例所示。你可以看到我在这里得到的图像样本:
基本上问题是图像的底部总是块状的。如果天空有更多细节和云彩,则图像的整个下半部分可能会出现块状或模糊。
我的相机的流选项有限。其中之一是 I-Frame 间隔,您可以在 25-100 之间改变它。
有没有人对我如何获得更好的图像有一些建议?我不介意是否可以将流实际存储到视频文件中并每 2 分钟提取一次静止图像。这很容易做到吗?
这是 ffmpeg 输出:
ffmpeg version 1.2.4 Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 3 2013 07:36:02 with gcc 4.8 (Debian 4.8.1-10)
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/i386-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disab libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[h264 @ 0x867ed80] RTP: missed 1 packets
Last message repeated 1 times
[h264 @ 0x867ed80] mb_type 34 in I slice too large at 17 18
[h264 @ 0x867ed80] error while decoding MB 17 18
[h264 @ 0x867ed80] concealing 5732 DC, 5732 AC, 5732 MV errors in I frame
[h264 @ 0x867ed80] RTP: missed 1 packets
Last message repeated 14 times
[rtsp @ 0x867c640] Stream #1: not enough frames to estimate rate; consider increasing probesize
[rtsp @ 0x867c640] Estimating duration from bitrate, this may be inaccurate
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://10.2.69.201:554/ch0_0.h264':
Metadata:
title : H.264 Program Stream, streamed by the LIVE555 Media Server
comment : ch0_0.h264
Duration: N/A, start: 0.065833, bitrate: 64 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1600x1200, 15.19 tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
Output #0, image2, to '/var/www/camera.jpg':
Metadata:
title : H.264 Program Stream, streamed by the LIVE555 Media Server
comment : ch0_0.h264
encoder : Lavf54.63.104
Stream #0:0: Video: mjpeg, yuvj420p, 1600x1200, q=2-31, 200 kb/s, 90k tbn, 10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
[h264 @ 0x8793260] mb_type 34 in I slice too large at 17 18
[h264 @ 0x8793260] error while decoding MB 17 18
[h264 @ 0x8793260] concealing 5732 DC, 5732 AC, 5732 MV errors in I frame
[image2 @ 0x86d1640] Could not get frame filename number 2 from pattern '/var/www/camera.jpg' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument
Run Code Online (Sandbox Code Playgroud)
slh*_*hck 13
正如您的输出所暗示的那样,问题在于您丢失了 RTP 数据包,因此丢失了视频的重要部分。使用您的命令,ffmpeg 将只输出一个图像——一旦它看到第一帧的结尾——但缺少一些数据。所以它试图隐藏宏块中的错误,但它只能通过复制部分已经解码的图像来做到这一点,这会导致你在这里看到的伪影。
FFmpeg Wiki 有一个示例,说明如何每x秒创建一个缩略图:
ffmpeg -i rtsp://10.2.69.201:554/ch0_0.h264 -f image2 -vf fps=fps=1/120 img%03d.jpg
Run Code Online (Sandbox Code Playgroud)
当然,您可以尝试将流保存在文件中。在这种情况下,它会在 120 秒后停止:
ffmpeg -i rtsp://10.2.69.201:554/ch0_0.h264 -c:v copy -t 120 stream.mp4
Run Code Online (Sandbox Code Playgroud)
如果可以,请尝试下载或编译最近的静态构建,因为您的 ffmpeg 有点旧,而且您永远不知道是否没有遇到已修复的错误。
归档时间: |
|
查看次数: |
54203 次 |
最近记录: |