Hi Nirbheek,
In your reply to Ivan in the comments section of your blog post, you mentioned that it should be possible to directly payload-encode an RTSP stream containing H264 frames into webrtcbin without having to first decode it and then re-encode it. I am interested in this exact scenario. I've tried the following pipeline but it doesn't show the video on the webpage. There is no error in the browser console either. Could you please take a look and let me know if there is something wrong with this pipeline? gst_parse_launch("rtspsrc location=rtsp://10.51.52.115/h264 ! queue ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); Thanks! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On 11/04/18 07:32, Ottawa Boy wrote:
You need to depayload after rtspsrc before you repayload again. i.e. add a rtph264depay before rtph264pay. Cheers -Matt
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (499 bytes) Download Attachment |
Hi Matt, Thanks for your reply. I tried the following pipeline as per your suggestion but the video still continues to allude me. gst_parse_launch("rtspsrc location=rtsp://10.51.52.115/h264 ! rtph264depay ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); I also tried replacing rtspsrc with urisourcebin but that hasn't worked either. gst_parse_launch("urisourcebin uri=rtsp://10.51.52.115/h264 ! rtph264depay ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); Do both of these pipelines look reasonable? Perhaps I missed some intermediate element/plugin. The only way that I have managed to get video is to decode the H264 frames and re-encode them in H264 format, which is redundant and undesirable. gst_parse_launch("rtspsrc location=rtsp://10.51.52.115/h264 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! queue ! x264enc ! rtph264pay ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); Thanks! Talha On Wed, Apr 11, 2018 at 1:16 AM, Matthew Waters <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Talha,
Even I looking for a way to stream RTSP H.264 to webrtc without any intermediate transcoding. Could you please share if you had any thing working on this regard Thanks, Chakra -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This post was updated on .
In reply to this post by Ottawa Boy
Hi,
Based on https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps Its says that, adding caps it should skip decoding, so I tried example as below, #define SKIP_FOR_CAPS \ "video/x-h264;" \ "video/x-gst_ff-libxvid;" \ "video/x-h264;" \ "video/x-xvid;" \ "video/mpeg,mpegversion=[1, 2];" \ "video/x-theora;" \ "video/x-vp8;" \ "application/x-yuv4mpeg,y4mversion=2;" pipe1 = gst_parse_launch ("uridecodebin name=uridb uri=rtsp://10.10.155.177/h264 ! videoconvert ! queue ! x264enc ! rtph264pay ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); uridb1 = gst_bin_get_by_name (GST_BIN (pipe1), "uridb"); GstCaps *deco_caps; deco_caps = gst_caps_from_string (SKIP_FOR_CAPS); //g_object_set (G_OBJECT (uridb1), "caps", deco_caps, NULL); gst_caps_unref (deco_caps); The above works, but with trans-coding. Now to skip it I tried as below, pipe1 = gst_parse_launch ("uridecodebin name=uridb uri=rtsp://10.10.155.177/h264 ! rtph264pay ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin name=sendrecv", &error); uridb1 = gst_bin_get_by_name (GST_BIN (pipe1), "uridb"); GstCaps *deco_caps; deco_caps = gst_caps_from_string (SKIP_FOR_CAPS); g_object_set (G_OBJECT (uridb1), "caps", deco_caps, NULL); gst_caps_unref (deco_caps); But video is not flowing, and pipeline just hangs. I believe setting caps is right approach as above, but not sure of how to create pipeline at gst_parse_launch in the above. Is there some other module/features I need to update in the gstreamer pipeline for gst_parse_launch ? Or if there is some efficient approach please share Thanks, Chakra -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi
Any suggestions/help here on the above issue is very much helpful Please suggest if there is any solution here Thanks, Chakra -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello!
Does anybody found solution how to forward h264 RTSP video from IP camera to HTML5 video using GStreamer WebRTCbin without decoding h264 to h264? Please, share example of launcher pipe and js code to see the result. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi, We were able to get it working in v1.14.1 with the similar to below pipeline in Google Chrome.
We didn't have to depayload at all. Simply filter out the h264 and forward the rtsp stream to webrtcbin. However after upgrading the gstreamer version to 1.14.2 or later and Google chrome, we are facing errors. More details here : https://github.com/centricular/gstwebrtc-demos/issues/65 On Mon 21 Jan, 2019, 4:42 AM SuffiX <[hidden email] wrote: Hello! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I would depayload, parse and payload again, at the very least, you
would be more certain not to feed in corrupt frames that might confuse the Google stack on the receiving end (can be an issue in busy networks). At least that was what we did some time ago. On Mon, 21 Jan 2019 at 03:27, Tarun Tej K <[hidden email]> wrote: > > Hi, > > We were able to get it working in v1.14.1 with the similar to below pipeline in Google Chrome. > > gst_parse_launch ("webrtcbin bundle-policy=max-bundle name=sendrecv " STUN_SERVER > " rtspsrc location=rtsp://<ipcamera_url_info_here> ! queue ! application/x-rtp, media=video, encoding-name=H264, payload=96 ! sendrecv. ", > &error); > > > We didn't have to depayload at all. Simply filter out the h264 and forward the rtsp stream to webrtcbin. > > However after upgrading the gstreamer version to 1.14.2 or later and Google chrome, we are facing errors. > More details here : https://github.com/centricular/gstwebrtc-demos/issues/65 > > On Mon 21 Jan, 2019, 4:42 AM SuffiX <[hidden email] wrote: >> >> Hello! >> >> Does anybody found solution how to forward h264 RTSP video from IP camera to >> HTML5 video using GStreamer WebRTCbin without decoding h264 to h264? >> >> Please, share example of launcher pipe and js code to see the result. >> >> >> >> -- >> Sent from: http://gstreamer-devel.966125.n4.nabble.com/ >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Ottawa Boy
Ottawa Boy wrote
> Hi Nirbheek, > > In your reply to Ivan in the comments section of your blog post, you > mentioned that it should be possible to directly payload-encode an RTSP > stream containing H264 frames into webrtcbin without having to first > decode > it and then re-encode it. I am interested in this exact scenario. I've > tried the following pipeline but it doesn't show the video on the webpage. > There is no error in the browser console either. Could you please take a > look and let me know if there is something wrong with this pipeline? > > gst_parse_launch("rtspsrc location=rtsp://10.51.52.115/h264 ! queue ! > rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! > webrtcbin name=sendrecv", &error); > > Thanks! > > _______________________________________________ > gstreamer-devel mailing list > gstreamer-devel@.freedesktop > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel I don’t think that is technically correct. This is because webrtc supports adapt but rate control. If the sender needs to lower the bit rate or increase it, then it necessitates decode/encode step. Therefore, you can’t simply pass it through. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Tarun Tej K
Hi,
Were you able to run this pipeline post 1.14.2? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |