Senang bisa berbagi di sini. Sesuai janjiku sebelumnya, hari ini aku mau bahas soal teknis yang mungkin kelihatan rumit tapi sebenarnya sangat membantu kalau kamu suka koleksi film atau video.
Kita akan bedah FFmpeg. Buat yang belum tahu, ini adalah alat baris perintah (command line) yang sakti banget buat urusan konversi video. Aku akan pakai Windows PowerShell, jadi kalau kamu pakai Terminal Mac atau Linux, mungkin ada sedikit penyesuaian di penulisan tanda sambung barisnya.
Berikut adalah tiga opsi judul untuk postingan kali ini:
Tutorial FFmpeg: Cara Gabung Subtitle Tanpa Ribet
Kupas Tuntas Command FFmpeg untuk Pemula
Mengenal Mapping FFmpeg: Seni Menyusun File Video
Gas Langsung ke Command
Daripada banyak teori di awal, mending kamu lihat dulu bentuk asli "mantra" yang sering aku pakai di PowerShell. Anggap saja ini resep dasar untuk memasukkan subtitle ke dalam file video MKV tanpa merusak kualitas aslinya.
ffmpeg `
-i "nama file.mp4" `
-i "nama file.srt" `
-i "nama file.ass" `
-map 0:v `
-map 0:a `
-map 0:s:? `
-map 1:s:0 `
-map 2:s:0 `
-c:v copy `
-c:a copy `
-c:s copy `
-metadata:s:s:0 language=ind `
-metadata:s:s:1 language=ind `
-disposition:s:1 hearing_impaired `
-max_interleave_delta 0 `
"nama file.mkv"
Melihat kode di atas mungkin bikin pusing kalau baru pertama kali lihat. Tapi tenang, aku akan jelaskan satu per satu fungsi dari komponen utamanya.
Memahami Kamus FFmpeg
Sebelum masuk ke logika yang lebih dalam, kamu harus tahu dulu arti dari alfabet-alfabet pendek itu. Ini adalah fondasi biar kamu nggak asal copy-paste.
-i (Input): Ini simpel, gunanya untuk menunjuk file mana yang mau kamu proses. Bisa video, audio, atau subtitle.
-map: Ini bagian paling penting. Gunanya untuk memilih aliran (stream) mana yang mau dibawa ke file hasil akhir. Kalau nggak pakai ini, FFmpeg bakal pilih otomatis, dan hasilnya sering nggak sesuai kemauan.
-c (Codec): Ini cara data dikompresi. Kalau kamu tulis
copy, artinya kamu cuma pindahin data tanpa diproses ulang (nggak perlu nunggu lama buat rendering).-metadata: Ini seperti ngasih "KTP" ke file kamu. Misalnya, ngasih tahu kalau subtitle ini bahasa Indonesia.
-disposition: Mengatur perilaku otomatis. Contohnya, membuat subtitle tertentu langsung muncul saat video diputar.
-max_interleave_delta: Ini teknis banget, intinya untuk mengatur antrean data video dan audio supaya pas saat disatukan (muxing).
Bedah Logika Mapping
Mapping punya anatomi penulisan yang baku: [Input]:[Tipe]:[Indeks]. Contohnya 0:a:0. Mari kita preteli satu per satu:
Angka Pertama (0) — "Box Number": Ini merujuk pada urutan file input. File pertama yang kamu masukkan dihitung sebagai 0, file kedua sebagai 1, dan seterusnya.
Huruf Tengah (a) — "Stream Type Selector": Ini filternya.
vuntuk video,auntuk audio,suntuk subtitle,duntuk data, dantuntuk attachment (seperti font).Angka Terakhir (0) — "Sequence Number": Ini urutan di dalam jenis yang sama. Kalau di file input pertama ada dua audio, maka audio pertama itu
0, audio kedua itu1.
Filosofi Eksplisit vs Implisit
Kalau kamu cuma nulis -map 0, FFmpeg bakal ambil semua isi dari input pertama. Tapi kalau kamu mau "pembedahan presisi", kamu harus spesifik.
Ada variasi cerdas yang sering aku pakai, yaitu tanda tanya (?). Contohnya -map 0:s?. Artinya: "Ambil subtitle dari input pertama kalau ada. Kalau nggak ada, ya sudah, jangan kasih eror." Ini berguna banget kalau kamu lagi bikin script untuk memproses banyak file sekaligus.
Hubungan Mesra antara Map dan Codec
Ini yang sering bikin orang bingung. Urutan -map yang kamu tulis akan menentukan urutan di file hasil akhir. Kalau kamu tulis audio kedua dulu baru audio pertama, posisinya bakal tertukar di hasil akhir nanti.
Lalu, bagaimana cara kasih perintah codec buat bagian yang spesifik? Kita pakai Stream Specifier:
-c:v:0 libx264: Artinya, "Tolong masak Video pertama pakai mesin x264."-c:a:0 copy: Artinya, "Tolong bungkus saja Audio pertama tanpa dimasak ulang."
Kesimpulan & Refleksi
Belajar FFmpeg itu memang butuh ketelitian. Salah ketik satu angka saja, file kamu bisa jadi tanpa suara atau subtitle-nya hilang. Tapi kalau sudah paham logikanya, kamu punya kontrol penuh atas koleksi videomu tanpa harus instal aplikasi berat yang penuh iklan.
Pelajaran utamanya sederhana: Presisi itu penting. Jangan biarkan sistem memilihkan apa yang kamu butuhkan kalau kamu bisa menentukannya sendiri dengan satu baris perintah.
Gimana? Kelihatannya susah atau malah bikin penasaran buat coba sendiri di laptop? Tulis di kolom komentar ya, kamu lebih suka pakai GUI (aplikasi klik-klik) atau command line kayak gini buat urusan video?
Komentar
Posting Komentar