rtsp to html5 video tag

ITwrx.org info at itwrx.org
Thu Jan 26 04:36:57 UTC 2017


On 01/24/2017 03:01 AM, Dimitrios Katsaros wrote:
>
>     this is the heart of my question. isn't there any way to use
>     gstreamer to put the rtsp stream into a container (or anything
>     else the browser needed) and serve to the browser with
>     tcpserversink? i tried mp4mux or splitmuxsink in various
>     incantations with various errors.
>
>
> rtsp is a protocol for controlling media across a network. In other
> words, the rtsp is the final step for you media pipeline. I am
> clarifying this since you are stating that you want to put your rtsp
> stream into a container, something that can not/should not be done.
> This might be a mistake but if you are confused about this it may be
> why you are having trouble transmitting data.
i must have misunderstood what you meant by "You need to put the video
in a container format that will handle all that for you. "
>
> The normal order of tramsmission of media is raw media -> encoded
> media -> encoded media wrapped in a container -> media bundled in a
> network transmission protocol -> transfer across the wire. RTSP is
> nedded for transmission using udp.If you want to transmit a container
> format without using a network protocol then you would probably have
> to use something like tcpserversink to transmit the media correctly.
>
> I am not sure how Carlos implemented his solution, but based o what he
> suggested I would imagine a pipeline looking like:
>
> rtspsrc location=rtsp://user:password@192.168.1.5:554
> <http://user:password@192.168.1.5:554> ! rtph264depay ! h264parse !
> qtmux ! <http compatible sink>
>
> The http compatible sink depends on how you are transmitting the media
> and how the browser is expecting it. You also need to set the qtmux
> properties to the correct values. fragment-duration needs to be a
> positive value and you should also set the streamable flag to true.
> You will probably have to play around with the values a bit.
>
> For the sink you will either want to use something like hlssink, but
> that expects a hls compatible player on the other end, or you can use
> something like multifilesink to create fragmented files, that you can
> serve using a standard http server. that will need from you to save
> the framgents in the correct location, with the correct name so the
> browser can request them. I am not sure how the video tag will work
> with a fragmented file on its own. That will need some looking into, A
> lot of people use stuff like dash.js or video.js to enhance the video
> tag. Again, some research is required.

Thanks for all the info.
>
> On Fri, Jan 20, 2017 at 7:51 PM, ITwrx.org <info at itwrx.org
> <mailto:info at itwrx.org>> wrote:
>
>     On 01/20/2017 02:54 AM, Dimitrios Katsaros wrote:
>>     The video tag in html is a bit problematic. The idea behind it
>>     was to be able to play any video in a browser but it requires
>>     that the browser implement the logic for handing the media types,
>>     which is a big blunder. Here is a table with a few media types:
>>
>>     https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
>>     <https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats>
>     right. firefox supports h264/aac but it doesn't support rtsp so
>     i'm trying to use gstreamer to package the rtsp stream so that the
>     browser doesn't know the difference.
>>
>>     From what I see you are trying to reencode h264. Is there any
>>     reason why h264parse is not enough?
>     no, i just didn't know what i was doing. :)
>>     h264 is a video compression standard but it does not provide any
>>     information on duration, metadata about the stream etc. You need
>>     to put the video in a container format that will handle all that
>>     for you.
>     this is the heart of my question. isn't there any way to use
>     gstreamer to put the rtsp stream into a container (or anything
>     else the browser needed) and serve to the browser with
>     tcpserversink? i tried mp4mux or splitmuxsink in various
>     incantations with various errors.
>>     If you intend on streaming to a media player you can use tsmux to
>>     get an mpegts stream. However, you will need a compatible player
>>     on the client side like the vlc embedded player. That has it's
>>     own problem in that you need to assume that the client has vlc or
>>     any other player installed.
>     trying to avoid.
>>     One other alternative is to go for hls or mpeg dash. That will
>>     require that you create a fragmented stream, create the media
>>     descriptor file for the fragmented stream and then provide it via
>>     a http server. The nice thing about this approach is that there
>>     are javascript based players you can embed in your webpage. But
>>     it requires a lot of work to implement all the requirements.
>     thanks for that info. will keep it in mind. would prefer just to
>     use gstreamer. i can do it with videotestsrc and webm (seems to
>     work well) and i can do it with v4l2src and webcam(poorly). hoping
>     there's a way to do it with rtspsrc.
>>
>>     I am sure people can suggest more alternatives, but these are the
>>     ones I have played around with. If you want something simple I
>>     would try the mpegts stream to vlc. you will have a client to
>>     start with and can then work towarsd embedding it into your site.
>>
>>     Dimitrios
>     Thanks
>
>>
>>
>>     On Wed, Jan 18, 2017 at 9:07 PM, ITwrx.org <info at itwrx.org
>>     <mailto:info at itwrx.org>> wrote:
>>
>>         hi,
>>
>>         i'm trying to use gstreamer to get an rtsp stream from an ip
>>         cam into my
>>         browser(html video tag). I'm currently trying to use
>>
>>         "gst-launch-1.0 rtspsrc
>>         location=rtsp://user:password@192.168.1.5:554
>>         <http://user:password@192.168.1.5:554> !
>>         rtph264depay ! h264parse ! decodebin ! x264enc ! tcpserversink
>>         host=127.0.0.1 port=8080"
>>
>>         which seems to be sending something, but firefox won't
>>         display the video
>>         and reports that it has mime type "text/plain".
>>
>>         Could anyone recommend the proper command for accomplishing this?
>>
>>         thanks
>>
>>         --
>>         Information Technology Works
>>         https://ITwrx.org
>>         @ITwrxorg
>>
>>         _______________________________________________
>>         gstreamer-devel mailing list
>>         gstreamer-devel at lists.freedesktop.org
>>         <mailto:gstreamer-devel at lists.freedesktop.org>
>>         https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>         <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>
>>
>>
>>
>>     _______________________________________________
>>     gstreamer-devel mailing list
>>     gstreamer-devel at lists.freedesktop.org
>>     <mailto:gstreamer-devel at lists.freedesktop.org>
>>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>     <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>
>     -- 
>     Information Technology Works
>     https://ITwrx.org
>     @ITwrxorg
>
>     _______________________________________________ gstreamer-devel
>     mailing list gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>     <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel> 
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-- 
Information Technology Works
https://ITwrx.org
@ITwrxorg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170125/87be4c81/attachment-0001.html>


More information about the gstreamer-devel mailing list