C++ 向けの MP4 ライブラリを Apache License 2.0 で GitHub に公開しました。
モチベーション
- WebRTC SFU Sora が出力した録画ファイルを Hisui で合成した際に MP4 出力したい
- WebRTC Native Client Momo に MP4 録画機能をつけたい
- WebRTC SFU Sora に MP4 出力機能を付けるためにノウハウがほしい
開発
Sora から出力した録画ファイルを合成する Recording Composition Tool Hisui を開発してもらっている haruyama に Hisui 開発の一部としてお願いしました。cpp-mp4 は Hisui でもがっつり使います。
要件
要件は「 MP4 (VP8,VP9/Opus, AAC) が利用できる」に絞りました。将来的に AV1 に対応予定です。ただし H.264 や H.265 は自社で利用することがないため、現時点では想定から外しています。
cpp-mp4 で生成した MP4 ファイルはブラウザ上での利用を想定しているため、Safari で再生できる MP4(VP9/AAC) に対応するのが要件です。さらに Chrome や Firefox では MP4 (VP9/Opus) へも含めました。
abema/go-mp4
cpp-mp4 の開発にあたり ABEMA さんが公開されている go-mp4 をとても参考にさせていただきました。本当にありがとうございます。
開発中にいくつか go-mp4 にフィードバックができました。
リリース
正式なリリースは 1 月を予定しています。
今後
AV1 対応を予定しています。あとはバグフィックス対応で、枯れさせていければと思います。