xawtv/streamer 网络摄像头快照被“包裹”,但流媒体可以正常工作

xawtv/streamer 网络摄像头快照被“包裹”,但流媒体可以正常工作

如果我使用网络摄像头拍摄快照,无论是通过右键单击xawtv还是通过streamer -o snapshot.jpeg,图像都会失真。最简单的解释方法是通过示例图片:

在此处输入图片描述 在此处输入图片描述

下面的两个“框架”应该交换位置。如果我只是跑步xawtvvlc观看网络摄像头的实时画面,则不会出现这种失真,视频效果很好。

我不知道这是怎么发生的。可能出了什么问题?我应该从哪里开始进行故障排除?

更新:事实证明,图片的上部“框架”与其他图片不是来自同一时间点。我添加了第二张图片来显示这一点。

调试信息

xawtv 是 xawtv-3.101,运行在 Linux/x86_64 (3.6.8-1-ARCH) 上。上面的图片是用 生成的streamer -d -o test.jpeg,它生成以下调试输出:

checking writer files [multiple image files] ...
  video name=ppm ext=ppm: ext mismatch [need jpeg]
  video name=pgm ext=pgm: ext mismatch [need jpeg]
  video name=jpeg ext=jpeg: OK
files / video: JPEG (JFIF) / audio: none
vid-open: trying: libv4l... 
Using libv4l plugin
v4l2: device caps: 2, required 0
v4l2: open
v4l2: device info:
  uvcvideo 3.6.8 / Video WebCam @ usb-0000:00:1d.7-5
vid-open: ok: libv4l
movie_init_writer start
setformat: JPEG (JFIF) (320x240): failed
v4l2: new capture params (320x240, YU12, 115200 byte)
setformat: 12 bit YUV 4:2:0 (planar) (320x240): ok
v4l2: new capture params (320x240, YU12, 115200 byte)
writer_video_thread start [pid=31119]
movie_init_writer end (h=0x1808bc0)
convert_thread start [pid=31119]
movie_writer_start
convert-in : 320x240 12 bit YUV 4:2:0 (planar) (size=115200)
convert-out: 320x240 JPEG (JFIF) (size=230400)
v4l2: buf 0: video-cap 0xabcdef00+16777216, used 0
v4l2: buf 1: video-cap 0xabcdef01+16777216, used 0
v4l2: buf 2: video-cap 0xabcdef02+16777216, used 0
v4l2: buf 3: video-cap 0xabcdef03+16777216, used 0
v4l2: buf 4: video-cap 0xabcdef04+16777216, used 0
v4l2: buf 5: video-cap 0xabcdef05+16777216, used 0
v4l2: buf 6: video-cap 0xabcdef06+16777216, used 0
v4l2: buf 7: video-cap 0xabcdef07+16777216, used 0
v4l2: buf 8: video-cap 0xabcdef08+16777216, used 0
v4l2: buf 9: video-cap 0xabcdef09+16777216, used 0
v4l2: buf 10: video-cap 0xabcdef0a+16777216, used 0
v4l2: buf 11: video-cap 0xabcdef0b+16777216, used 0
v4l2: buf 12: video-cap 0xabcdef0c+16777216, used 0
v4l2: buf 13: video-cap 0xabcdef0d+16777216, used 0
v4l2: buf 14: video-cap 0xabcdef0e+16777216, used 0
v4l2: buf 15: video-cap 0xabcdef0f+16777216, used 0
v4l2: start ts=47580553178000
rec 0:00.00  -  a/r: -0.00s [0], a/v: -0.00s [0]  
movie_writer_stop
fifo conv: EOF 1/1
fifo video: EOF 1/1
convert_thread done [pid=31119]
writer_video_thread done
v4l2: buf 0: video-cap 0xabcdef00+16777216, used 115200
v4l2: buf 1: video-cap 0xabcdef01+16777216, used 0
v4l2: buf 2: video-cap 0xabcdef02+16777216, used 0
v4l2: buf 3: video-cap 0xabcdef03+16777216, used 0
v4l2: buf 4: video-cap 0xabcdef04+16777216, used 0
v4l2: buf 5: video-cap 0xabcdef05+16777216, used 0
v4l2: buf 6: video-cap 0xabcdef06+16777216, used 0
v4l2: buf 7: video-cap 0xabcdef07+16777216, used 0
v4l2: buf 8: video-cap 0xabcdef08+16777216, used 0
v4l2: buf 9: video-cap 0xabcdef09+16777216, used 0
v4l2: buf 10: video-cap 0xabcdef0a+16777216, used 0
v4l2: buf 11: video-cap 0xabcdef0b+16777216, used 0
v4l2: buf 12: video-cap 0xabcdef0c+16777216, used 0
v4l2: buf 13: video-cap 0xabcdef0d+16777216, used 0
v4l2: buf 14: video-cap 0xabcdef0e+16777216, used 0
v4l2: buf 15: video-cap 0xabcdef0f+16777216, used 0
fifo max fill: audio 0/0, video 1/16, convert 1/16  
v4l2: close

相关内容