View Source ExMP4.Writer (MP4 Reader and Writer v0.6.0)
This module contains functions to write MP4.
Summary
Types
@type new_opts() :: [{:fast_start, boolean()}]
@type t() :: %ExMP4.Writer{ current_chunk: %{required(non_neg_integer()) => {[iodata()], integer()}}, fast_start: boolean(), ftyp_size: integer(), mdat_size: integer(), next_track_id: term(), tracks: %{required(non_neg_integer()) => ExMP4.Track.t()}, writer_mod: module(), writer_state: any() }
Functions
@spec add_track(t(), ExMP4.Track.t()) :: t()
Add a new track.
A track is created by instantiating the public fields of ExMP4.Track
. The
id is assigned by the writer and it's equals to the index of the track starting
from 1
. The first track has an id 1
, the second 2
, ...etc.
@spec add_tracks(t(), [ExMP4.Track.t()]) :: t()
Add multiple tracks.
Create a new mp4 writer that writes to filesystem.
The following options can be provided:
fast_start
- Move themoov
box to the beginning of the file. Defaults to:false
By default the writer writes the data to the file system, this behaviour can be changed by
providing a module implementing ExMP4.DataWriter
in the third argument.
The same as new/2
, but raises if it fails.
Write the mp4 header.
This function should be called first before adding tracks.
@spec write_sample(t(), ExMP4.Sample.t()) :: t()
Write a sample.
Write the trailer and close the stream.