2020-07 << 2020-08 >> 2020-09

2020-08-29 (土)

眠い...

* JavaScriptでFragmented MP4を生成するなどした

Google Drive上の動画,ダウンロード用のリンクはCORS対応してなくてCanvasに描画したりするとtaintedになって中身に触れないし,files.getは認証にAuthorizationヘッダ必要でvideoタグで読み込めない.どういうわけか,files.getでファイルの内容を読むときだけaccess_tokenをクエリパラメータ経由で渡そうとするとエラーが返ってくるのも気になるけど...

Fetch APIで読み込みつつ,mp4をパースしてMedia Source Extension APIで再生すれば良さそうだけど,試しに書いてみたら,意外と面倒だった.

https://github.com/binzume/mp4player-js

isobmffとか数年ぶりに触った.色々雑なのでシークもできないし無駄なHTTPリクエストしたりして実用的じゃないけど,動いたので満足した.mp4再生するのに1000行近いコード書かないといけないのは何か間違っている気がする.半日費やしてしまった.

似たようなことやってくれるライブラリ探したけど,https://github.com/gpac/mp4box.js/ とか使うのが良いのかも.やりたいことに対して巨大だし,生成処理が重そうなのが気になるけど.

2020-07 << 2020-08 >> 2020-09