C# 如何使用gstreamer从ip摄像头rtsp获取图像

C# 如何使用gstreamer从ip摄像头rtsp获取图像,c#,c,gstreamer,ip-camera,C#,C,Gstreamer,Ip Camera,我使用以下命令使用gstreamer从ip摄像头获取图像 gst-launch-0.10 -v rtspsrc location="rtsp://ipaddress :554/user=&password=&channel=1&stream=0.sdp?real_stream--rtp-cachi ng=100" do-timestamp=true is_live=treu timeout=5 ! multipartdemux ! ffmpegcolors pace !

我使用以下命令使用gstreamer从ip摄像头获取图像

gst-launch-0.10 -v rtspsrc location="rtsp://ipaddress
:554/user=&password=&channel=1&stream=0.sdp?real_stream--rtp-cachi
ng=100" do-timestamp=true is_live=treu timeout=5 ! multipartdemux ! ffmpegcolors
pace ! jpegenc ! filesink location=test.jpeg

但我只有一个空文件。请帮帮我。

首先,您应该使用GStreamer 1.x版本,0.10版本不再受支持,您基本上缺少3年多的错误修复、新功能和其他改进

但管道中的问题是,您将rtspsrc的输出放在multipartdemux中。rtspsrc将输出一个或多个必须卸载、解码等的RTP流,而不是多部分编码数据

你可能想要的是 rtspsrc uri=!解码Bin2!ffmpegcolorspace!JPEG!filesink location=test.jpg


但是请注意,这不仅会在第一张JPEG图片之后停止,还会将每个接收到的帧作为JPEG图片附加到单个文件中。如果要每帧创建一个文件,请使用multifilesink而不是FileLink。

您不是在解码流吗?您是否收到rtp流(通过链接检查伪造链接)?谢谢Sebastian。我会检查一下,然后再给你回复。您好,我用这个命令gst-launch-1.0-v rtspsrc location=“ipaddress:554/user=admin&password=&channel=1&stream=0.sdp?real_stream--rtp caching=100”!ffmpegcolorspace!JPEG!filesink location=test.jpg但我得到了错误警告:错误的管道:没有元素“ffmpegcolorspace”,然后我尝试了gst-launch-1.0-v rtspsrc location=”rtsp://ipaddress:554/user=admin&password=&channel=1&stream=0.sdp?real_stream--rtp缓存=100”!JPEG!filesink location=test.jpg文件,创建时使用0字节。没有数据。如果我错了,请帮助我。在1.x中,decodebin 2被称为decodebin,而ffmpegcolorspace将是videoconvert。同样在你上面的管道中,你省略了decodebin元素。嗨,我能收到你的邮件或skype吗?我试过这个,但没有得到它,只有空的图像。。期待您的回复。尽可能快。谢谢。嗨,塞巴斯蒂安,我试过这个命令gst-launch-1.0-v rtspsrc location=”rtsp://ipaddress:554/user=admin&password=&channel=1&stream=0.sdp?real_‌​流——rtp缓存=100”!德克宾!JPEG!filesink location=test.jpg。test.jpeg文件包含0字节。帮助我。谢谢