使用GStreamer进行流式处理

时间:2011-10-10 04:29:40

标签: gstreamer rtp live-streaming

我在系统#1上有一个高清视频“ed_hd.avi”。想通过网络流式传输并播放System#2中的内容。我在Ubuntu 11.04上使用GStreamer,在此尝试了很多。各种错误使得该目标难以诊断。感谢获得System#1-end和System#2-end的工作命令。

我尝试的内容如下:

系统#1:

gst-launch filesrc location=ed_hd.avi ! decodedin ! x263enc ! video/x-h264 ! rtph264pay ! udpsink host=127.0.0.1 port=5000

系统#2:

gst-launch udpsrc port=5000 ! rtph264depay ! decodebin ! xvimagesink

目标是:将avi文件转换为原始视频。从第二个系统#2流式传输。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下

gst-launch filesrc location=ed_hd.avi ! decodebin ! ffenc_mpeg4 ! rtpmp4vpay ! udpsink host=127.0.0.1 port=5000 

如果不起作用,请继续:

您是否尝试过以下操作?您需要用视频箱替换他的音频箱

http://delog.wordpress.com/2011/06/01/stream-raw-vorbis-audio-over-udp-or-tcp-with-gstreamer/

另外看看

http://pastebin.com/PtD21Bx7

此处将v4l2src替换为您的视频src

另外

https://metalab.at/wiki/Gstreamer_One_Liners

答案 1 :(得分:1)

我认为您的问题是127.0.0.1部分。这是 loopback 地址(选中ifconfig lo0以查看Link encap:Local Loopback地址的127.0.0.1。这不适用于两个系统,尽管它可能在单个系统上正常工作。

相反,请使用第二台机器公开显示的地址;检查ip addr showifconfig输出以查找地址。在System#1的命令行中写入System#2的实际地址。