moonfire-nvr/server
Scott Lamb 478323ec62 write fragmented .mp4s that Safari likes
As required for live view (#59) to work on Safari.

Safari has some "interesting" expectations:
*   There must be a non-empty list of compatible brands. The major brand
    is not automatically included. (Looks like ISO/IEC 14496-12 doesn't
    spell out which is correct.)
*   The tfdt box must be before the trun boxes. Moonfire NVR was not
    compliant with ISO/IEC 14496-12:2015 section 8.8.12.1 before.
    Chrome and Firefox didn't care, but Safari does.
*   The mdat must be written with the small format. Safari is not
    implementing the spec properly.

I figured these out by painstakingly comparing Moonfire NVR's output
with gpac's, making it match almost byte-for-byte until it worked, then
backing out changes one at a time to check which were relevant. Ugh!
2021-03-30 16:07:29 -07:00
..
base present signal days in API requests 2021-03-23 21:07:07 -07:00
db fix incorrect prev_media_duration_90k calculation 2021-03-25 22:09:29 -07:00
src write fragmented .mp4s that Safari likes 2021-03-30 16:07:29 -07:00
Cargo.lock update lexical-core 0.7.4->0.7.5 2021-03-26 19:07:30 -07:00
Cargo.toml send keepalives on live.m4s 2021-03-25 23:11:08 -07:00