1

嗨,我正在使用 gstreamer 将多媒体流从树莓派传输到远程 PC。我在我的树莓派中使用这些管道

raspivid -t 0 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-    1.0 -v fdsrc ! 
h264parse !  rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=YOUR_RPI_IP_ADDRESS port=5000. 

在我的电脑上,我使用这个命令来查看流

gst-launch-1.0 -v tcpclientsrc host=YOUR_RPI_IP_ADDRESS  port=5000  ! gdpdepay !  
rtph264depay ! avdec_h264 ! videoconvert ! autovideosink  
sync=false 

现在我想用 python 代码在 PC 上查看流。我开始研究 pygst,但不知道如何实现这一点。有人请帮助我。

4

1 回答 1

0

对于 python3/Gst1.*/Gtk3 pygst 基本上已被弃用。您应该转到GObject 自省 API。你可以找到很多这样例子。

我能想出的关于在 python 中工作的 gstreamer 管道的最简单的例子是

import gi

gi.require_version('Gst', '1.0')
gi.require_version('Gtk', '3.0')

from gi.repository import Gst, Gtk

Gst.init(None)


pipeline = Gst.parse_launch('playbin uri=file:///path/to/my/video.ext')

pipeline.set_state(Gst.State.PLAYING)

Gtk.main()

您可以使用 Gst.parse_launch 以声明方式指定管道,就像使用 gst-launch 一样。如果您需要对管道创建/功能进行更多控制,您应该以编程方式创建它。在这种情况下,您应该阅读 GStreamer 文档以获取更多信息和示例。

您可能希望将视频输出嵌入到某个窗口中,通常是 GTK 窗口,就像本教程中一样

于 2016-07-04T14:11:03.453 回答