Pada episode ini kalian mengekstrak dan mengonversi subtitle, membakar subtitle ke video, mengatur metadata dan chapters, serta mengenal dukungan metadata EXIF pada FFmpeg versi baru.

Di episode 10 kalian sudah menghasilkan gambar dan animasi dari video — sekarang saatnya merapikan teks dan identitas: subtitle, metadata, dan chapters. Subtitle membuat konten menjangkau penonton yang lebih luas; metadata dan chapters membuat file tertata seperti pustaka yang rapi, bukan tumpukan file tanpa nama.
Episode ini menutup "pengolahan file tunggal" dengan tiga kemampuan praktis: memanipulasi subtitle, menulis metadata, dan menyusun chapter — lalu kita akan siap menaikkan skala di episode berikutnya.
Subtitle disimpan sebagai stream teks dengan format masing-masing. Tiga yang paling sering dijumpai:
| Format | Ciri utama |
|---|---|
| SRT | Paling sederhana, urutan waktu dengan koma milidetik, kompatibel luas |
| ASS | Styling kaya: posisi, warna, font, efek karaoke |
| VTT | Varian web, standar pemutar browser |
SRT adalah pilihan aman untuk hampir semua kebutuhan; ASS diperlukan ketika kalian ingin tampilan subtitle yang "berkelas" — seperti gaya video anime dan karaoke. VTT untuk konten web.
Seperti audio dan video, subtitle adalah stream yang bisa dipetakan dan disalin. Untuk mengambil subtitle dari file:
ffmpeg -i input.mkv -map 0:s:0 subtitle.srt0:s:0 adalah stream subtitle pertama dari file pertama. Tanpa -c:s dan dengan ekstensi output yang jelas, FFmpeg menyimpulkan format SRT dari ekstensi tersebut. Untuk mengonversi antar-format subtitle, -c:s adalah kuncinya:
ffmpeg -i input.mkv -c:s ass output.assKonversi subtitle adalah operasi teks — nyaris instan, tanpa decode video. Ini pola -c:s yang sama untuk semua konversi antar-format subtitle (SRT, ASS, VTT, dan lain-lain).
Subtitle juga bisa ditambahkan ke file video sebagai stream terpisah — penonton bisa memilih menyalakan atau mematikannya. Untuk MP4, format subtitle wajib mov_text:
ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s mov_text output.mp4Perhatikan kombinasi codec: video dan audio disalin (-c copy), sementara subtitle dikonversi ke mov_text supaya MP4 menerimanya. Untuk MKV, SRT asli langsung diterima — -c:s copy saja sudah cukup. Container kembali menentukan aturan main, seperti yang kalian pelajari di episode 8.
Tip
Subtitle "soft" (stream terpisah) selalu lebih fleksibel daripada subtitle "hard" (terbakar ke gambar): penonton bisa mematikan, mengganti bahasa, atau mengubah ukuran font. Gunakan stream subtitle bila memungkinkan — bakar ke gambar hanya ketika format target (misalnya GIF atau platform tertentu) memang tidak mendukung subtitle.
Terkadang subtitle harus menjadi bagian permanen dari gambar — misalnya untuk video yang diunggah ke platform yang tidak membaca stream subtitle. Ini disebut burn-in, dilakukan dengan filter subtitles:
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" -c:a copy output.mp4Filter subtitles menuntut re-encode video (subtitle digambar ke setiap frame) — itu sebabnya audio disalin terpisah dengan -c:a copy. Perhatikan bahwa filter ini menganggap jalur file subtitle relatif terhadap direktori kerja; jika file ada di tempat lain, gunakan path absolut atau jalur yang di-escape dengan benar.
Important
Filter subtitles bergantung pada libass dan font yang terpasang di sistem. Jika font untuk bahasa tertentu tidak ada, karakter bisa tampil kotak-kotak (tofu). Pastikan font yang sesuai terinstall sebelum burn-in bahasa non-Latin — dan selalu periksa satu frame hasil dengan ffplay -vf "subtitles=subtitle.srt" input.mp4 sebelum render penuh.
Metadata adalah "KTP" file media: judul, artis, komentar, tanggal, dan informasi lain yang melekat pada file. Ketika file dipindahkan antar pemutar, metadata inilah yang membuat file dikenali dengan baik.
ffmpeg -i input.mp4 -metadata title="Video Tutorial FFmpeg" -metadata comment="seri belajar ffmpeg" -c copy output.mp4Dengan -c copy, bitstream tidak disentuh — FFmpeg hanya menulis ulang metadata ke container baru. Ini cara yang aman untuk "menandai" file tanpa re-encode. Untuk menghapus semua metadata — misalnya file yang akan dipublikasikan dan tidak ingin membocorkan data internal:
ffmpeg -i input.mp4 -map_metadata -1 -c copy clean.mp4-map_metadata -1 memberi tahu FFmpeg: jangan salin metadata apa pun. Hasilnya file bersih dari judul, komentar, dan jejak identitas lain.
Chapters adalah penanda posisi waktu dengan judul — seperti bab di buku atau segmen di film. Pemutar yang mendukung (MP4, MKV) menampilkan daftar bab yang bisa dilompati. Chapters ditulis dalam format FFMETADATA:
;FFMETADATA1
[CHAPTER]
TIMEBASE=1/1000
START=0
END=120000
title=Intro
[CHAPTER]
TIMEBASE=1/1000
START=120000
END=420000
title=Isi UtamaTIMEBASE=1/1000 berarti waktu dalam milidetik — jadi END=120000 sama dengan 2 menit. Setiap blok [CHAPTER] mendefinisikan satu bab. Untuk menyematkannya ke file:
ffmpeg -i input.mkv -f ffmetadata -i chapters.txt -map_chapters 1 -c copy output.mkv-map_chapters 1 mengambil definisi chapter dari input kedua (chapters.txt), sementara -c copy menjaga video dan audio tidak tersentuh. Hasilnya: file yang sama persis, kini dengan navigasi bab.
Terakhir, satu penyempurnaan yang hadir pada FFmpeg versi lebih baru: penanganan metadata EXIF pada gambar. EXIF adalah metadata tertanam pada JPEG/PNG — orientasi, waktu pengambilan, pengaturan kamera, hingga koordinat GPS. Sejak FFmpeg 8.1 ke atas, dukungan metadata EXIF disempurnakan sehingga orientasi dan informasi gambar tetap dipertahankan saat file diproses lewat jalur metadata FFmpeg.
ffmpeg -i foto.jpg -map_metadata 0 -c copy foto-copy.jpgDengan pola ini, metadata (termasuk EXIF) disalin dari input ke output tanpa kehilangan informasi — sangat berguna saat kalian mengubah format atau container gambar dan tidak ingin orientasi atau jejak EXIF hilang. Cek versi kalian dengan ffmpeg -version untuk memastikan fitur tersedia, dan verifikasi hasil dengan ffprobe -v quiet -show_format foto-copy.jpg.
Note
Metadata EXIF adalah fitur yang terus berkembang di FFmpeg. Jika versi kalian lebih lama dari 8.1, sebagian operasi EXIF mungkin tidak tersedia atau berperilaku berbeda — jangan ragu untuk memperbarui FFmpeg agar mendapat dukungan lengkap.
Pada episode 11 ini kalian telah melengkapi kotak alat "file tunggal": mengekstrak dan mengonversi subtitle dengan -c:s, menyisipkannya sebagai stream atau membakarnya dengan filter subtitles, menulis dan menghapus metadata dengan -metadata dan -map_metadata, menyusun chapters lewat file FFMETADATA, serta mengenal penyempurnaan metadata EXIF pada FFmpeg 8.1+.
Inti yang perlu dibawa pulang: subtitle dan metadata adalah bagian dari file media, bukan pelengkap yang terpisah. Mengelola keduanya dengan sadar membuat file kalian profesional — mudah diputar, mudah diindeks, dan ramah penonton.
Di episode 12 selanjutnya kita akan menyatukan banyak file menjadi satu: concat dan segmenting — menggabungkan klip video, dan memecah file panjang menjadi segmen. Sampai jumpa di episode 12!