gizlang:mp4
MP4 files (ISO/IEC 14496-12 and 14496-14) of a video track (H.264, HEVC or AV1) and an AAC-LC track (ISO/IEC 14496-3). A browser plays the file as it arrives: the index (moov) comes before the samples.
import * as Mp4 from "gizlang:mp4";Types
Track
type Track = { codec: string; width: i64; height: i64; fps: i64; headers: Vec<bytes>; frames: Vec<bytes>; keys: Vec<bool>; }A video track: its codec ("h264", "hevc" or "av1"), size, frames a second, parameter sets, and frames with their key flags.
codec:stringwidth:i64height:i64fps:i64headers:Vec<bytes>frames:Vec<bytes>keys:Vec<bool>
Aac
type Aac = { rate: i64; channels: i64; config: bytes; frames: Vec<bytes>; delay: i64; samples: i64; }An AAC-LC track: its rate, channels, AudioSpecificConfig, and raw frames of 1024 samples a channel. The first
delay samples it decodes to are the encoder's priming, before the audio; samples is the audio's length.
rate:i64channels:i64config:bytesframes:Vec<bytes>delay:i64samples:i64
Functions
mp4
function mp4(video: Track, audio: Option<Aac>): bytesThe MP4 file of video and, when given, audio. The samples of each track are one chunk, the video's first.
Effects: fail.