管道stdout到gstreamer

raa*_*aaj 3 video gstreamer h.264

美好的一天,

我试图让gst-launch(gstreamer)从stdout获取输入.网上的大多数示例都是关于从文件读取或从设备读取.有谁知道一个示例管道?

filesrc location="lowframe.h264"
Run Code Online (Sandbox Code Playgroud)

要么

device=/dev/video0
Run Code Online (Sandbox Code Playgroud)

有没有可以从stdout读取的?

mre*_*hub 10

有一个GStreamer元素fdsrc,允许您从(已经打开)文件描述符中读取.
stdin基本上fd 0(在像Linux/Mac这样的POSIX系统上;参见维基百科),所以你可以简单地使用类似下面的启动线:

curl http://example.com:8000/stream1.ogg ! gst-launch fdsrc fd=0 ! decodebin ! autoaudiosink
Run Code Online (Sandbox Code Playgroud)


另一种方法是使用filesrc和读取/dev/stdin支持它的系统,例如:

gst-launch filesrc location=/dev/stdin ! decodebin ! autoaudiosink < /path/to/file.mp3
Run Code Online (Sandbox Code Playgroud)


/ edit发现有关该fdsrc方法(这似乎是解决此问题的更好方法)

  • 谷歌首先将我带到这里来解决相反的问题:**将 gstreamer 输出重定向到 stdout**。逻辑上的解决方案是添加`!filesink location=/dev/stdout` 到管道的末尾。 (4认同)