Kamus

Apa Itu Time Base?

Jika Anda menemukan nilai untuk Time Base di file Anda, tentu Anda ingin tahu artinya. Temukan informasi yang kami kumpulkan seputar metadata Time Base.

time-base

Time Base adalah satuan waktu yang digunakan oleh sebuah stream untuk menghitung. Alih-alih menyimpan stempel waktu dalam detik, sebuah file media menghitung dalam tick dari jam internalnya sendiri, dan time base menyatakan berapa lama satu tick berlangsung. Nilainya ditulis sebagai pecahan dari satu detik.

File mana yang membawanya dan dari mana nilai itu berasal

Anda akan menemukan time base pada masing-masing stream di dalam file media: gambar, suara, dan subtitle apa pun di MP4, MOV, MKV, WebM, AVI dan MPEG transport stream, serta di file audio mandiri. Setiap stream memiliki time base sendiri, sehingga audio dan video dalam satu file biasanya menghitung dalam satuan yang berbeda.

Nilainya dipilih oleh encoder atau program yang menyusun file tersebut. Beberapa format kontainer mensyaratkan time base tertentu dan menetapkannya secara tetap; jika format memberi kebebasan, program penulis akan memilih sesuatu yang sesuai dengan konten, dan sebuah file mungkin saja hanya menggunakan nilai bawaan program itu.

Seperti apa tampilan nilainya

Nilainya selalu berupa pecahan, dan angka di bawahnya adalah jumlah tick per detik:

  • 1/1000 - satu milidetik per tick, pilihan yang umum pada file Matroska dan WebM
  • 1/90000 - telah lama digunakan dalam MPEG transport stream
  • 1/48000 - stream audio sering menghitung dalam sampel, sehingga time base disesuaikan dengan laju sampling
  • 1/12800 - nilai yang umum dijumpai pada stream video di file MP4

Untuk mengubah stempel waktu menjadi detik, kalikan dengan pecahannya. Presentation timestamp sebesar 12800 pada stream dengan time base 1/12800 sama dengan tepat satu detik; dengan time base 1/1000, stempel waktu 3500 berarti tiga setengah detik. Inilah sebabnya stempel waktu mentah dalam laporan tampak seperti angka yang sangat besar: itu adalah hitungan tick, bukan detik. Perangkat lunak yang lebih lama juga mungkin mencetak baris Codec Time Base terpisah di samping yang ini.

Mengapa ini penting

Segala sesuatu dalam file media terjadi pada bilangan bulat tick, sehingga time base menetapkan ketelitian waktu tertinggi yang dapat dinyatakan oleh stream. Jika sebuah frame atau sampel jatuh di antara dua tick, stempel waktunya harus dibulatkan, dan kesalahan pembulatan akan terakumulasi.

Ini menjadi masalah nyata pada frame rate video yang bukan bilangan bulat. Pada laju siaran 30000 frame per 1001 detik, satu frame berlangsung sedikit di atas 33 milidetik tetapi bukan bilangan bulat milidetik, sehingga time base dalam milidetik tidak dapat menempatkan satu frame pun secara tepat. Time base dengan lebih banyak tick per detik - angka yang lebih besar di bawah pecahan - dapat tepat mendarat di setiap batas frame, itulah sebabnya encoder lebih memilih nilai seperti 1/12800 atau 1/90000 dibanding milidetik biasa.

Konsekuensinya muncul sebagai kesalahan waktu, bukan sesuatu yang dapat Anda lihat pada satu frame tunggal: suara perlahan bergeser tidak selaras dengan gambar, jarak antar frame tidak merata, potongan atau seek yang mendarat sedikit meleset. Menggabungkan file yang stream-nya menghitung dengan time base berbeda berarti semua stempel waktu harus diskalakan ulang, dan konversi itu adalah sumber klasik bug sinkronisasi. Field ini sendiri tidak memengaruhi kualitas gambar atau suara, dan tidak berisi informasi pribadi apa pun.