Video streaming Gstreamer从流中提取帧

Video streaming Gstreamer从流中提取帧,video-streaming,gstreamer,Video Streaming,Gstreamer,我正在尝试通过网络传输视频。目前我正在使用gstreamer。然而,一旦它到达网络的另一端,我需要能够在框架中添加一些东西 我想知道是否有一种方法可以从流中提取一个帧,修改它,然后将其插入到要显示的流中。如果它不能插回蒸汽中,那么我可以使用不同的方法来显示帧,这是我真正需要弄清楚的提取 帧操作将使用python完成,一旦我有了正确的gstreamer命令,我将尝试在pygst中实现它 发送视频的代码: gst-launch-0.10 v4l2src device=/dev/video0 ! 'v

我正在尝试通过网络传输视频。目前我正在使用gstreamer。然而,一旦它到达网络的另一端,我需要能够在框架中添加一些东西

我想知道是否有一种方法可以从流中提取一个帧,修改它,然后将其插入到要显示的流中。如果它不能插回蒸汽中,那么我可以使用不同的方法来显示帧,这是我真正需要弄清楚的提取

帧操作将使用python完成,一旦我有了正确的gstreamer命令,我将尝试在pygst中实现它

发送视频的代码:

gst-launch-0.10 v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480' !  x264enc pass=qual quantizer=20 tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=1234
以及要接收的代码:

gst-launch-0.10 udpsrc port=1234 ! "application/x-rtp, payload=127" ! rtph264depay ! ffdec_h264 ! xvimagesink sync=false
任何帮助都将不胜感激。

你可以用两种方法来做

  • 编写插件:必须熟悉Gstreamer库

  • 使用应用程序src和应用程序接收器。 这将允许你做你想做的事

  • 如果更好地描述操作,也许有一个Gstreamer插件会有所帮助?

    您可以通过两种方式来实现

  • 编写插件:必须熟悉Gstreamer库

  • 使用应用程序src和应用程序接收器。 这将允许你做你想做的事


  • 如果更好地描述操作,也许有一个Gstreamer插件会有所帮助?

    我试图在视频提要上添加一个覆盖,同时让一些元素与提要交互。例如覆盖层是一个鱼缸,如果屏幕上出现一个人的脸,那么我希望鱼游到他们的脸上。该程序设计为位置之间的“虫洞”,因此,如果两边都有人,那么我希望覆盖层淡出,以便人们可以通过虫洞进行对话。如果您已经有了一个组件,则appsrcappsink也可以正常工作。这正是你定义的目的。有一个alpha混合的叠加插件可用,但可能无法满足您的要求。插件+1。如果要修改每个帧,则需要从管道中进行修改。以geometrytransform插件为例,我试图在视频提要上添加一个覆盖层,同时让一些元素与提要交互。例如覆盖层是一个鱼缸,如果屏幕上出现一个人的脸,那么我希望鱼游到他们的脸上。该程序设计为位置之间的“虫洞”,因此,如果两边都有人,那么我希望覆盖层淡出,以便人们可以通过虫洞进行对话。如果您已经有了一个组件,则appsrcappsink也可以正常工作。这正是你定义的目的。有一个alpha混合的叠加插件可用,但可能无法满足您的要求。插件+1。如果要修改每个帧,则需要从管道中进行修改。以geometrytransform插件为例