端口管道到 gst-rtsp-server
Port pipeline to gst-rtsp-server
我正在尝试将这个有效的发件人端管道包装在 gst-rtsp-serve 中
gst-launch-1.0 --gst-plugin-path=/usr/lib/x86_64-linux-gnu/gstreamer-1.0/ filesrc location=sample.mp4 ! decodebin name=mux mux. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 mux. ! queue ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=127.0.0.1 port=5001
在接收方使用互补管道,所有的东西都可以工作,我能够发送 opencv 处理的流,在客户端获取它。
当我尝试在与 gst-rtsp-server 一起提供的工作示例中包装此管道的一部分时,出了点问题。
事实上,编辑 test-mp4.c 并更改 filesrc 输入 pipelin
"filesrc location=%s ! qtdemux name=d "
"d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 "
"d. ! queue ! rtpmp4apay pt=97 name=pay1 " ")"
发件人不再工作了。在接收方,我收到 503 错误,因为接收方无法获取 sdp。
这可能是与缺少错误插件目录有关的问题吗?
我在主 Makefile 中设置了它,但问题仍然存在。
我想如果我不编辑该行并且我的管道也能正常工作,那么 rtsp-server 就可以完美地工作。
谢谢,
弗朗切斯科
您创建的管道似乎有问题。尝试 运行 您的管道与命令行上的完全一样,但在末尾添加 fakesink 元素以查看是否可行:
gst-launch-1.0 filesrc location=%s ! qtdemux name=d d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 ! fakesink d. ! queue ! rtpmp4apay pt=97 name=pay1 ! fakesink
乍一看,您似乎正在对媒体进行多路分解,但并未将视频解码为 edgedetect
元素的原始格式。
我正在尝试将这个有效的发件人端管道包装在 gst-rtsp-serve 中
gst-launch-1.0 --gst-plugin-path=/usr/lib/x86_64-linux-gnu/gstreamer-1.0/ filesrc location=sample.mp4 ! decodebin name=mux mux. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 mux. ! queue ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=127.0.0.1 port=5001
在接收方使用互补管道,所有的东西都可以工作,我能够发送 opencv 处理的流,在客户端获取它。 当我尝试在与 gst-rtsp-server 一起提供的工作示例中包装此管道的一部分时,出了点问题。 事实上,编辑 test-mp4.c 并更改 filesrc 输入 pipelin
"filesrc location=%s ! qtdemux name=d "
"d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 "
"d. ! queue ! rtpmp4apay pt=97 name=pay1 " ")"
发件人不再工作了。在接收方,我收到 503 错误,因为接收方无法获取 sdp。 这可能是与缺少错误插件目录有关的问题吗? 我在主 Makefile 中设置了它,但问题仍然存在。 我想如果我不编辑该行并且我的管道也能正常工作,那么 rtsp-server 就可以完美地工作。
谢谢,
弗朗切斯科
您创建的管道似乎有问题。尝试 运行 您的管道与命令行上的完全一样,但在末尾添加 fakesink 元素以查看是否可行:
gst-launch-1.0 filesrc location=%s ! qtdemux name=d d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 ! fakesink d. ! queue ! rtpmp4apay pt=97 name=pay1 ! fakesink
乍一看,您似乎正在对媒体进行多路分解,但并未将视频解码为 edgedetect
元素的原始格式。