How to Convert Video to Base64 with JavaScript
// Convert video file to Base64
function videoToBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
const base64 = reader.result; // Includes data URL prefix
resolve(base64);
};
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
// Usage with file input
document.querySelector('input[type="file"]').addEventListener('change', async (e) => {
const file = e.target.files[0];
const base64 = await videoToBase64(file);
console.log(base64); // data:video/mp4;base64,AAAAIGZ0eXBpc29t...
// Get only Base64 string (without prefix)
const base64Only = base64.split(',')[1];
});
// Get video duration and dimensions
function getVideoMetadata(file) {
return new Promise((resolve) => {
const video = document.createElement('video');
video.preload = 'metadata';
video.src = URL.createObjectURL(file);
video.onloadedmetadata = () => {
resolve({
duration: video.duration,
width: video.videoWidth,
height: video.videoHeight
});
URL.revokeObjectURL(video.src);
};
});
}