I create elearning courses, and I'm having a very persistent loading issue with one of the courses I've been working on.
When I run my files through the debugger, this error comes up:
"Invalid URI. Load of media resource failed."
Followed by this error for each .mp4 file in the course:
"HTTP load failed with status 416"
This reflects the problems that we're seeing on the front end - issues with the videos in the course not preloading, and causing blank spaces or causing the entire course to stall.
Does anyone know if these are issues with my html file, or on the server side? Any suggestions?
Here is the link:
http://files.foodallergy.org/video-library/storyline/RecognizingandRespondingtoAnaphylaxis/story_html5.html
Thanks!
I've not seen that error before on a Storyline file. The error 416 suggests that the media file hasn't downloaded properly before its playback is started. If I return to the course, then the video plays correctly. Storyline does not stream media so it has to download them completely first.
Try delaying the start of the video/sound clip by say 2 seconds on the slide. This should give it enough time to download.
If you don't like the gap, then it could be covered with a fade-in slide transition or similar.
Related
We have one we application where we record video for 30sec or 1 min and submit to server. The device can be anything.
When we do record from laptop for 30sec the size of the video is 60mb, if from latest iphone size is 180.
Our server loads video if the video size is less than 60mb
to fix this issue, i tried compressing video in front end using this example enter link description here which uses vuejs.
We are using vuero framrwork.
Tsubasa enter link description here using mediainfo.js package. I followed same code but i am facing this issue..
The issue is :
MediaInfoModule.wasm net::ERR_ABORTED 404 (Not Found)
Could not load content for http://localhost:3000/node_modules/mediainfo.js/src/mediainfo.ts (HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE)
Please check screenshot
My nodemodule structure as below, plugin we have added in vite.config.ts file
I researched on this issue try to fix but no luck.
It's not possible to tell exactly what you need to change as we don't see the relevant code.
Make sure the file MediaInfoModule.wasm can be loaded in the browser. Check the browsers network tab. It tells you where your frontend expects the file.
Note, that you can also set the file location explicitly using locateFile as shown in this example.
Disclaimer: I'm the author of mediainfo.js.
I am writing an app that includes about 12 short JS files in the <head> section (I know, I should merge them and move them just before the end of <body>; would get to those when in production)
The trouble is that when I try to load the app in Chrome, Some files load immediately while some never finish loading at all! Chrome keeps trying to load the 12 JS files and never renders the page until I hit "Stop".
When I hit stop, the HTML is rendered and the JS files fail as in the image below:
Note that different JS files fail on each attempt! It's not the same file that gets stuck every time!
Inspecting the headers of the failed files shows "Caution: request is not finished yet". The files are stuck in "Receiving" sometimes for many minutes!
Now here's the fun part, after hitting stop, if I focus on the omnibar and press enter, all the JS files load instantly and the application works fine!
On the server side, I am using Apache, PHP and MySQL. Have I misconfigured something in Apache?
STATUS after 2 gruelling days: zilch, nothing, nada, this is driving me nuts. I have tried running the code from different machines, have tried changing apache cache settings and changed myriad things in javascript but nothing has worked. The worst thing is that no one can pin point where the problem is!
One possibility is that you have Keep-Alive enabled and it is not working properly. I've seen this before. The browser establishes it's maximum number of connections to your server (typically 6) to download the first few files (CSS, JS etc.) then those connections are not released until they time out. My symptoms were not quite the same as yours - the timeout was 20 seconds and everything would load in batches of 6 after that - but this could still be the cause.
In your Apache configuration (httpd.conf on most systems), look for the KeepAlive line (or add it if it's missing) and set it to Off.
More than an answer, here's how I would troubleshoot the problem.
One of the things I'd try is commenting out tags one at a time and reload, to see where the threshold is. Also, because this is probably a server configuration problem, I'd restart it after each try, to have a clean slate, so to speak, i.e., no state preserved between tries.
I'd try to get more hints by trying to make the requests for the various Javascripts from a script in your favourite language. Ideally, I'd try GETting the scripts one by one (say with curl) waiting a few milliseconds between requests. I imagine I'd hit a threshold here as well. Like, getting one script per second works, but when requests get too close, the server gets stuck.
If still no clue, I'd use tcpdump to watch the traffic between the browser and the server. Okay, this may be a little too low level!
But perhaps I'd use netstat to see how many connections the browser opens in parallel to the server to fetch the resources, and see if we hit a concurrency limit.
I'm sorry this is a solution but I hope you get some ideas, and I'd be very curious to know what your problem is, in the end!
We got exactly the same message "Caution: request is not finished yet" after a request in the browser.
The request itself was in the order of 15 MB of JSON, which was fed into an Angular 1 application. This request took about 2 seconds. Right after the request was finished, the Angular digest cycle blocked the browser for more than 12 seconds (this is visible by profiling during the request). During that time Chrome showed this "Caution: request is not finished yet" message in request whilst it actually was already finished.
Check the Content-Length header. Server may pass incorrect value - greather than actual content length.
Try to emulate problem in https://www.stevesouders.com/cuzillion/
It should say you side of problem - chrome or server
There are several good answers, but if you want a foolproof method of doing this, you can use PHP to send all the scripts at once. If the problem is truly too many connections to the server, you could add some html code like this:
<script type="text/javascript" src="scripts/scripts.php />
And then in scripts.php you use the include() function to include all of the JavaScript files like so:
<?php
header(''); // control all your headers
include('jquery-1.9.1.min.js');
// rest of scripts
?>
If nothing else works and the problem is excessive connections, this should work.
HTML Video tag
if you load m3u8, which is 404 (file not found), on ios Safari( ipad )
annoying popup will be resulted:
"The requested URL was not found on this server"
Is there a way to handle this error, so that pop up won't show.
First of all the HTML 5 Video tag only supports a dedicated amount of media formats,.
Though "m3u" and "m3u8" files are the basis for the HTTP Live Streaming format used by Apple to stream video to iOS devices. So just in case that your ipad actually can interpret your m3u8 file, there might totally be another problem:
m3u / m3u8 files are only playlist files which contain links to the real media files, so you check out the content of your m3u8 files. I'd strongly advise to use absolute paths in that file instead of relative paths. And make sure that those files are accessible by your device.
Instead of:
#EXTM3U
#EXTINF:123,Some Fancy Video
Some Fancy Video.mp4
it should look similar to this:
#EXTM3U
#EXTINF:123,Some Fancy Video
http://www.example.com/Some Fancy Video.mp4
I came across a similar error today and problem was in configuration Nginx server. We check the header HTTP_ORIGIN - if origin header (domain) in list then give access else return 404. But iPhone not present it header.
For check access execure command:
curl -I <doman.test>
If response see:
HTTP/2 200
all right!
And yes,
Checked on:
IOS 12
android 10
My app at http://beta.billboard.fm is producing errors in my normal browsing session after playing a single song.
If i reload the page in incognito, the app works fully. I only recently starting experiencing these issues. I have completed cleared all of the cache and it works again, but only temporarily before throwing the same errors.
Additionally I have disable all browser extensions.
But, no matter what I do I can't get this error from being thrown by the Youtube API:
Unable to post message to http://www.youtube.com. Recipient has origin https://www.youtube.com
It looks like there is a mismatch in the security protocols. I tried changing them to https or just removing "http:" all together on my side. But it did not resolve the issue.
Any one have an idea what is happening here?
It is quite clear to me at this point that this is a major bug in Google/YouTube's API. They have written some bad code somewhere. This bug is not a consistent thing. This is well documented by the fact that everybody's code works just fine for an extended period of time, and then they discover that all of a sudden their sites stop working properly. Additionally, all of my websites that had this problem last week are now working without a glitch - again, without me altering code.
So while it sucks to say this - the onus is on Google & YouTube to fix this and provide APIs that actually work as advertised... It doesn't look to me like there's anything we can do about it on our own :(
I am having the same problem - I also tried changing my links to http: to https: and vice-versa with no luck. I found this tread on Google Groups, but so far there has been no response. https://code.google.com/p/gdata-issues/issues/detail?id=4697
Clearing my cache allowed the player to work for a few videos, but after 3 or 4, the same error pops back up.
UPDATE 2 - Dec. 24, 2013: This solution has not actually fixed the problem at all:
After following a thread that poulified referred me to in his answer, a user in the forum posted the following solution which seems to be doing the trick for me (UPDATE: Still experiencing issues on random page loads :/):
Hi all,
It is working for replacing http:// with https://
example: http://jsfiddle.net/8tkgW/29/
Please make sure the following tips
load iframe api https://www.youtube.com/player_api
load iframe src path: https://www.youtube.com/embed/0GN2kpBoFs4?rel=0
If load player via new YT.Player, you must check the iframe src path:
setTimeout(function(){
var url = $('#iframe_youtube').prop('src');
if (url.match('^http://') {
$('#iframe_youtube').prop('src', url.replace(/^http:\/\//i, 'https://'));
}
}, 500);
Please refer my github project:
https://github.com/appleboy/js-video-player/blob/master/js/jsplayer.js#L120
I am referring a media source api demo given on this link
It is working fine for the given test webm file but when i tried to change the name of the file to a custom webm file the code stopped working.
It is generating following error : Uncaught Error: INVALID_STATE_ERR: DOM Exception 11 at following code : sourceBuffer.append(new Uint8Array(e.target.result));
To check whether the custom webm file is working i have created a test page in which i have defined a video tag having source of that custom webm file.
When i ran the code it is working fine.
I am unable to understand the reason for this strange behavior.
The most likely problem is your WebM file has Clusters that don't start with a keyframe.
In Chrome dev-channel builds (ie Chrome 25 or later), you can verify this with the following steps.
Open chrome:media-internals in another tab.
Return to the tab with your test page and reload it.
When the error occurs again, switch back to chrome:media-internals tab and look for the bottom entry under the "Active media players:" header. It should have the same blob: URL that you passed to the video element src attribute.
Click on the blob: URL to expand the player data.
Click on the "Log:" entry to expose the player logging data.
Search for entries that have "MEDIA_SOURCE_ERROR" in the "Event:" column. These entries should provide information about what is wrong with the content passed to the browser.
If you see a message that says something like "Media segment did not begin with keyframe." then it means your file has Clusters that don't start with a keyframe. This is common with content that is generated by FFmpeg. You can fix your file in one of the following ways:
Run the sample_muxer program mentioned in section 2.2.5 of the WebM adaptive streaming guide
Run the mse_webm_remuxer program I wrote as part of my mse-tools project.
UPDATE: no internal error shown in my case (accepted answer suggests to check) but still the same problem
I ran into the same trouble when trying to play recorded .webm file by MediaRecorder API back using Media Source Extensions (MSE). Chrome (51) recordings are malformed, Firefox (46) seems OK.
To get it working you have to fix cues in .webm file:
clone https://github.com/webmproject/libwebm
make sure you have cmake version >= 3.2 (https://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04)
cmake .
make
./sample_muxer -i original.webm -o fixed.webm
load fixed.webm into DASH / your own player!
Hope it helped someone. It was quite difficult to google any information without the DASH keyword (i am not using DASH, only the same underlying technology - MSE) :)