Does Video.js currently support HLS video with a Flash fallback. I'm getting mixed messages between the answers here and documentation on Zencoder's website which I believe is part of the same family of products.
I'm currently getting an error when trying to play HLS in Chrome and Firefox and would like to know if it is an implementation error on my part or if it is not supported and Zencoder's documentation is incorrect.
If it is not currently supported, is there a timeline? The latest answer from December said it was coming soon, is that still the case?
The short answer is it's still in progress, and the Zencoder docs shouldn't say that yet.
Email help at zencoder to get more info on it.
Related
I'm new to Stack Overflow and I have a question: I want to make an online TV website. I've got the UDP streaming links for each TV channels (ex. udp://#225.1.2.249:30120). Then, I can't find the way how to play that stream on video player in browsers. (I've already tried Video.js and hls.js but both not work, but it easily play on VLC).
I know that my grammar is terrible, hope you forgive that.
You don’t. Browsers support HTTP, Websockets, and webrtc. Any other protocol requires a browser plugin.
I am trying to make an online examination portal. When students start the exam, their webcam will start automatically and record the stream live and store in the server. Invigilators will either watch the students live or they can watch the saved live streams later.
I researched about this and found WebRTC as a possible solution along with a gateway server like Kurento. But later found out that WebRTC is not supported in Safari, which is a setback! My application should run successfully in web portal in any modern browsers which includes safari and also in android or iphone.
So can anyone suggest a possible solution to my problem? Which technology should I use that can support all browsers and OS?
Also, it would be helpful if you can provide links to good documentation or tutorials.
Note from the future (2020): This answer really isn't accurate anymore.
WebRTC is one problem... capture from the camera with getUserMedia is another. Safari doesn't support either.
There is no video capture API in Safari currently. The only thing you can do is make a native app for iOS.
Worse yet, because of Apple's restrictive policies, alternative browsers, such as Chrome, are crippled on iOS as they aren't allowed to use their own browser engines.
Use standards based technologies like getUserMedia and WebRTC for your primary web-based application. If you decide that the economics of your situation enable it, you can make an iOS app to work alongside until Apple decides to participate in modern browser standards like everyone else.
You can use Mediadevices.getUserMedia (https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) to capture webcam stream on browser (chrome and firefox).
To play with webcam stream on safari, you would have to use a pollyfill - https://github.com/Temasys/AdapterJS
To record the video/audio stream, you can make use of Media recorder api https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder (Note : recording stream is still a challenge in Safari as there is no support/pollyfill. However, it works perfectly on Chrome and Firefox latest versions).
Helpful demonstrations :
https://webrtc.github.io/samples/
https://mozdevs.github.io/MediaRecorder-examples/index.html
https://codepen.io/collection/XjkNbN/
https://hacks.mozilla.org/2016/04/record-almost-everything-in-the-browser-with-mediarecorder/
I want to let WebRTC encoded and play h264(NAL) stream(local file).
In the WebRTC tutorial, getUserMedia is use for get local camera connecting to the system, I don`t know if the getUserMedia function support
capture the local stream file like h264 stream.
If it doesn't work that way, may be I should modify WebRTC source code(I'm studying it).
Here is the question, If i change WebRTC code, how can i integration the new code into browser? Made it a plugin?
Firefox supports an extension to the <video> element that you can use to do this.
First, set the source of a video element:
v1.src = "file:///...";
Then you can call the (currently prefixed) mozCaptureStream or mozCaptureStreamUntilEnded function to get a MediaStream.
stream = v1.mozCaptureStream();
The proposed specification.
Note however that you need to ensure that the file is same origin with respect to the page. The same origin rules for file:/// are probably going to cause issues. Otherwise your MediaStream isn't going to be accessible to you. One way to ensure that is not to set the location directly, but to load the file using an <input type="file"> element.
As noted in other answers, Firefox currently only supports the baseline profile of H.264.
First, you are right getusermedia will not work for you. However, there are a couple of options.
Hack a stream together using RTCDataChannel. Breaking up the media stream and delivering each packet and then handling it on the client side.
Take a look at this demo for precorded media streams. I do not believe that H264 is addressed but it could help you on your way(probably for Firefox only)
Use some sort of webrtc breaker/endpoint that is native to stream the file. I know specifically that others(including myself) have streamed H264 to Firefox through the Janus-Gateway
Couple of asides:
Firefox only supports Baseline profiles in streaming h264 for a webrtc peerconnection
Chrome does not support h264 for webrtc at all
Are you trying to have getUserMedia return a h.264 encoded stream?
In which case, today it will only be possible with Firefox today, under some specific environment (cisco 264 plugin installed) and only for the base profile.
Chrome promised in november to add this capacity, but there is no timeline that I know of Expect at least Q2 2015.
Using our (temasys) commercial plugin you will soon be able to do that in IE and Safari.
Those are the only options on client side I can think of. On server side you can use whatever you want to transcode, including janus, kurento, powermedia, licode/lynkia, ....
Note: using other means like Datachannel or WebSocket are ok to transfer files, but would greatly reduce the user experience as you would not have all the added recovery (and security) mechanisms included in SRTP, DTLS, and would also not have specific mistreated media enhancements that are in webRTC like jitter, buffers, netQ, ect ...
We have a red5 recorder/red5 server setup. This is working correctly and videos are getting created in the server. We are having a problem with the recording and playback etc not working in a streamlined way. ie after you record and play the recorded one, it may not always play. The player sort of gets stuck.
Are there any free or paid alternatives to red5 recorder that does the job really well?
The reason why the videos don't play can vary and it is not sure if another streaming server will resolve your issue. For example if you have network issues no matter what streaming server you use, it will fail.
However, alternatives might be Wowza or Adobe FMS.
Sebastian
Maybe you are suffering from the same problem I have, see:
WARN o.r.s.net.rtmpt.BaseRTMPTConnection - Response buffer was null after encoding
Are there any warnings in your log file after the stream did fail? This log file may reveal your problem, see /usr/local/red5/log/red5.log
Am I able to "tap into" Google Chrome's Downloads page through an extension/add-on? I want to write an extension that needs the file names (or paths) of all the files that are currently being downloaded by the user. Will this possible? What APIs should I be looking at? It is quite tricky to search for this and I don't know where to begin.
No I can not find a Google Chrome API that will allow you to see the files that are currently being downloaded.
There are a number of experimental APIs, that alow deep integration with the browser here bt none that provide the information you require:
http://code.google.com/chrome/extensions/dev/experimental.html
Not until Chrome 30.
http://peter.sh/2013/08/webgl-and-device-motion-for-android-port-forwarding-and-named-grid-areas/
It looks like Chrome extensions download's api will be released with chrome 30, and has been marked stable according to Peter Beverloo's blog.
A bit late but I think it is possible now with the chrome.downloads API:
http://developer.chrome.com/extensions/downloads.html