Using Media source extension (MSE), I am trying to play an mp4 stream on web browser.
On firefox it's ok.
On chromium based web browser (Opera, Chrome and Edge), it's not.
I have the error :
Append: stream parsing failed. Data size=689 append_window_start=0 append_window_end=inf
My javascript receive fragments of the mp4 file and append them to MSE.
Appending the first fragment of my mp4 containing the ftyp box atom, works fine.
But appending second fragment containing the moov atom give me the error and then close the media source.
I didn't find out what's wrong on the moov atom. Did someone see what's going on with this moov atom?
Here is a screenshot of the hexa of the second fragment (containing moov atom) I send and there of the Chrome Media Internals log
Concatenating all 327 fragments give me a readable mp4 file readable with VLC, html video tag,...
I have tried reading the mp4 directly as file in vidéo tag in chromium, it works.
Related
I have a code containing real media player video and audio files. (.rm and .ram). They are not working in browsers. Can you please suggest a solution. The code contains an embed tag which has a .rpm file in src. The .rpm file contains path to a .smi file which contains the .rm video and audio files to be played on clicking a button in browser. But this is not working as it should.
Thanks.
Convert the RealMedia files to a modern format, such as MP3 for audio files, or MPEG4 for video files.
RealMedia has been effectively obsolete for the last five to ten years (depending on how you define "obsolete"), and is no longer playable in any modern web browser.
I use JWPlayer to play videos from the server. Videos are encoded using h.264 codec. If i open them in browser with h.264 support - video plays nicely and i can seek it, because server returns 206 header browser understands that its partial content. But if i try to play same video on Opera, for example, flash player is being used and it receives 200 OK! 2 problems here:
I can't seek the video, until part of it is downloaded
If the video is not "properly" encoded player can't even start playing it, until file is fully downloaded.
Is there something wrong with flash properly asking/understanding http headers?(i've never worked with flash before, so maybe my question is a bit silly and i just don't know flash's limitations)..
1) You need to have pseudo streaming enabled, for Flash - http://www.longtailvideo.com/support/jw-player/28855/pseudo-streaming-in-flash, if you can provide a link though, I will take a look at exactly what is going on here, I am more or less guessing about this one. HTML5 does not require a pseudo streaming module to be installed on the server side, though. In Flash, the default is progressive download, so you can only seek to downloaded parts, and in html5, this is not the case.
2) Yes, that is because of encoding. If your MP4 files cannot be seeked before they are completely downloaded, you will have to fix the MOOV atom (it contains the seeking information) located at the end of your video. Use this little application to parse your videos and add the necessary cue points - http://renaun.com/blog/2010/06/qtindexswapper-2/
Also, encoding via HandBrake - http://handbrake.fr/, can fix this as well, so the above tool wouldn't be necessary. You can encode using HandBrake, and enable "web optimized", which does the same this as the Index Swapper Tool. HandBrake also has command line encoding options as well.
If I have two video tags in a webpage with the same file reference, will it downloaded twice or will it use the same downloaded file?
Please indicate if the behavior differs per browser.
When I run a page test for Chrome, it appears to download the same video file each time that video is referenced. I'm using HTML5 <video> tags.
I am using HTML5 audio tag to link to a WAV file, but it suddenly seems to be failing. Chrome does not seem to be able to play WAV files (MP3 works fine). I get an error message like:
Error loading: "blob:http%3A%2F%...."
Does Chrome's audio tag support WAV? For e.g., try playing this: http://www.nch.com.au/acm/11kulaw.wav
I am on Chrome version 15.0.874
I don't get the error in Chrome, but the file does not play. The control is visible, but is not working.
There is a bug report in Chromium project that seems to talk about the behavior:
http://code.google.com/p/chromium/issues/detail?id=83323
The gist of it is that .wav can mean a bunch of things and have various encodings. The comments recommend using a plugin to handle this or downloading the file.
For the purposes of serving it on the web, I'd recommend compressing it to an MP3 and an OGG format (if you want to be nice to FOSS people) and including multiple source tags.
I had this problem with an mp3 audio file that did not play just in Google Chrome (this problem could be happening with other audio format files too, like wav or ogg).
I opened my mp3 file in an audio editor (Audacity) and saved it again in the desired format (in this case, *.mp3).
It works correctly in Google Chrome.
My conclusion: if the audio file does not play, the problem is in the settings that generated the audio. Use another program, with other settings.
I intend to put together a web based player for myself. Is it possible to stream audio files using the html5 tag? or will they fully download and then play. Is any special server configuration required to play these files
Also what if the audio is not a file on the server but being dynamically generated on the server side with the raw bytes being written to the response stream
http://www.w3.org/TR/2010/WD-html5-20101019/video.html#audio
edit:
What's up with all that downloading?
Opera, Chrome and Safari will automatically download the whole video file even if it hasn't started to play yet. Firefox 3.6 only loads enough to render a frame and determine duration, unless the autobuffer attribute is present. Note that the spec changed from autobuffer to preload, which hasn't been implemented anywhere yet. Opera plans to change to the Firefox behavior of only loading enough to render a frame and determine duration by default, unless the preload attribute says otherwise.
source: http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/