我对gstreamer有疑问。 我使用gst-rtsp-server创建了一个流媒体服务器。我正在尝试将摄像头捕获发送到另一台计算机(在本地网络上)并将其解析为.ogv文件。
流式传输的工作正常,我能够将信息解析到文件中;但是在解析之后我无法读取它或在任何应用程序中使用它。似乎缺少一些信息(可能与编码技术有关,我真的不太了解它)
服务器端命令(在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 :(得分: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
我将其解码并使用视频编码将其编码回写入文件。可能有一种更优化的方式来执行相同的操作,但它只是一种解决方法。