Bahasa Melayu

Video & sari kata · Kit Alat Sari kata

Mengapa fail sari kata dimainkan dalam VLC tetapi gagal dalam elemen runut HTML5

· Bagaimana ia berfungsi

sari kata webvtt pemprosesan pelayar

Satu fail sari kata mencapai dua penghurai, yang lembut menunjukkan setiap isyarat dan yang ketat menunjukkan jurang di mana isyarat digugurkan
Ilustrasi vektor ToolAcre asal

Pemain desktop memaafkan; elemen jejak pelayar tidak. Siaran ini menerangkan cara penghurai kapsyen HTML5 membaca fail WebVTT, ralat yang digugurkan secara senyap dan cara menyediakan fail yang diterima oleh kedua-duanya.

Fail yang sama berfungsi dalam VLC dan tidak menunjukkan apa-apa pada halaman web — dua parser, dua tahap toleransi

Fail kapsyen yang dimainkan dengan betul dalam pemain desktop dan tidak menunjukkan apa-apa pada halaman web tidak berubah antara keduanya. Apa yang berubah ialah sejauh mana toleransi yang dibawa oleh pembaca. Pemain desktop dibina untuk memaparkan apa sahaja yang diseret oleh pengguna pada mereka, jadi mereka meneka, membaiki dan melangkau. Elemen trek HTML5 melaksanakan spesifikasi dan spesifikasi yang menerima tekaan tidak akan menjadi satu.

Perbezaannya juga bukan pepijat. Ia adalah dua reka bentuk dengan kewajipan yang berbeza, dan akibat praktikal ialah pemain desktop adalah ujian yang lemah sama ada fail akan berfungsi di web.

Cara elemen trek memuatkan fail kapsyen — permintaan, jenis MIME, CORS untuk trek silang asal dan semakan pengepala WEBVTT

Elemen runut mengambil fail kapsyen sebagai sumber biasa, yang bermaksud ia tertakluk pada peraturan yang sama seperti mana-mana permintaan lain. Ia mesti disampaikan dengan jenis media WebVTT dan fail yang disampaikan sebagai teks biasa ditolak tanpa mengira kandungannya. Lagu yang dihoskan pada asal lain memerlukan pengepala silang asal dan atribut silang asal pada elemen video, dan tanpanya pengambilan gagal sebelum sebarang penghuraian berlaku.

Kemudian datang pemeriksaan pengepala. Fail WebVTT mesti bermula dengan tandatangan WEBVTT, secara pilihan didahului dengan tanda pesanan bait dan fail tanpanya bukan fail WebVTT. Ini ialah satu-satunya sebab yang paling biasa fail SRT dinamakan semula kepada sambungan VTT tidak memaparkan apa-apa: penamaan semula menukar sambungan dan bukan baris pertama.

Penghuraian cue-by-cue — perkara yang dilakukan oleh pelayar dengan kod masa yang salah bentuk atau baris yang tidak dijangka, dan sebab kegagalan itu senyap

Menghuraikan selepas titik itu adalah kiu demi kiu, dan mod kegagalan adalah yang menjadikannya mengelirukan. Blok yang tidak dapat dibaca oleh penghurai dibuang dan penghuraian diteruskan. Tiada pengecualian, tiada ralat konsol dan tiada petunjuk visual; isyarat itu tidak pernah muncul. Fail dengan empat kod masa cacat daripada sembilan ratus dimainkan hampir sempurna, dengan empat saat senyap yang kelihatan seperti kehilangan terjemahan dan bukannya ralat format.

Inilah sebabnya mengapa gejala ini biasanya dilaporkan sebagai terputus-putus. Tiada yang terputus-putus mengenainya. Petunjuk yang sama gagal setiap kali, tetapi kerana isyarat di sekeliling berfungsi, fail kelihatan berfungsi secara meluas dan kesilapan itu dikaitkan dengan kandungan dan bukannya penghuraian.

Kelonggaran pemain desktop — mengapa VLC dan yang lain menerima fail yang secara teknikalnya tidak sah

Pemain desktop mengambil kedudukan bertentangan dengan sengaja. Mereka menerima kedua-dua pemisah milisaat, bertolak ansur dengan garis indeks yang hilang, membuat kesimpulan format daripada kandungan dan bukannya sambungan, pesanan pembaikan dan melangkau perkara yang mereka tidak boleh gunakan tanpa aduan. Pengguna yang menyeret fail ke pemain mahu filem itu mempunyai sari kata, bukan laporan pengesahan.

Penghurai toolkit duduk dalam tradisi yang sama pada input, menerima waktu pilihan, sama ada pemisah dan fail yang bloknya tidak teratur. Perbezaannya ialah apa yang dilakukan selepas itu: ia merekodkan setiap kesilapan yang diterimanya sebagai isu yang terletak, dan ia menulis kembali satu bentuk kanonik dan bukannya mengekalkan penyelewengan yang diterimanya.

Contoh yang berfungsi: fail dengan tiga kesilapan biasa — mengujinya dalam pelayar dan melihat isyarat yang hilang

Ambil fail dengan tiga kerosakan: ia tidak mempunyai pengepala WEBVTT, satu isyarat mempunyai medan saat tujuh puluh lima dan satu isyarat berakhir sebelum ia bermula. Dalam pemain desktop, fail dimainkan, saat yang mustahil dibaiki atau dilangkau secara senyap dan isyarat terbalik berkelip atau digugurkan. Penonton melihat sari kata.

Dalam elemen trek, pengepala yang hilang menamatkannya dengan serta-merta; tiada satu isyarat dipaparkan, kerana fail itu tidak pernah diterima sebagai WebVTT. Tambah pengepala dan gambar berubah: kebanyakan isyarat muncul, isyarat dengan tujuh puluh lima saat dibuang semasa penghuraian, dan isyarat terbalik dihuraikan tetapi tidak pernah ditunjukkan kerana ia tidak mempunyai tempoh untuk dipaparkan. Nama pengesahan kedua-duanya sebelum anda memuatkan halaman, melaporkan kod masa yang mustahil dan isyarat yang berakhir sebelum ia bermula, masing-masing mengikut nombor.

Perkara yang tidak dilindungi ini — menggayakan dengan ::cue, tetapan kedudukan dan kapsyen langsung

Ini merangkumi sama ada isyarat dimuatkan, bukan rupanya. Menggayakan melalui elemen pseudo kiu, tetapan kedudukan dan penjajaran pada baris kod masa, definisi rantau dan teks menegak adalah semua kebimbangan berasingan yang sahaja penting selepas fail dihuraikan. Fail yang tidak memaparkan apa-apa bukanlah masalah penggayaan, dan penggayaan tidak akan menyelamatkannya.

Kapsyen langsung dan penstriman juga berada di luar ini. Runut kapsyen terbahagi yang dihantar bersama strim adaptif mempunyai model penghantarannya sendiri dan fail statik yang dimuatkan oleh elemen runut bukanlah cara ia mencapai pemain.

Bawa pulang: sediakan untuk penghuraian yang paling ketat — cara penukaran dan pembersihan Kit Sari Kata menghasilkan fail yang diterima oleh elemen trek

Bersedia untuk penghurai yang paling ketat dan bukannya yang paling pemaaf, kerana penghurai yang ketat ialah yang digunakan oleh khalayak anda. Tukar kepada WebVTT dengan betul supaya baris tandatangan ditulis dan bukannya diandaikan, sajikannya dengan jenis media yang betul dan tambahkan pengepala rentas asal jika fail tersebut berada pada hos lain.

Jalankan penukaran dan baca isu yang dilaporkan sebelum penghantaran. Penukar menulis cap masa kanonik dengan pemisah yang diperlukan oleh format, menomborkan semula isyarat bersebelahan dan melaporkan kesilapan yang perlu diterimanya, iaitu senarai isyarat yang akan hilang secara senyap dalam pelayar. Kemudian muat semula halaman dan bandingkan kiraan isyarat dengan sumber dan bukannya mempercayai bahawa kapsyen muncul.