Video & sari kata · Kit Alat Sari kata
Kod masa sari kata dibandingkan: SRT koma, VTT titik dan SMPTE bingkai
· Latar belakang
sari kata kod masa kadar bingkai
Tiga cara masa menulis dipaparkan dalam kerja kapsyen: SRT's HH:MM:SS,mmm, WebVTT's HH:MM:SS.mmm dan SMPTE's HH:MM:SS:FF. Siaran ini menerangkan maksud setiap satu, cara mereka menukar dan tempat penukaran menjadi salah.
Detik yang sama menulis tiga cara — lawatan pantas kod masa yang ditemui oleh editor dalam satu projek
Satu projek boleh menyerahkan editor dengan segera yang sama ditulis tiga cara. Fail sari kata menggunakan jam, minit, saat dan koma sebelum milisaat. Fail kapsyen web menggunakan titik dalam kedudukan yang sama. Senarai keputusan edit menggunakan nombor bingkai dan bukannya pecahan. Ketiga-tiganya menamakan detik yang sama, dan sahaja satu daripadanya boleh dibaca tanpa mengetahui apa-apa lagi tentang bahan tersebut.
Perkara terakhir itulah yang penting. Dua daripada tatatanda ini adalah mutlak dan satu tidak, dan penukaran di antara mereka gagal dengan cara tertentu apabila perbezaan itu diabaikan.
Milisaat dengan koma: SRT — tabiat perpuluhan Eropah yang menjadi peraturan format
SRT menulis jam, minit, saat, koma dan tepat tiga digit milisaat. Koma ialah pemisah perpuluhan dalam konvensyen Eropah, dan ia menjadi peraturan format mengikut penggunaan dan bukannya spesifikasi, kerana SubRip tidak mempunyai dokumen standard untuk membetulkannya. Tiada apa-apa tentang nilai adalah Eropah; sahaja tanda baca sahaja.
Penghurai di sini membaca milisaat dengan melapik apa sahaja digit yang ditemuinya di sebelah kanan kepada tiga, jadi cap masa yang berakhir dengan satu digit dibaca sebagai ratusan milisaat dan bukannya unit. Itu penting kerana fail yang ditulis dengan tangan atau dengan penukar longgar tidak selalu membekalkan tiga digit, dan membaca satu digit di belakang kerana unit akan meletakkan isyarat hampir satu saat lebih awal.
Milisaat dengan titik: WebVTT — nilai yang sama, pemisah berbeza dan sebab ia penting kepada penghurai
WebVTT menulis nilai yang sama dengan titik dan membenarkan medan jam ditinggalkan sepenuhnya, jadi borang dua medan adalah sah di mana SRT menjangkakan tiga. Bagi penghurai ini adalah tatabahasa yang berbeza, itulah sebabnya fail boleh ditolak untuk tanda baca sahaja walaupun setiap nombor di dalamnya betul.
Fail sebenar mencampurkan kedua-duanya secara berterusan, jadi penghurai menerima sama ada pemisah tanpa mengira format yang dituntut oleh fail itu. Toleransi itu adalah pada input sahaja. Pada output pemisah dipilih mengikut format sasaran, koma untuk SRT dan titik untuk WebVTT, jadi fail yang ditukar adalah berkanun dan bukannya salinan sebarang penyelewengan yang tiba.
Bingkai: SMPTE kod masa — HH:MM:SS:FF, pergantungannya pada kadar bingkai dan komplikasi bingkai jatuh
SMPTE kod masa menggantikan bahagian pecahan dengan nombor bingkai, memberikan jam, minit, saat dan bingkai. Tidak seperti dua yang lain, ia tidak boleh ditafsirkan secara bersendirian: bingkai dua belas adalah sekelip mata yang berbeza pada dua puluh lima bingkai sesaat berbanding tiga puluh, jadi kod masa berasaskan bingkai tanpa kadar yang diisytiharkan adalah tidak lengkap dan bukannya samar-samar.
Drop-frame menambah komplikasi kedua. Bahan pada 29.97 bingkai sesaat dikira seolah-olah tiga puluh, dan untuk memastikan kiraan sejajar dengan jam dua nombor bingkai dilangkau pada permulaan kebanyakan minit, dengan setiap minit kesepuluh dikecualikan. Bingkai tidak dijatuhkan; sahaja label sahaja. Kod masa bingkai jatuh ialah konvensyen pengiraan, dan menganggapnya sebagai kiraan bingkai biasa menghasilkan ralat yang berkembang merentas program.
Menukar bingkai kepada milisaat — aritmetik dan pembundaran yang menghasilkan ralat kecil tetapi nyata
Menukar bingkai kepada milisaat ialah pembahagian mengikut kadar bingkai, dan pembundaran ialah tempat ralat kecil masuk. Indeks bingkai dibahagikan dengan kadar dan didarab dengan seribu jarang mendarat pada keseluruhan milisaat, dan hasilnya perlu dibundarkan untuk disimpan. Isyarat dalaman dipegang sebagai keseluruhan milisaat dikira daripada sifar, jadi setiap penukaran kepada perwakilan itu pusingan sekali.
Satu pembundaran tidak berbahaya. Ralat yang perlu diperhatikan ialah penukaran berulang: fail yang diambil daripada bingkai kepada milisaat, kembali ke bingkai pada kadar yang berbeza dan ke hadapan sekali lagi mengumpul pembundaran setiap kali dan ralat tersebut tidak membatalkan. Tukar sekali daripada sumber yang berwibawa daripada menghantar fail melalui beberapa alat.
Contoh yang berkesan: satu isyarat pada 25 fps dan pada 29.97 bingkai jatuh — menukar kedua-duanya kepada milisaat dan membandingkan
Ambil satu isyarat pada satu minit tiga puluh saat dan dua belas bingkai. Pada dua puluh lima bingkai sesaat, dua belas bingkai ialah dua belas dua puluh lima saat, iaitu empat ratus lapan puluh milisaat tepat, jadi sesaat ialah sembilan puluh ribu empat ratus lapan puluh milisaat.
Pada 29.97 bingkai lungsur label yang sama adalah segera yang berbeza. Kira bingkai: sembilan puluh saat pada nominal tiga puluh memberikan dua ribu tujuh ratus, ditambah dua belas, tolak dua label yang digugurkan pada minit pertama, iaitu dua ribu tujuh ratus sepuluh bingkai. Bahagikan dengan kadar sebenar tiga puluh ribu lebih seribu satu dan sesaat ialah kira-kira sembilan puluh ribu empat ratus dua puluh empat milisaat. Kedua-dua kod masa kelihatan hampir sama dan berbeza dengan kira-kira lima puluh enam milisaat, yang cukup kecil untuk bertahan semakan dan cukup besar untuk dilihat pada isyarat yang ketat.
Perkara ini tidak meliputi — jam selepas 99, masa negatif dan kod masa dalam metadata bekas
Ini meliputi tatatanda kod masa yang dibawa oleh fail sari kata. Ia tidak meliputi medan jam melebihi sembilan puluh sembilan, yang digunakan sesetengah sistem untuk pengenalpastian gelendong berbanding masa berlalu, dan ia tidak meliputi masa negatif, yang tidak boleh dinyatakan oleh format sari kata; anjakan yang akan menghasilkan satu diapit pada sifar.
Kod masa yang disimpan dalam metadata bekas juga di luar skop. Fail video boleh membawa kod masa mula yang mengimbangi segala-galanya di dalamnya, jadi fail sari kata yang betul terhadap program boleh kelihatan salah pada fail dan tiada jumlah pemeriksaan cap waktu sari kata akan mendedahkannya.
Bawa pulang: ketahui jam yang anda baca — cara Kit Alat Sari kata menukar antara SRT dan kod waktu WebVTT dengan tepat
Ketahui jam yang anda baca. Koma dan titik adalah nilai yang sama yang ditulis untuk penghurai yang berbeza, dan penukaran di antara mereka harus menukar tanda baca dan tiada yang lain. Kiraan bingkai ialah jenis nombor yang berbeza, tidak bermakna tanpa kadarnya dan mengelirukan apabila kadarnya ialah satu bingkai jatuh.
Tukar antara SRT dan WebVTT dengan toolkit dan bandingkan cap masa sebelum dan selepas: pemisah harus berubah dan digit tidak sepatutnya. Jika nombor dipindahkan, fail itu melalui langkah berasaskan bingkai di suatu tempat, dan itu ialah penukaran untuk diperiksa.