Saat ini anakbisa.com untuk video-video trainingnya menggunakan fasilitas yang disediakan oleh youtube dan google drive. Sebagian video saya gunakan youtube, dengan dimikian maka akan mendapatkan keunggulan yang diberikan youtube, yaitu kenceng, ada transcoding (beda-beda resolusi video), dan mudah. Dan sebagian lagi saya menggunakan google drive. Google drive sebenarnya juga oke, hanya saja tidak sebagus youtube. Menjalankan video di google drive, tidak ada fitur transcoding, dan kadang agak nunggu dulu awalnya. Kenapa ngga di youtube aja? Karena kalau di youtube itu bisa ada iklan, dan bisa ada related video yang mana bisa narik ke video lain di youtube (yang belum tentu video kita juga). Dapat membuat orang terdistract.
Jumat kemaren jadinya coba menaruh video di lokasi sendiri (dengan node/express js). Awalnya mp4, terus playernya (di wordpress menggunakan plugin, setelah mencoba beberapa plugin akhirnya ketemu yang cukup sesuai). Sebenarnya cukup bagus, hanya saja bandwitdh yang digunakan tidak kecil. Sehingga cepat habis resource yang ada walaupun sudah dikirimkan sesuai dengan permintaan bagiannya). Akhirnya coba-coba pelajari dengan streaming, tepatnya HLS. Ternyata oke, walaupun sekarang masih manual menggunakan ffmpeg untuk convert dari mp4 ke HLS.
Selain itu saya juga coba untuk melayaninya dengan express.js saja, terus coba 2 modul npm untuk HLS lainnya. Kurang lebih hampir sama. Juga dicoba jika yang melayani static files nya bukan via node, tetapi langsung di nginx nya. Hanya saja solusi nginx ini buat saya belum oke saat ini karena komputer yang menjalankan nginxnya kurang bagus.
Untuk mencobanya saya menjalankan beberapa player dengan berbagai koneksi ISP yang berbeda-beda. Dan akhirnya ketemu juga kombinasi yang paling baik. Juga baru tahu ternyata untuk subtitle/caption, yang dibutuhkan buka srt, tetapi vtt. Dan ada plugin yang vtt nya bisa cuma kasih url, ada yang harus diupload ke wordpressnya. Saya prefer yang ngga usah diupload di wordpres, tetapi sayangnya plugin yang dipilih harus seperti itu.
Setelah dicoba, benar-benar bandwidth yang keluar itu jauh bangeut daripada play mp4 langsung.
Next nya ternyata masih banyak, yaitu bikin management video-video ini. Dari directory yang bisa di luar server nodejs nya sendiri, terus melakukan converting (fluent ffmpeg), melakukan pengecheckan apakah ada perubahan file/directory, melakukan pengecheckan integritas file streamingnya, memplay video tersebut langsung, capture gambar untuk thumbnail, dan masih banyak lagi. Untuk menyimpan info directory / file nya sendiri ada tantangan sendiri di databasenya. Apakah ini akan membedakan antara coursenya jadi lebih oke?