-
Notifications
You must be signed in to change notification settings - Fork 9
Home
uupaa edited this page Aug 7, 2019
·
14 revisions
この Wiki には、
- ブラウザの機能を使って HLS をサーバから取得し
- HLS から MPEG-2 TS をほどき
- PES と NALUnit をパースし
- Video ES と Audio ES を取り出し
- Video ES を格納する MP4Box 構造を作成し
<video>
に渡せる形の.mp4
の BLOB を作成し - Audio ES (AAC) を WebAudio に渡せる形にデコードする
等のコードを記述する上で必須となる HLS / M3U8 / MPEG-2 TS / ByteStream / MP4Box(IBMFF: ISO Base Media File Format) / H.264 / AAC に関する一連の知識を、これでもかと詰め込んでいます。
通常であれば、合計1000ページを軽く超える膨大な数の仕様書を解読し、そこから半年〜1年ほどかけてトライアンドエラーを繰り返したうえで獲得可能な知識量ですが、読むだけであれば30分ぐらいでサクッと読めるはずです。
参考になさってください。
実際にブラウザ上で動作するコードを知りたい方は、以下のリポジトリも参照してください。
- MP4
- https://github.com/uupaa/MP4.js/wiki
- https://github.com/uupaa/MP4Muxer.js/blob/master/lib/MP4Muxer.js
- https://github.com/uupaa/MP4Parser.js/blob/master/lib/MP4Parser.js
- https://github.com/uupaa/MP4Builder.js/blob/master/lib/MP4Builder.js
- https://github.com/uupaa/MP4Probe.js/blob/master/lib/MP4Probe.js
- MPEG4ByteStream
- NALUnit
- MPEG2-TS
- AAC
- AAC Profile
- M3U8
- Binary functions
- Hash functions
- MD5, SHA1, HMAC, Adler32, XXHash, MurMyr, CRC
- https://github.com/uupaa/Hash.js/wiki
- Tools
- H.264
- FLV format for H.264
- JavaScriptでMP4の動画からAACを抽出してみた
- H.264 データ構造, NALUnit, RBSPの解説
- JCODEC Muxing h264 (avc) into mp4
- github https://github.com/jcodec/jcodec
-
H.264/AVC(NAL)
- H.264/AVC(NAL) について概要が書かれています
- http://wikiwiki.jp/redstrange/?H.264
-
MPEG-4の基礎5 - ISO 14496-10 (ビデオ) -AVC ageha was here
- 2007年時点における ffmpeg 以外のコーデックについて情報が書かれている
- ffmpeg で生成する H.264 の raw data を mp4box で mp4 コンテナに変換可能な事が書かれている
- gpac/MP4Box の muxer 部分のコード
- Encapsulation of Opus in ISO Base Media File Format
- L-SMASH の muxer
- mdat の入れ替え
- Bento4 の muxer
- MPEG-2 TS