Rumah >hujung hadapan web >tutorial js >Penjana Gambar Kecil AWS Sideo - Panduan Penyelesaian Node.js Tanpa Pelayan
NOTA: Jangan bahagikan kepada dua bahagian, tidak ada teks yang mencukupi di sini untuk mewajarkan pemisahan dan artikel memfokuskan pada penyelesaian bukan membincangkan pilihan.
Perlu menjana lakaran kecil video dengan cekap dan kos efektif pada skala? Mari kita bina penyelesaian tanpa pelayan yang benar-benar menggunakan AWS Lambda yang memerlukan kos hanya beberapa sen untuk dijalankan, berbanding menggunakan perkhidmatan pemprosesan media khusus.
Penyelesaian terdiri daripada fungsi Node.js Lambda yang:
Bukan sangat mudah, atau murah, untuk menjana lakaran kecil pada skala. Faktor kos amat penting dalam kes video - dengan imej yang anda perlu lakukan ialah mengubah saiz, memangkas dan menyimpan output daripada jenis yang sama. Anda boleh memunggah tanggungjawab ini kepada perkhidmatan awan pihak ketiga untuk menumpukan pada penyampaian ciri lain, atau dengan hanya sedikit kerja melaksanakan tugas tanpa meninggalkan AWS VPC anda. Dengan video walaupun kesnya berbeza. Fail video adalah lebih besar, kami perlu menyokong banyak piawaian pengekodan yang berbeza, dan hasil akhirnya bukan lagi video - pada asasnya kami mengekstrak imej pegun.
Apabila menyelidik pilihan, saya sentiasa beralih kepada penyelesaian asli kepada platform aplikasi dihidupkan. Dalam AWS itulah MediaConvert atau MediaLive. Kedua-duanya hebat apabila anda memerlukan pemprosesan video gred profesional, tetapi apabila anda hanya mahu mengambil lakaran kecil daripada video... baik, mereka pasti boleh melakukannya tetapi adakah mereka direka untuk mengendalikan kes penggunaan sedemikian ? Tidak juga.
Walaupun mungkin mengejutkan, AWS tidak mempunyai perkhidmatan khusus untuk menjana lakaran kecil. Penyelesaian yang tersedia memfokuskan pada kes penggunaan lain seperti menyediakan sokongan untuk media penstriman atau menjalankan tugas transformasi video lanjutan.
Masalahnya agak jelas apabila anda melihat keperluan untuk membina ciri sedemikian dengan perkhidmatan ini
Perlukah menjana beberapa lakaran kecil video lebih mahal daripada kopi pagi anda? ☕ Ini semata-mata kerana sekuat manapun perkhidmatan tersebut, ia adalah dan berlebihan untuk tugasan mudah seperti penjanaan imej kecil.
Kos sebenar perkhidmatan AWS Media bukan sahaja dalam dolar - ia dalam kerumitan yang anda sering tidak perlukan.
Setiap kali saya menjumpai keperluan baharu, fikiran saya menyesuaikan diri ke mod "mencari alat yang sesuai untuk kerja". Saya telah mengkhabarkan kepentingan untuk tidak mengikut apa yang anda tahu dan sentiasa meneroka sebanyak mungkin alternatif yang mungkin saya mula terdengar seperti rekod yang rosak... tetapi saya rasa saya suka lagu yang dimainkan oleh rekod itu! ??
Anda juga boleh memanggilnya sebagai keadaan perubatan. Saya sedar sepenuhnya tentang isu OCD kejuruteraan saya... ?
Tetapi saya menyimpang...
Sudah tentu, terdapat penyelesaian lain di luar sana, tetapi ia sering datang dengan sakit kepala mereka sendiri:
Mari kita bina sesuatu yang bukan sahaja lebih murah, tetapi juga berfokuskan laser pada perkara yang sebenarnya kita perlukan - penyelesaian tanpa pelayan yang menjana lakaran kecil video untuk wang literal. ?
Sistem menggunakan perkhidmatan dan alatan AWS ini:
Apabila video dimuat naik ke baldi S3 sumber, ia mencetuskan peristiwa yang membuat baris gilir permintaan pemprosesan. Fungsi Lambda mengambilnya dan memprosesnya menggunakan FFmpeg yang dijalankan dalam bekas Docker. Lakaran kecil yang dijana kemudiannya disimpan dalam baldi sasaran S3. Isu sementara yang boleh dipulihkan seperti masalah pendikitan atau berkaitan infrastruktur dicuba semula secara automatik, manakala semua acara lain yang gagal dihantar secara automatik ke baris gilir mati untuk tujuan pengauditan.
Perkhidmatan ini menjana lakaran kecil video dalam dua saiz secara automatik. Versi yang lebih besar termasuk ikon video separa lutsinar di tengah bingkai, membantu pengguna mengenal pasti kandungan video dengan cepat.
Contoh projek
Perkhidmatan
Berikut ialah Dockerfile kami yang membungkus FFmpeg dengan Lambda:
Mari kita pecahkan kos untuk memproses 1000 video sebulan:
Itu adalah pengurangan kos sebanyak 99.7%! ?
Walaupun penyelesaian ini hebat, ia bukan tanpa gotcha:
Ini baru permulaan! Anda boleh melanjutkan penyelesaian ini kepada:
Kami telah membina penyelesaian yang kos efektif dan berskala untuk penjanaan lakaran kecil video yang tidak akan merugikan wang. Tiada lagi bayaran untuk ciri yang anda tidak perlukan!
Ingat: Kadangkala penyelesaian terbaik bukanlah penyelesaian yang paling mahal atau kompleks - penyelesaian itu yang melakukan apa yang anda perlukan, tidak lebih, tidak kurang.
Temui ini membantu? Pertimbangkan untuk mengikuti saya untuk mendapatkan lebih banyak kandungan AWS dan tanpa pelayan! Dan jika lakaran kecil anda kelihatan seperti seni moden dan bukannya video anda... baik, semak format video anda dahulu, kemudian lepaskan ulasan di bawah! ?
Ketepikan semua jenaka, saya ingin mendengar tentang pengalaman anda dengan pemprosesan video dalam AWS. Adakah anda telah menemui cara kreatif lain untuk mengoptimumkan kos? Kongsi dalam komen!
Walaupun penyelesaian ini telah diuji dalam pengeluaran, sila uji dengan teliti dalam persekitaran anda sendiri sebelum digunakan. Jika ada yang terbakar, saya ada resipi yang bagus untuk marshmallow! ?
Mengapa berlabuh dengan Lambda - bukan pilihan pertama, kadangkala satu-satunya pilihan, alternatif lapisan
Ia sangat murah untuk dijalankan berbanding dengan perkhidmatan Media AWS
Ia pantas, jalankan perbandingan pada saiz fail yang berbeza
Ffmpeg boleh diuji
Atas ialah kandungan terperinci Penjana Gambar Kecil AWS Sideo - Panduan Penyelesaian Node.js Tanpa Pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!