我们正在尝试在DM368 Leopardboard上使Gstreamer工作,我们已成功说服它创建一个测试视频(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这样的方式在PC上使用VLC查看,但关于如何做到这一点的文档似乎非常稀少(而且经常过时),示例似乎混淆了源代码和命令行的方式。我会自由地承认,问题中超过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