我们正在尝试让Gstreamer使用DM368 Leopardboard *,我们已成功说服它创建测试视频(videotestsrc),对其进行编码并将其转储到文件中。
工作的管道是:
gst-launch -v videotestsrc num-buffers=100 ! queue ! ffenc_mpeg4 bitrate=800000 ! ffmux_mp4 ! filesink location=video_test.mp4
下一步是修改管道以通过网络流式传输测试卡,使用类似 rtsp:// ip_addr:port / streamname 的VLC在具有VLC的PC上查看,但文档在如何做到这一点似乎很薄(并且经常过时),并且示例似乎模糊了源代码和命令行方式。
我会自由地承认,> 50%的问题是我们对Gstreamer& amp;它的各个部分,我总是发现,如果我有一个工作的例子,我可以用棍子戳它并从那里解决剩下的工作。
我到目前为止:
gst-launch -v videotestsrc ! queue ! ffenc_mpeg4 bitrate=800000 ! rtpmp4vpay ! tcpserversink host=<PC_ip> port=5000
这似乎使某事在VLC中发生(使用 tcp:// board_ip:port ) - 它似乎认为发生了一些事情(不会抛出错误)但不播放/显示任何内容。当我打破(^ C)gst进程时,VLC会注意到。
所以,基本上 - 任何指导/反馈都会很棒,一个工作的单行会很棒。
编辑添加:是的我看到了test_video.c示例,但是正在编译一个特殊的程序来做一些看起来应该可以从命令行调用来证明这个概念的东西
* = Linux version 2.6.32-17-ridgerun /CPU: ARM926EJ-S
答案 0 :(得分:19)
Source: 与RTP相反,RTSP服务器根据需要(Link)协商RTP服务器和客户端之间的连接。 gst-rtsp-server不是gstreamer插件,而是可用于实现自己的RTSP应用程序的库。以下测试用例适用于Ubuntu 12.04.5计算机:
autoconf automake autopoint libtool
以及其他缺少必要的构建工具git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
git checkout remotes/origin/1.2
./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure && make
(由于某种原因,pkg-config未设置GST_PLUGINS_GOOD_DIR,因此我们明确设置了它)cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
rtsp://HOST_IP:8554/test
答案 1 :(得分:1)
最后在这里找到了一个有效的例子:
但是它确实需要为VLC创建一个.SDP文件并指定IP地址,这实际上并不是我们想要的结果......但是嘿,这是一个开始!
答案 2 :(得分:0)
我在流程结束时遇到了一个问题,例如:
我在这篇文章中找到了解决方案:
它完美无缺!!!