pub enum ContainerFormat {
Matroska,
WebM,
Mp4,
Ogg,
Wav,
Flac,
MpegTs,
WebVtt,
Srt,
Y4m,
}Expand description
Supported container formats (patent-free).
OxiMedia focuses on patent-free, royalty-free container formats.
The Mp4 variant is supported only for AV1/VP9 content.
Variants§
Matroska
Matroska container (.mkv).
Full-featured container supporting multiple audio/video/subtitle tracks, chapters, attachments, and rich metadata.
WebM
WebM container (.webm).
Matroska subset optimized for web delivery, supporting VP8/VP9/AV1 video and Vorbis/Opus audio.
Mp4
ISOBMFF/MP4 container (.mp4, .m4a, .m4v).
Only supported for AV1 and VP9 content to maintain patent-free status.
Ogg
Ogg container (.ogg, .opus, .oga).
Xiph.org container format, commonly used for Vorbis and Opus audio, as well as Theora video.
Wav
WAV/RIFF container (.wav).
Simple audio container for PCM and other uncompressed audio formats.
Flac
FLAC native container (.flac).
Native container for FLAC lossless audio, supporting metadata and seek tables.
MpegTs
MPEG Transport Stream (.ts, .m2ts, .mts).
Transport stream format commonly used for broadcast and streaming. Supports multiplexed video, audio, and subtitle streams with precise timing via Program Clock Reference (PCR). Only patent-free codecs (AV1, VP9, VP8, Opus, FLAC) are supported.
WebVtt
WebVTT subtitle format (.vtt).
Text-based subtitle format commonly used for web video.
Srt
SubRip subtitle format (.srt).
Simple text-based subtitle format widely supported.
Y4m
YUV4MPEG2 container (.y4m).
Simple uncompressed video sequence format widely used for testing and piping raw YUV video between tools. Supports various chroma subsampling modes (420, 422, 444, mono).
Implementations§
Source§impl ContainerFormat
impl ContainerFormat
Sourcepub const fn file_extensions(self) -> &'static [&'static str]
pub const fn file_extensions(self) -> &'static [&'static str]
Returns the common file extensions for this container format.
§Examples
use oximedia_container::ContainerFormat;
let exts = ContainerFormat::Matroska.file_extensions();
assert!(exts.contains(&"mkv"));
assert!(exts.contains(&"mka"));Sourcepub const fn mime_type(self) -> &'static str
pub const fn mime_type(self) -> &'static str
Returns the primary MIME type for this container format.
§Examples
use oximedia_container::ContainerFormat;
assert_eq!(ContainerFormat::WebM.mime_type(), "video/webm");
assert_eq!(ContainerFormat::Ogg.mime_type(), "audio/ogg");Sourcepub const fn name(self) -> &'static str
pub const fn name(self) -> &'static str
Returns the format name as a human-readable string.
§Examples
use oximedia_container::ContainerFormat;
assert_eq!(ContainerFormat::Matroska.name(), "Matroska");
assert_eq!(ContainerFormat::WebM.name(), "WebM");Sourcepub const fn supports_video(self) -> bool
pub const fn supports_video(self) -> bool
Returns true if this format supports video streams.
§Examples
use oximedia_container::ContainerFormat;
assert!(ContainerFormat::Matroska.supports_video());
assert!(!ContainerFormat::Flac.supports_video());Sourcepub const fn supports_audio(self) -> bool
pub const fn supports_audio(self) -> bool
Returns true if this format supports audio streams.
Sourcepub const fn supports_subtitles(self) -> bool
pub const fn supports_subtitles(self) -> bool
Returns true if this format supports subtitle streams.
Trait Implementations§
Source§impl Clone for ContainerFormat
impl Clone for ContainerFormat
Source§fn clone(&self) -> ContainerFormat
fn clone(&self) -> ContainerFormat
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more