Skip to content

feature request: provide incremental API for mp4 decode/encrypt/encode #463

@lukseven

Description

@lukseven

We are currently using the following skeleton code for encrypting fragmented mp4 content per segment:

	mp4Data, err := mp4.DecodeFile(segReader)
	...
	for _, s := range mp4Data.Segments { // always 1 segment...
		for _, f := range s.Fragments {
			err = mp4.EncryptFragment(f, args.keyBytes, args.iv, args.ipd)
			...
		}
	}
	buf := bytes.Buffer{}
	err = mp4Data.Encode(&buf)
	...

We would like to use encryption on live content, where media segments and fragments are produced continuously. Latency is critical, so ideally we would want to encrypt and output fragments as soon as they become available in the source reader, without waiting for complete segments (with all of their fragments) to be available. Maybe something along these lines:

	var segReader io.Reader = ...
	var segWriter io.Writer = ...
	mp4.EncryptSegment(segReader, segWriter, args.keyBytes, args.iv, args.ipd)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions