Cara pemprosesan media dalam pelayar benar-benar berfungsi
Selama bertahun-tahun, menyunting video atau menukar imej dalam talian bermakna memuat naik fail anda ke pelayan orang lain, menunggu, lalu memuat turun hasilnya. Pelayar moden tidak lagi menuntut timbal balik itu. Berkat susunan API platform web yang semakin matang, sesebuah halaman web kini boleh menyahkod, mengubah dan mengekod semula media terus pada mesin anda - komputer yang sama yang sedang membaca halaman ini. Panduan ini menerangkan, dalam bahasa yang mudah, teknologi yang membolehkannya dan cara anda boleh mengesahkan sendiri bahawa fail anda kekal setempat.
Apakah maksud sebenar "pemprosesan media dalam pelayar"?
Apabila sesebuah laman web memproses media dalam pelayar, kerja itu berjalan di dalam enjin berkotak pasir yang sama yang memaparkan halaman, menggunakan API yang sudah tersedia dalam pelayar anda. Fail anda dibaca daripada cakera ke dalam memori pada peranti anda sendiri, diubah di situ, lalu ditulis semula sebagai muat turun - tanpa perjalanan pergi balik ke pelayan bagi fail itu sendiri. Halaman ini masih memuatkan kod dan asetnya sendiri melalui rangkaian, tetapi video, audio, imej atau PDF anda tidak pernah meninggalkan komputer anda.
Bagaimanakah WebAssembly menjalankan kodek video pada kelajuan hampir asli?
WebAssembly (WASM) ialah format arahan binari yang padat dan dilaksanakan oleh pelayar pada kelajuan yang hampir menyamai kelajuan asli. Pustaka matang yang ditulis dalam C atau C++ - seperti FFmpeg untuk video atau sesebuah pengekod imej - dikompilkan kepada WASM dan dihantar sebagai modul yang dimuat turun sekali oleh halaman. Inilah yang dimaksudkan orang dengan video WASM sisi klien: matematik penyahkodan dan pengekodan yang sama seperti yang dilakukan oleh aplikasi desktop, dilaksanakan di dalam kotak pasir pelayar pada CPU anda sendiri. Oleh sebab WASM selamat dari segi memori dan berkotak pasir, ia boleh mengolah fail yang besar tanpa memperoleh akses kepada bahagian lain sistem anda.
Apakah itu WebCodecs, dan mengapakah ia boleh lebih pantas daripada WASM semata-mata?
WebCodecs ialah API pelayar yang lebih baharu dan mendedahkan kodek audio serta video terbina dalam peranti, yang selalunya dipecut perkakasan, terus kepada JavaScript. Daripada menghantar kodek sebagai WASM, halaman itu menyerahkan bingkai mentah kepada pengekod atau penyahkod yang sudah pun disediakan oleh sistem pengendalian, dan ini boleh menjadi jauh lebih pantas serta lebih jimat bateri. Sokongannya masih berbeza mengikut pelayar dan format, jadi alat yang dibina dengan baik akan menggunakan WebCodecs apabila ia tersedia dan berundur kepada binaan WASM jika sebaliknya. Apa pun caranya, media sebenar anda kekal pada peranti anda.
Bagaimanakah Canvas API dan pemaparan PDF mengendalikan imej?
Canvas API memberikan JavaScript sesebuah permukaan piksel yang boleh dilukis. Untuk mengubah saiz, memangkas, memutar, menambah tera air atau menukar sesebuah imej, alat akan melukisnya pada kanvas luar skrin, memanipulasi pikselnya, lalu membaca semula hasilnya sebagai JPG, PNG atau WebP yang baharu. Permukaan yang sama itulah yang digunakan untuk meraster halaman PDF menjadi imej dan untuk menangkap satu bingkai video sebagai gambar pegun. Kesemuanya ialah matematik piksel secara langsung pada mesin anda, tanpa apa-apa yang dimuat naik.
Bagaimanakah Web Audio API memproses bunyi secara setempat?
Web Audio API ialah graf nod audio yang saling bersambung - sumber, penapis, gandaan dan penganalisis - yang membolehkan sesebuah halaman menyahkod, memotong, mensampel semula dan mengekod semula bunyi dalam memori. Memotong sesebuah klip atau mengeluarkan trek audio daripada video berjalan sepenuhnya melalui graf ini pada peranti anda. Digabungkan dengan pengekod WASM, ia boleh menulis keluar MP3, WAV atau format lain tanpa rakaman anda menyentuh pelayan.
Apakah yang ditambah oleh MediaRecorder dan Web Workers?
MediaRecorder menangkap strim langsung - skrin, kamera atau mikrofon anda - dan mengekodkannya menjadi fail yang boleh dimuat turun sambil ia merakam, dan inilah cara perakam skrin dalam pelayar berfungsi. Web Workers menjalankan kerja berat pada bebenang latar belakang supaya pengekodan atau transkod tidak membekukan halaman, lalu mengekalkan tab anda responsif sementara eksport yang panjang selesai. Bersama-sama, API ini membolehkan pelayar bertindak seperti sebuah stesen kerja media setempat yang kecil.
Bagaimanakah saya boleh membuktikan bahawa fail saya tidak pernah meninggalkan peranti saya?
Buka alat pembangun pelayar anda, beralih ke tab Rangkaian, dan proses sesebuah fail - anda akan melihat kod dan aset halaman itu sendiri dimuatkan, tetapi tiada permintaan yang memuat naik media anda. Satu-satunya pengecualian yang disengajakan ialah Alat Transkripsi Audio, yang memuat turun model pengecaman pertuturan sekali pada penggunaan pertama lalu menyimpannya dalam cache, supaya transkripsi seterusnya boleh berjalan di luar talian; muat turun itu ialah model AI itu sendiri, bukan audio anda. Ini ialah dakwaan yang boleh disangkal dan boleh anda semak sendiri, dan itulah sebabnya alat yang mengutamakan privasi dibina sebegini.
Alat berkaitan
Soalan Lazim
- Adakah pemprosesan dalam pelayar bermakna fail saya tidak pernah dimuat naik?
- Ya - fail media anda dibaca dan diubah dalam memori pada peranti anda sendiri lalu ditawarkan semula sebagai muat turun, jadi ia tidak pernah dihantar ke pelayan. Halaman itu sendiri masih memuatkan kod dan asetnya melalui rangkaian, yang lazim bagi mana-mana laman web; bezanya, fail anda bukan sebahagian daripada trafik itu. Anda boleh mengesahkannya dalam tab Rangkaian pada alat pembangun pelayar anda.
- Adakah video WASM sisi klien sebaik aplikasi desktop?
- Untuk kebanyakan penukaran, pemampatan dan pemotongan, ia menggunakan pustaka asas yang sama (seperti FFmpeg) yang digunakan oleh aplikasi desktop, jadi kualiti keluarannya setanding. Perbezaan utamanya ialah kelajuan dan memori: tab pelayar mempunyai ruang lega yang lebih kecil berbanding aplikasi asli, jadi fail yang sangat besar atau sangat panjang diproses dengan lebih perlahan. Alat yang turut menyokong WebCodecs boleh memanfaatkan pecutan perkakasan untuk merapatkan sebahagian besar jurang itu.
- Mengapakah Alat Transkripsi Audio perlu memuat turun sesuatu?
- Pengecaman pertuturan memerlukan model AI, dan model itu dimuat turun sekali ke pelayar anda pada penggunaan pertama lalu disimpan dalam cache. Selepas itu, transkripsi berjalan secara setempat dan malah boleh berfungsi di luar talian. Muat turun itu ialah pemberat model - rakaman audio anda tetap tidak pernah dimuat naik.
- Adakah alat ini berfungsi di luar talian?
- Setelah halaman dan mana-mana modul yang diperlukan dimuatkan, kebanyakan pemprosesan berjalan tanpa sambungan internet kerana pengiraan berlaku pada peranti anda. Alat Transkripsi Audio berfungsi di luar talian selepas modelnya diambil dan disimpan dalam cache. Lawatan yang baharu atau cache yang telah dikosongkan akan memerlukan rangkaian sekali lagi untuk memuatkan aset halaman.
- Adakah pelayar saya cukup berkuasa untuk fail media yang besar?
- Pelayar moden boleh mengendalikan fail yang agak besar, tetapi ia beroperasi dalam had memori, jadi video yang teramat besar mungkin diproses dengan perlahan atau perlu dipecahkan. Menggunakan pelayar desktop dengan RAM yang lebih banyak, menutup tab berat yang lain, dan mengutamakan alat yang menggunakan WebCodecs semuanya membantu. Jika sesebuah fail terlalu besar untuk satu pusingan, memotongnya terlebih dahulu ialah penyelesaian praktikal.