Reputation: 36699
Is there a way to check the length of a video file that is being uploaded by a user?
Tried .duration
, but this seems to only work on hosted videos that is already referenced in the DOM.
Upvotes: 4
Views: 16799
Reputation: 13616
How about something like this?
// create the video element but don't add it to the page
var vid = document.createElement('video');
document.querySelector('#input').addEventListener('change', function() {
// create url to use as the src of the video
var fileURL = URL.createObjectURL(this.files[0]);
vid.src = fileURL;
// wait for duration to change from NaN to the actual duration
vid.ondurationchange = function() {
alert(this.duration);
};
});
<input type="file" id="input">
Upvotes: 27
Reputation: 114417
Video files need to be decoded by an actual player in order to determine the duration. JavaScript can only count bytes.
Upvotes: -8