我们正在尝试让 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:port/streamname之类的内容进行查看,但有关如何执行此操作的文档在地面上似乎很薄(并且经常过时),并且这些示例似乎模糊了源代码和命令行方式。
我会坦率地承认,> 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