我们正在尝试让 Gstreamer 在 DM368 Leopardboard* 上运行,我们已成功说服它创建测试视频 (videotestsrc)、对其进行编码并将其转储到文件中。
有效的管道是:
gst-launch -v videotestsrc num-buffers=100 ! queue ! ffenc_mpeg4 bitrate=800000 ! ffmux_mp4 ! filesink location=video_test.mp4
下一步是修改管道以通过网络传输测试卡,以便使用 VLC 在 PC 上查看,例如rtsp://ip_addr:端口/流名称但是有关如何执行此操作的文档似乎相当薄弱(并且通常已经过时),并且示例似乎模糊了源代码和命令行执行方式。
我坦率地承认,超过 50% 的问题是我们对 Gstreamer 及其各个部分缺乏熟悉,我总是发现,如果我有一个可以工作的示例,我可以用棍子戳它并解决其余的问题从那里。
到目前为止我已经做到了:
gst-launch -v videotestsrc ! queue ! ffenc_mpeg4 bitrate=800000 ! rtpmp4vpay ! tcpserversink host=<PC_ip> port=5000
这似乎使得某物发生在 VLC 中(使用tcp://board_ip:端口)-它似乎认为发生了一些事情(不会抛出错误),但不播放/显示任何内容。当我破坏 (^C) gst 进程时,VLC 会注意到。
所以,基本上 - 任何指导/反馈都会很棒,一条有效的单行文字会很棒。
编辑添加:是的,我看到了 test_video.c 示例,但它正在编译一个特殊的程序来执行一些看起来应该可以从命令行调用来证明这个概念的事情。
* = Linux version 2.6.32-17-ridgerun /CPU: ARM926EJ-S
Source https://github.com/tik0/mat2gstreamer/blob/master/gstreamer.md:
与 RTP 相反,RTSP 服务器按需协商 RTP 服务器和客户端之间的连接(Link https://stackoverflow.com/questions/4303439/what-is-the-difference-between-rtp-or-rtsp-in-a-streaming-server). The gst-rtsp-服务器 https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2013/GStreamer%20Conference%202013%20-%20Wim%20Taymans%20-%20Latest%20GStreamer%20RTSP%20Server%20features.pdf不是 gstreamer 插件,而是一个可用于实现您自己的 RTSP 应用程序的库。以下测试用例应用于Ubuntu 12.04.5机器上:
- Preliminars
- 使用 base/good/ugly/bad 插件安装 gstreamer-1.0
- Install
autoconf automake autopoint libtool
以及其他缺少的基本构建工具
- Build gst-rtsp-server
git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
- 我们使用gstreamer 1.2:
git checkout remotes/origin/1.2
- Build:
./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure && make
(由于某种原因,pkg-config没有设置GST_PLUGINS_GOOD_DIR,所以我们显式地设置它)
- Test run
- 运行测试应用程序:
cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
- 现在可以通过以下地址远程访问流(例如使用 VLC):
rtsp://HOST_IP:8554/test
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)