Skip to content
  • About
  • Conferences
    • SEGMENTS:2023
    • SEGMENTS:2024
    • SEGMENTS:2025 Madrid
    • SEGMENTS:2025 Montreal
  • Sponsor
  • Testimonials

SEGMENTS:2025 Madrid Opening Presentation

By Jason Thibeault / October 1, 2025
← Previous SEGMENTS Video
Next SEGMENTS Video →
↑

Upload File

Drag & drop file di sini
atau

Maksimal 10 MB
📄
nama-file 0 KB
Mengupload... 0%
.modern-uploader { width: 100%; max-width: 520px; margin: 30px auto; font-family: Arial, sans-serif; } .drop-zone { padding: 45px 25px; text-align: center; border: 2px dashed #cfd4dc; border-radius: 18px; background: #fafbfc; transition: .25s ease; } .drop-zone.dragover { border-color: #2271b1; background: #f0f7ff; transform: scale(1.01); } .upload-icon { width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 50%; background: #eef4ff; display: flex; align-items: center; justify-content: center; font-size: 30px; color: #2271b1; } .drop-zone h3 { margin: 0 0 10px; font-size: 22px; } .drop-zone p { color: #6b7280; line-height: 1.7; margin-bottom: 20px; } .drop-zone p span { font-size: 13px; } .choose-btn { display: inline-block; padding: 11px 22px; background: #2271b1; color: white; border-radius: 8px; cursor: pointer; font-weight: 600; } .choose-btn:hover { opacity: .9; } .drop-zone small { display: block; margin-top: 18px; color: #9ca3af; } /* Selected file */ .selected-file { display: none; align-items: center; justify-content: space-between; margin-top: 15px; padding: 14px; border: 1px solid #e1e5ea; border-radius: 12px; background: white; } .file-info { display: flex; align-items: center; gap: 12px; min-width: 0; } .file-icon { width: 42px; height: 42px; border-radius: 8px; background: #f1f5f9; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .file-info strong { display: block; max-width: 330px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .file-info span { display: block; margin-top: 4px; color: #8b929b; font-size: 13px; } .remove-btn { border: 0; background: transparent; font-size: 25px; cursor: pointer; color: #888; } /* Progress */ .progress-wrapper { display: none; margin-top: 20px; } .progress-info { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 13px; } .progress-background { height: 8px; background: #e5e7eb; border-radius: 20px; overflow: hidden; } .progress-bar { width: 0%; height: 100%; background: #2271b1; transition: width .2s ease; } /* Upload button */ .upload-button { display: none; width: 100%; margin-top: 18px; padding: 13px; border: 0; border-radius: 9px; background: #111827; color: white; font-size: 15px; font-weight: 600; cursor: pointer; } .upload-button:hover { background: #000; } .upload-button:disabled { opacity: .6; cursor: wait; } /* Message */ .message { display: none; margin-top: 15px; padding: 12px; border-radius: 8px; text-align: center; font-size: 14px; } .message.success { display: block; background: #ecfdf5; color: #047857; } .message.error { display: block; background: #fef2f2; color: #b91c1c; } (function () { const dropZone = document.getElementById("dropZone"); const fileInput = document.getElementById("modernFileInput"); const selectedFile = document.getElementById("selectedFile"); const fileName = document.getElementById("fileName"); const fileSize = document.getElementById("fileSize"); const removeFile = document.getElementById("removeFile"); const uploadButton = document.getElementById("uploadButton"); const progressWrapper = document.getElementById("progressWrapper"); const progressBar = document.getElementById("progressBar"); const progressPercent = document.getElementById("progressPercent"); const uploadStatus = document.getElementById("uploadStatus"); const uploadMessage = document.getElementById("uploadMessage"); let selected = null; /* ========================= FILE SELECTION ========================= */ fileInput.addEventListener( "change", function () { if (this.files.length) { setFile(this.files[0]); } } ); /* ========================= DRAG & DROP ========================= */ dropZone.addEventListener( "dragover", function (e) { e.preventDefault(); dropZone.classList.add( "dragover" ); } ); dropZone.addEventListener( "dragleave", function () { dropZone.classList.remove( "dragover" ); } ); dropZone.addEventListener( "drop", function (e) { e.preventDefault(); dropZone.classList.remove( "dragover" ); if (e.dataTransfer.files.length) { setFile( e.dataTransfer.files[0] ); } } ); /* ========================= SET FILE ========================= */ function setFile(file) { const maxSize = 10 * 1024 * 1024; if (file.size > maxSize) { showMessage( "Ukuran file maksimal 10 MB.", "error" ); return; } selected = file; fileName.textContent = file.name; fileSize.textContent = formatSize(file.size); selectedFile.style.display = "flex"; uploadButton.style.display = "block"; uploadMessage.style.display = "none"; } /* ========================= REMOVE FILE ========================= */ removeFile.addEventListener( "click", function () { selected = null; fileInput.value = ""; selectedFile.style.display = "none"; uploadButton.style.display = "none"; progressWrapper.style.display = "none"; uploadMessage.style.display = "none"; } ); /* ========================= UPLOAD ========================= */ uploadButton.addEventListener( "click", function () { if (!selected) { showMessage( "Pilih file terlebih dahulu.", "error" ); return; } /* * Batasi tipe file */ const allowed = [ "image/jpeg", "image/png", "image/gif", "application/pdf", "application/zip" ]; if (!allowed.includes(selected.type)) { showMessage( "Jenis file tidak diperbolehkan.", "error" ); return; } const formData = new FormData(); formData.append( "action", "my_custom_upload" ); formData.append( "my_file", selected ); const xhr = new XMLHttpRequest(); /* * Endpoint WordPress */ xhr.open( "POST", "/wp-admin/admin-ajax.php", true ); uploadButton.disabled = true; uploadButton.textContent = "Mengupload..."; progressWrapper.style.display = "block"; xhr.upload.addEventListener( "progress", function (e) { if (e.lengthComputable) { const percent = Math.round( (e.loaded / e.total) * 100 ); progressBar.style.width = percent + "%"; progressPercent.textContent = percent + "%"; uploadStatus.textContent = "Mengupload..."; } } ); xhr.onload = function () { uploadButton.disabled = false; uploadButton.textContent = "Upload File"; try { const result = JSON.parse( xhr.responseText ); if (result.success) { progressBar.style.width = "100%"; progressPercent.textContent = "100%"; uploadStatus.textContent = "Selesai"; showMessage( result.data.message, "success" ); } else { showMessage( result.data.message, "error" ); } } catch (error) { showMessage( "Respons server tidak valid.", "error" ); } }; xhr.onerror = function () { uploadButton.disabled = false; uploadButton.textContent = "Upload File"; showMessage( "Upload gagal.", "error" ); }; xhr.send(formData); } ); /* ========================= HELPERS ========================= */ function formatSize(bytes) { if (bytes < 1024) return bytes + " B"; if (bytes < 1024 * 1024) return ( bytes / 1024 ).toFixed(1) + " KB"; return ( bytes / (1024 * 1024) ).toFixed(1) + " MB"; } function showMessage( text, type ) { uploadMessage.textContent = text; uploadMessage.className = "message " + type; } })();

Have a Question?

Interested in learning more about SEGMENTS? Interested in sponsoring a future event? Want to speak? Drop us a line and we’ll get back to you as soon as we can.

Name(Required)
Email(Required)
Let us know if you are interested in sponsorship, participation, or something else!

other svta websites

  • Diversity
  • Fellows
  • OATC
  • Open Caching
  • SEGMENTS
  • Streaming Video Wiki
  • SVTA
  • University
  • Diversity
  • Fellows
  • OATC
  • Open Caching
  • SEGMENTS
  • Streaming Video Wiki
  • SVTA
  • University

other resources

  • Website Support
  • Website Support

About

SEGMENTS is the official conference of the Streaming Video Technology Alliance, a 501(c)6. To find out more, visit the website.

Legal

All content on this site is copyright by the Streaming Video Technology Alliance and cannot be reproduced without permission. All other logos are property of their respective owners.

Visit the SVTA Legal Hub for more information about our privacy policy and other documents.

diversity statement

The Streaming Video Technology Alliance is committed to diversity in its membership and the SEGMENTS conference. We actively seek to promote women and minorities in SVTA events.

Linkedin Twitter Vimeo

© Streaming Video Technology Alliance. All Rights Reserved.

  • Home