Gstreamer 在使用v4l2loopback创建的虚拟设备中复制网络摄像头流
你好,视频流之神 我正在尝试复制一个网络摄像头流,以便发送它,并且仍然能够在网络浏览器中使用它,例如 目标是使用v4l2Loopback创建一个虚拟视频设备使用gstreamer从真实的网络摄像头获取源代码在我需要的地方制作一个tee流(rtps服务器),并在另一个tee分支上使用v4l2sink转发到使用v4l2Loopback创建的虚拟设备 我正在Ubuntu20.04下测试,但计划最终在raspian buster上使用它 我已经 及 看起来还可以Gstreamer 在使用v4l2loopback创建的虚拟设备中复制网络摄像头流,gstreamer,v4l2loopback,Gstreamer,V4l2loopback,你好,视频流之神 我正在尝试复制一个网络摄像头流,以便发送它,并且仍然能够在网络浏览器中使用它,例如 目标是使用v4l2Loopback创建一个虚拟视频设备使用gstreamer从真实的网络摄像头获取源代码在我需要的地方制作一个tee流(rtps服务器),并在另一个tee分支上使用v4l2sink转发到使用v4l2Loopback创建的虚拟设备 我正在Ubuntu20.04下测试,但计划最终在raspian buster上使用它 我已经 及 看起来还可以 $ v4l2-ctl --all -d
$ v4l2-ctl --all -d /dev/video100
Driver Info:
Driver name : v4l2 loopback
Card type : Dummy video device (0x0000)
Bus info : platform:v4l2loopback-000
Driver version : 5.4.65
Capabilities : 0x85208003
Video Capture
Video Output
Video Memory-to-Memory
Read/Write
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x85208000
Video Memory-to-Memory
Read/Write
Streaming
Extended Pix Format
Device Capabilities
Priority: 0
Video input : 0 (loopback: ok)
Video output: 0 (loopback in)
Format Video Output:
Width/Height : 1920/1080
Pixel Format : 'YU12' (Planar YUV 4:2:0)
Field : None
Bytes per Line : 1920
Size Image : 3110400
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Limited Range)
Flags :
Streaming Parameters Video Capture:
Frames per second: 30.000 (30/1)
Read buffers : 8
Streaming Parameters Video Output:
Frames per second: 30.000 (30/1)
Write buffers : 8
User Controls
keep_format 0x0098f900 (bool) : default=0 value=0
sustain_framerate 0x0098f901 (bool) : default=0 value=0
timeout 0x0098f902 (int) : min=0 max=100000 step=1 default=0 value=0
timeout_image_io 0x0098f903 (bool) : default=0 value=0
here
在流式传输我真正的网络摄像头之前,我只是尝试流式传输videotestsrc,就像gstreamer v4l2sink文档中解释的那样
gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video100
奇怪的是,它说它不是一个输出设备(GST-DEBUG=3)
这看起来很有效,但我收到了很多警告:
$ gst-launch-1.0 -v videotestsrc ! identity drop-allocation=1 ! v4l2sink device=/dev/video100
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL…
0:00:00.128889803 11076 0xe230f0 FIXME default gstutils.c:3981:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.129497619 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUYV@48x32: 0
0:00:00.129647893 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at UYVY@48x32: 0
0:00:00.129766111 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 422P@48x32: 0
0:00:00.129872201 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YU12@48x32: 0
0:00:00.129975513 11076 0xe230f0 WARN v4l2 gstv4l2o$ gst-launch-1.0 -v videotestsrc ! identity drop-allocation=1 ! v4l2sink device=/dev/video100
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL…
0:00:00.128889803 11076 0xe230f0 FIXME default gstutils.c:3981:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.129497619 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUYV@48x32: 0
0:00:00.129647893 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at UYVY@48x32: 0
0:00:00.129766111 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 422P@48x32: 0
0:00:00.129872201 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YU12@48x32: 0
0:00:00.129975513 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YV12@48x32: 0
0:00:00.130079232 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 411P@48x32: 0
0:00:00.130190210 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YVU9@48x32: 0
0:00:00.130291689 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUV9@48x32: 0
0:00:00.130395612 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at JPEG@48x32: 0
0:00:00.130483220 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MJPG@48x32: 0
0:00:00.130570810 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at dvsd@48x32: 0
0:00:00.130658326 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGB4@48x32: 0
0:00:00.130753046 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BGR4@48x32: 0
0:00:00.130847173 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGB3@48x32: 0
0:00:00.130959966 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BGR3@48x32: 0
0:00:00.131055000 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at NV12@48x32: 0
0:00:00.131170441 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBQ@48x32: 0
0:00:00.131266012 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBP@48x32: 0
0:00:00.131359676 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBO@48x32: 0
0:00:00.131454285 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BA81@48x32: 0
0:00:00.131539338 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GBRG@48x32: 0
0:00:00.131623317 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GRBG@48x32: 0
0:00:00.131707907 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGGB@48x32: 0
0:00:00.131792701 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GREY@48x32: 0
0:00:00.131889365 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VP90@48x32: 0
0:00:00.131974881 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VP80@48x32: 0
0:00:00.132062378 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VC1L@48x32: 0
0:00:00.132151839 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VC1G@48x32: 0
0:00:00.132250595 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at XVID@48x32: 0
0:00:00.132340129 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG4@48x32: 0
0:00:00.132427053 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG2@48x32: 0
0:00:00.132513495 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG1@48x32: 0
0:00:00.132601677 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at H263@48x32: 0
0:00:00.132691304 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at AVC1@48x32: 0
0:00:00.132781080 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at H264@48x32: 0
0:00:00.132869910 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at Y16 @48x32: 0
0:00:00.132966408 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YVYU@48x32: 0
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstIdentity:identity0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstIdentity:identity0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
Le pipeline a terminé la phase PREROLL…
Passage du pipeline à la phase PLAYING…
New clock: GstSystemClock
我刚刚讨论了这一点,并将解释v4l2视频设备的主要障碍。基本问题是,真正的设备只能访问一次,而环回设备不受限制。 首先启动usb网络摄像头。现在应该有/dev/video0和/dev/video1。我不知道为什么会创建video1,但请忽略它。 下一步使用“modprobe v4l2loopback devices=4”启动v4l2loopback,现在您应该拥有video0到video6。 现在是棘手的部分,如果您尝试将/dev/video0复制到/dev/video3,video3将正常工作,但video0现在将报告“设备或资源繁忙”,因此您仍然需要1个视频输出。这是因为实际设备一次只能由一个程序访问,因为它们具有实际的v4l2控件。不能有两个程序访问相同的控件 解决方案是复制/dev/video0两次,如下所示: ffmpeg-f video4linux2-i/dev/video0-codec copy-f v4l2/dev/video3-codec copy-f v4l2/dev/video4 现在,您可以使用“ffplay-i/dev/video3”查看正常的video0 而且,您可以使用/dev/video4执行其他操作,如 gst-launch-1.0-v4l2src设备=/dev/video4!自动视频转换!视频转换!视频/x-raw,宽度=640,高度=480,帧速率=30/1!眩晕!v4l2sink设备=/dev/video5 现在,您可以看到带有“ffplay-i/dev/video3”的原始视频和带有“ffplay-i/dev/video5”的操纵视频
我希望这能有所帮助,我花了几个小时在谷歌上搜索才弄明白这一点。:-) 我刚刚谈到了这一点,并将解释v4l2视频设备的大障碍。基本问题是,真正的设备只能访问一次,而环回设备不受限制。 首先启动usb网络摄像头。现在应该有/dev/video0和/dev/video1。我不知道为什么会创建video1,但请忽略它。 下一步使用“modprobe v4l2loopback devices=4”启动v4l2loopback,现在您应该拥有video0到video6。 现在是棘手的部分,如果您尝试将/dev/video0复制到/dev/video3,video3将正常工作,但video0现在将报告“设备或资源繁忙”,因此您仍然需要1个视频输出。这是因为实际设备一次只能由一个程序访问,因为它们具有实际的v4l2控件。不能有两个程序访问相同的控件 解决方案是复制/dev/video0两次,如下所示: ffmpeg-f video4linux2-i/dev/video0-codec copy-f v4l2/dev/video3-codec copy-f v4l2/dev/video4 现在,您可以使用“ffplay-i/dev/video3”查看正常的video0 而且,您可以使用/dev/video4执行其他操作,如 gst-launch-1.0-v4l2src设备=/dev/video4!自动视频转换!视频转换!视频/x-raw,宽度=640,高度=480,帧速率=30/1!眩晕!v4l2sink设备=/dev/video5 现在,您可以看到带有“ffplay-i/dev/video3”的原始视频和带有“ffplay-i/dev/video5”的操纵视频
我希望这能有所帮助,我花了几个小时在谷歌上搜索才弄明白这一点。:-) 谢谢你的好意,我将尝试你的建议,我成功地使环回工作,因为我还使用
gst-launch1.0 v4l2src设备=/dev/video0将源视频正确地拆分为2!发球台名称=t!队列v4l2sink设备=/dev/videoX t!队列v4l2sink device=/dev/videoY
my ISSEU在尝试gstreamer h264等时更多地使用caps,因为目标不是分割一个web cam,而是分割一个h264 rtsp流输入。。。但我还是尝试了你的观点谢谢的againI测试了你的ffmpeg分割,即使它看起来与gstreamer查看器一起工作,但在尝试使用浏览器时,它看起来不起作用例如,当我尝试获取RTSP源而不是V4L源时,它根本不起作用:(您好,这对我很有用,我使用http访问rtsp网络摄像头。#此行需要root#v4l2loopback ctl set fps/dev/video0 25#ffmpeg-I“”-r 25-vcodec rawvideo-pix_fmt yuv420p-y-f v4l2/dev/video1thnak对您的帮助我将尝试您的建议,我成功地使环回工作,因为我还使用gst-launch1.0 v4l2src设备=/dev/video0!tee name=t!queue!v4l2sink设备=/dev/videoX t!queue!v4l2sink设备将源视频正确拆分为2=/dev/videoY
在尝试gstreamer h264等时,我的ISSEU更多地使用caps,因为目标不是分割一个web cam,而是分割一个h264 rtsp流输入…但我尝试了你的观点无论如何,感谢的againI测试了你的ffmpeg分割,即使它看起来与gstreamer查看器一起工作,但在尝试使用浏览器例如和wh时,它看起来也不工作恩,我尝试获取一个RTSP源代码而不是V4L源代码,但它根本不起作用:(嗨,这对我来说很有效,我使用http访问RTSP网络摄像头。#这行需要根目录#v4l2loopback ctl set fps/dev/video0 25#ffmpeg-I”“-r 25-vcodec rawvideo-pix#fmt yuv420p-y-f v4l2/dev/video1
gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video100
$ gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video100
Setting pipeline to PAUSED ...
0:00:00.137162087 12355 0x5601d5516010 WARN v4l2 v4l2_calls.c:636:gst_v4l2_open:<v4l2sink0> error: Device '/dev/video100' is not a output device.
0:00:00.137209656 12355 0x5601d5516010 WARN v4l2 v4l2_calls.c:636:gst_v4l2_open:<v4l2sink0> error: Capabilities: 0x85208000
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Device '/dev/video100' is not a output device.
Additional debug info:
v4l2_calls.c(636): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Capabilities: 0x85208000
Setting pipeline to NULL ...
Freeing pipeline ...
gst-launch-1.0 videotestsrc ! identity drop-allocation=1 ! v4l2sink device=/dev/video100
$ gst-launch-1.0 -v videotestsrc ! identity drop-allocation=1 ! v4l2sink device=/dev/video100
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL…
0:00:00.128889803 11076 0xe230f0 FIXME default gstutils.c:3981:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.129497619 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUYV@48x32: 0
0:00:00.129647893 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at UYVY@48x32: 0
0:00:00.129766111 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 422P@48x32: 0
0:00:00.129872201 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YU12@48x32: 0
0:00:00.129975513 11076 0xe230f0 WARN v4l2 gstv4l2o$ gst-launch-1.0 -v videotestsrc ! identity drop-allocation=1 ! v4l2sink device=/dev/video100
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL…
0:00:00.128889803 11076 0xe230f0 FIXME default gstutils.c:3981:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.129497619 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUYV@48x32: 0
0:00:00.129647893 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at UYVY@48x32: 0
0:00:00.129766111 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 422P@48x32: 0
0:00:00.129872201 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YU12@48x32: 0
0:00:00.129975513 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YV12@48x32: 0
0:00:00.130079232 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at 411P@48x32: 0
0:00:00.130190210 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YVU9@48x32: 0
0:00:00.130291689 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YUV9@48x32: 0
0:00:00.130395612 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at JPEG@48x32: 0
0:00:00.130483220 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MJPG@48x32: 0
0:00:00.130570810 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at dvsd@48x32: 0
0:00:00.130658326 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGB4@48x32: 0
0:00:00.130753046 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BGR4@48x32: 0
0:00:00.130847173 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGB3@48x32: 0
0:00:00.130959966 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BGR3@48x32: 0
0:00:00.131055000 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at NV12@48x32: 0
0:00:00.131170441 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBQ@48x32: 0
0:00:00.131266012 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBP@48x32: 0
0:00:00.131359676 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGBO@48x32: 0
0:00:00.131454285 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at BA81@48x32: 0
0:00:00.131539338 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GBRG@48x32: 0
0:00:00.131623317 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GRBG@48x32: 0
0:00:00.131707907 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at RGGB@48x32: 0
0:00:00.131792701 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at GREY@48x32: 0
0:00:00.131889365 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VP90@48x32: 0
0:00:00.131974881 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VP80@48x32: 0
0:00:00.132062378 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VC1L@48x32: 0
0:00:00.132151839 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at VC1G@48x32: 0
0:00:00.132250595 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at XVID@48x32: 0
0:00:00.132340129 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG4@48x32: 0
0:00:00.132427053 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG2@48x32: 0
0:00:00.132513495 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at MPG1@48x32: 0
0:00:00.132601677 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at H263@48x32: 0
0:00:00.132691304 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at AVC1@48x32: 0
0:00:00.132781080 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at H264@48x32: 0
0:00:00.132869910 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at Y16 @48x32: 0
0:00:00.132966408 11076 0xe230f0 WARN v4l2 gstv4l2object.c:2514:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0:sink> Unknown frame interval type at YVYU@48x32: 0
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstIdentity:identity0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstIdentity:identity0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mode=(string)progressive, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1
Le pipeline a terminé la phase PREROLL…
Passage du pipeline à la phase PLAYING…
New clock: GstSystemClock
$ ffmpeg -f video4linux2 -s 640x480 -i /dev/video100 -ss 0:0:2 -frames 1 /tmp/out2.jpg
ffmpeg version 4.1.6-1~deb10u1+rpt1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
...[truncated because of stack overflow body size limit]...
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x136f230] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to '/tmp/out2.jpg':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: mjpeg, yuvj422p(pc), 320x240, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc
Metadata:
encoder : Lavc58.35.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
[video4linux2,v4l2 @ 0x1363200] Dequeued v4l2 buffer contains 155648 bytes, but 153600 were expected. Flags: 0x00000001.
/dev/video100: Invalid data found when processing input
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)