我们正在尝试让 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 的 PC 上查看,但有关如何执行此操作的文档似乎很薄弱实际情况(并且通常已经过时),并且这些示例似乎模糊了源代码和命令行执行方式。
我坦率地承认,>50% 的问题是我们对 Gstreamer 及其各个部分缺乏熟悉,我总是发现,如果我有一个可以工作的示例,我可以用棍子戳它并找出从那里休息。
我已经走到这一步了:
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
来源: 与 RTP 相反,RTSP 服务器按需协商 RTP 服务器和客户端之间的连接(Link)。 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
我在流程结束时遇到了问题,例如:
我在这篇文章中找到了解决方案:
效果非常好!!!
如何使用python编码与ros2一起使用?