gstreamer rtmpsrc到rtmpsink

时间:2012-08-27 14:09:20

标签: flash gstreamer rtmp gst-launch

我想使用gstreamer rtmpsrc插件捕获通过网络摄像头从客户端计算机生成的实时传入Flash媒体流,并将其转换为某种可处理格式。 问题是当我尝试使用以下命令查看传入的rtmp flash媒体流时,我可以看到输出,但是当我尝试使用filesink将流保存到文件时,它根本不起作用。

gst-launch-0.10 rtmpsrc location='rtmp://127.0.0.1/flvplayback/mynewstream live=1' ! flvdemux name=d d. ! queue ! decodebin ! xvimagesink

我也不会将此管道构建到C / C ++程序中,以便我可以处理传入的元素。 我已经编写了“filesrc - > appsrc - > appsink - > filesink”的代码,它运行正常。

然而,当我为“rtmpsrc - > appsrc - > appsink - > rtmpsink”编写代码时,它不起作用。 我是gstreamer编程的新手,所以你可以帮助我或告诉我良好的资源,我可以获得这样的编程教程或样本。

我的系统配置:

Linux Ubuntu 12.04 64位

crtmpserver x86_64

gstreamer 0.10

2 个答案:

答案 0 :(得分:1)

我认为你可以使用flvdemux独立视频(H.264)和音频(MPEG 4 AAC),然后处理它们。例如延迟10秒:queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=10000000000

示例:

gst-launch-1.0 rtmpsrc location=rtmp://XXXX ! flvdemux name=mydemuxer flvmux name=mymuxer ! queue ! rtmpsink location=rtmp://XXXX mydemuxer.audio ! queue ! mymuxer.audio mydemuxer.video ! queue ! mymuxer.video

答案 1 :(得分:0)

为什么需要appsrc和appsink?试试rtmpsrc! filesink直接转储文件。