2011-10-27 96 views
0

我有一个关于gstreamer的问题。 我使用gst-rtsp-server制作了流媒体服务器。我试图将相机捕获发送到另一台机器(在本地网络上)并将其解析为.ogv文件。用gst-rtsp-server接收流

流传输工作正常,我能够解析信息到文件;但是我无法读取它,或者在解析之后将它用于任何应用程序。它似乎有一些信息缺失(可能与编码技术的关系,我真的不知道很多关于它)

服务器端的命令(内C++代码):

.... 
gst_rtsp_media_factory_set_launch (factory, "(v4l2src device=/dev/video0 ! videorate !   
video/x-raw-yuv,width=320,height=240,framerate=30/1 ! videoscale ! ffmpegcolorspace ! 
theoraenc ! rtptheorapay name=pay0 pt=96)"); 

gst_rtsp_media_factory_set_shared (factory, TRUE); 

/* attach the test factory to the /test url */ 
gst_rtsp_media_mapping_add_factory (mapping, "/stream", factory); 
.... 

客户端命令(终端命令):

gst-launch -v rtspsrc location=rtsp://192.168.0.115:8554/stream ! 
rtptheoradepay name=pay0 ! oggmux ! filesink location=/home/jean/Desktop/stream.ogv 

任何帮助任何形式的帮助,非常感谢!

+0

有没有人有想法? – Athanase

+0

如果这仍然是最新的,您可能想要添加有关RTSP客户端应用程序显示的错误的信息。 – che

回答

0

我可以按照如下步骤查看管道将其解码gst-launch -v rtspsrc location="rtsp://localhost:8554/test" name=demux demux. ! queue ! rtptheoradepay ! theoradec ! ffmpegcolorspace ! autovideosink

对其进行解码

gst-launch -v rtspsrc location="rtsp://localhost:8554/test" ! application/x-rtp, payload=96 ! rtptheoradepay ! theoradec ! videorate ! ffmpegcolorspace ! theoraenc ! oggmux ! filesink location=GIBBERISH.ogg

我对其进行解码并写入之前编码它带回了videorate文件。可能有更好的方法来执行相同的操作,但这只是一种解决方法。