Transmitting rtsp video over webpage with JPEG compression (Eg: http://windofdubai.com/winds/webcam) - embed

I would like to embed .rtsp video on a webpage with jpeg compression. Users can view the live stream without using any plugin. Live Example : http://windofdubai.com/winds/webcam. Anyone can help please.

are you sure this is an rtsp feed, when I look at the source to this page it looks more like mjpeg, most camera's support mjpeg and many also support rtsp. Sometimes you can have both feeds concurrently from the cameras.

Related

Rtsp streaming node

I need to display a live camera on a webpage, and this camera uses rstp protocol. I've just found out that browsers do not support rtsp protocol, so I need to create a nodeJS server to serve to the client(react) in order to make it work. I came across multiple information articles on the internet but nothing seems to work properly.
How can I accomplish this mission?
I too was researching on the same thing. What I found out was that we can convert our RTSP URL to HLS using FFMPEG and pass the HLS master file (.m3u8) to video tag in HTML to stream.
Let me know if it helps.
Example:
<video id="video-player" controls preload="none"><source src="/output-directory/index.m3u8" type="application/x-mpegURL"></video>

How to stream mkv file using html/javascript?

Is there any way to stream mkv files on webpage using javascript/html or any other technologies? I found many questions about this, but I really want to know the answer - is this possible in any way? Maybe ajax, javascript, php, html? Maybe some external libraries? Anything?
I was wondering how youtube works. Is there possible to upload mkv file? Is so, how that videos are streaming to end user?
I know that browser doesn't support mkv natively, but maybe is some way to forcing html to do that?
Any help will be appreciated.
YouTube most probably works using the DASH protocol format. On the server side, the source audio and source video are separately divided into segments of different bitrate/quality. A manifest keeps an index of all possible segments values and their location. This allows to switch quality during playback in the player.
On the client side, the DASH (should be the same with the other main technology: HLS) manifest is used by the player to locate the segments to load in order to feed the content in two separate SourceBuffer, one for audio and one for video and both are being played synchronously together in the MediaSource. For an example player that handles this, see the Shaka Player developed by Google.
Conclusion, there is no need to use a container like mkv but each channel (video, audio) needs to point to a browser supported codec encoded segments.
You don't need anything special for streaming pre-recorded media files. A normal HTTP/1.1 or HTTP/2 server will work just fine. The browser is generally capable of seeking into the file using range requests.
Matroska (MKV) is a container format, and it actually is widely supported because it's basically the same as WebM. WebM is a subset of Matroska... the key differences being that there are suggested codecs for use. (Matroska itself supports almost anything.)
Your audio and video tracks in the file can use a variety of codecs... the key is to use codecs compatible with browsers. Opus for audio and VP8 for video will take you far.
From there, simply reference your video file in a <video> tag.

Is it possible to play HTTP Live video on a browser? 2012

I was wondering if it is possible to stream to the user HTTP Live video. NOT a video file.
LIVE video. Using any technology. Flash or HTML5. I did some research and most of the players I found support live streaming but most of them mean youtube-like style streaming, where you can click further in the video and get the video loading. I am talking about LIVE video, happening the same time the user watches the video.
I got the incoming HTTP packets, stored in a file called "current_frame.h264". This files gets updated as the packets come in. It does NOT grow in size, just get updated. (stays at around 17-20kb). Now I want to take this file and show it on a browser. Anybody can help me out?
Apple developed something like that a while ago: https://developer.apple.com/streaming/
All you need is a webserver and a HTML5 enabled webpage.
With this technology you also have the ability to stream different quality files based on the connection (mobile usage for example)
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/UsingHTTPLiveStreaming/UsingHTTPLiveStreaming.html

Sydroid direct RTSP URL

I'm playing around with Spydroid a bit and wants to display the RTSP stream in an web browser, preferably in HTML5 to be able to view the stream on mobile devices. I've been looking around quite alot and it seems that RTSP works great with HTML5, the problem is that most RTSP URLs look something like this:
rtsp://xxx.xxx.xxx.xxx/videofile.mov
So my question is, how can I point to a similar RTSP URL using Spydroid or is there another solution?
(The RTSP URL that works e.g. in VLC for me is rtsp://xxx.xxx.xxx.xxx:XXXX but can't figure out how to use that URL with different HTML5 video players...)

Is it possible to use HTML5 to display an MPEG Transport Stream video?

I have several MPEG2 Transport Stream videos with KLV metadata embedded in them. I would like to display the videos in a web browser. Is it possible to use the HTML5 <video> tag to play a video of this type in a web browser?
If I use a converter to pull the video out of the MPEG-TS container and create an MPEG4 file encoded with H.264, then I can get the video to show up in a browser. But is there any possible way I could display these videos without having to convert them into a different format? I need to keep the KLV data around so I can do other stuff with it.
The actual video codec support is still up to the browser, but some support MPEG2-TS natively as a transport, and if they don't you can do software demuxing using hls.js. Reading KLV is an unresolved issue but you "should" (per that issue) be able to access the raw binary stream and parse out the values yourself -- not trivial, as such, but doable.
There is no browser that support mpeg2.
You can use service like: vid.ly and have all the formats you need.