Lloyd Banks
Lloyd Banks

Reputation: 36699

How to Check Length / Duration of an Uploaded Video in JavaScript

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

Answers (2)

brbcoding
brbcoding

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

Diodeus - James MacFarlane
Diodeus - James MacFarlane

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

Related Questions