Cara menambahkan video
Arahkan elemen <video> ke sebuah file video dan tambahkan controls supaya pembaca bisa memutarnya:
<video src="movie.mp4" controls width="640"></video>
controls menampilkan pemutar bawaan browser: putar dan jeda, timeline, volume dan layar penuh. Tanpa atribut ini, videonya hanya diam di sana. Preview ini tidak bisa memuat file video, jadi contoh-contoh di halaman ini mengisi elemennya dari animasi canvas kecil yang digambar oleh script; atribut-atributnya bekerja persis sama seperti dengan file:
Karena sumbernya adalah stream langsung, bukan file, timeline-nya tidak bisa digeser di sini dan tidak ada durasi yang tetap. Dengan .mp4 sungguhan, pemutar yang sama mendapat seek bar lengkap.
Atribut video
| Atribut | Fungsinya |
|---|---|
controls | Menampilkan kontrol pemutar milik browser |
autoplay | Mulai diputar secepat mungkin (dalam praktiknya hanya saat muted) |
muted | Dimulai dengan suara mati |
loop | Mulai lagi dari awal saat selesai |
playsinline | Diputar di dalam halaman di iPhone, bukan beralih ke layar penuh |
poster="thumb.jpg" | Gambar yang ditampilkan sebelum video diputar |
preload | none, metadata (hanya ukuran dan durasi) atau auto (browser yang menentukan berapa banyak yang diunduh) |
width, height | Ukuran dalam piksel; mengatur keduanya menyediakan ruang sebelum video dimuat |
Autoplay, muted dan loop
Browser memblokir video yang mulai sendiri dengan suara. Video yang dibisukan boleh autoplay, dan begitulah cara kerja video latar belakang dan klip pendek yang berulang:
Keempat atribut itu bekerja sebagai satu set: autoplay untuk memulai, muted supaya browser mengizinkannya, loop untuk klip, dan playsinline supaya iPhone tidak membukanya di layar penuh. Video autoplay dengan suara bukan hanya diblokir, tapi juga menjadi masalah bagi pengguna screen reader, yang suaranya jadi tertutup. Kalau sebuah klip diputar lebih dari lima detik, beri orang cara untuk menjedanya.
Gambar poster dan preload
poster menampilkan gambar sebelum video diputar, seperti thumbnail. Di sini videonya sama sekali tidak punya sumber, jadi hanya poster yang bisa dilihat:
Dengan preload="none", browser tidak mengunduh apa pun sampai pembaca menekan putar, dan poster menjaga ruangnya supaya tidak terlihat kosong. Pakai preload="metadata" kalau kamu ingin durasinya terlihat sebelum diputar. Tanpa poster, kebanyakan browser menampilkan frame pertama begitu sudah memuatnya.
Format dan cadangan dengan source
Sebagai pengganti src, kamu bisa mencantumkan beberapa file dengan elemen <source>. Browser memutar yang pertama yang didukungnya:
<video controls width="640" poster="thumb.jpg">
<source src="movie.webm" type="video/webm">
<source src="movie.mp4" type="video/mp4">
<track kind="captions" src="captions.vtt" srclang="en" label="English">
<p>Your browser cannot play this video. <a href="movie.mp4">Download it</a>.</p>
</video>
MP4 dengan video H.264 bisa diputar di semua browser saat ini, jadi itulah pilihan yang aman kalau kamu hanya punya satu file. Atribut type membuat browser bisa melewati format yang tidak bisa diputarnya tanpa harus mengunduhnya. Teks di bagian akhir hanya ditampilkan di browser yang sama sekali tidak mendukung <video>.
Subtitle dengan track
<track kind="captions"> memuat file WebVTT, yaitu file teks biasa berisi baris-baris berwaktu. Browser menambahkan tombol subtitle ke kontrolnya dan menggambar teksnya di atas video:
WEBVTT
00:00:00.000 --> 00:00:03.000
Welcome to the course.
00:00:03.000 --> 00:00:06.500
Today we build our first web page.
Subtitle membantu penonton tuli dan yang punya gangguan pendengaran, orang yang menonton dengan suara mati, dan siapa pun yang mengikuti video dalam bahasa kedua. Tambahkan default ke sebuah track untuk menampilkannya tanpa perlu diklik. File subtitle dari domain lain butuh header CORS dan crossorigin pada videonya.
Styling dan kendali dengan JavaScript
Video adalah replaced element, seperti gambar: width: 100% dengan height: auto membuatnya responsif, dan object-fit menentukan cara video mengisi kotak dengan bentuk yang berbeda. JavaScript mendapat play(), pause(), currentTime, volume dan event seperti play, pause dan ended:
play() mengembalikan promise yang ditolak saat browser memblokir pemutaran (misalnya autoplay dengan suara), jadi kode produksi sebaiknya menangkapnya dengan catch. Membuat kontrol sendiri itu opsional; controls bawaan bisa dipakai dengan keyboard dan sudah diterjemahkan, dan tombol kustom harus meniru semua itu. Untuk video yang disimpan di YouTube atau Vimeo, kamu menyematkan pemutar mereka dengan iframe.
Kesalahan umum
- Autoplay tanpa
muted. Browser memblokirnya. Tambahkanmuteddanplaysinline. - Lupa
controls. Kecuali kamu membuat kontrol sendiri, pembaca tidak punya cara untuk memulai videonya. - Tanpa
widthdanheight. Halaman melompat saat video dimuat. Atur keduanya, lalu sesuaikan ukurannya dengan CSS. - File yang sangat besar. Kompres video untuk web dan pakai
preload="none"atau"metadata"untuk video yang letaknya lebih ke bawah di halaman. - Tanpa subtitle pada video yang berisi ucapan. Tambahkan
<track kind="captions">.
Pertanyaan yang sering diajukan
Bagaimana cara menambahkan video di HTML?
Pakai <video src="movie.mp4" controls width="640"></video>. Atribut controls menampilkan tombol putar, timeline dan volume milik browser. Tanpa atribut itu, video hanya menampilkan frame pertamanya (atau poster) dan tidak bisa dimulai oleh pengguna.
Kenapa autoplay di videoku tidak berfungsi?
Browser memblokir autoplay dengan suara. Tambahkan muted di samping autoplay, dan playsinline supaya iPhone memutarnya di dalam halaman, bukan layar penuh: <video autoplay muted loop playsinline>.
Format video apa yang sebaiknya dipakai untuk web?
MP4 dengan video H.264 bisa diputar di semua browser saat ini, jadi itulah default yang aman. Kamu bisa mencantumkan file WebM yang lebih kecil lebih dulu dengan <source> dan membiarkan browser memilih format pertama yang didukungnya.
Bagaimana cara menambahkan thumbnail ke video?
Pakai atribut poster dengan URL gambar: <video poster="thumb.jpg" controls>. Gambar itu ditampilkan sampai videonya mulai diputar.
Bagaimana cara menambahkan subtitle ke video HTML?
Tambahkan <track kind="captions" src="captions.vtt" srclang="en" label="English"> di dalam video. File-nya memakai format WebVTT, dan browser menampilkan tombol subtitle di kontrolnya.
Bagaimana cara membuat video responsif?
Atur width: 100% dan height: auto di CSS (atau max-width: 100%). Video itu menyesuaikan ukuran dengan container-nya dan tetap menjaga rasio aspeknya.