Hybrid MP4 is the name of a new output format introduced in OBS 30.2 that aims to provide reliable and compatible output without the drawbacks of traditional or fragmented MP4. It remains recoverable even if writing the file is aborted, e.g. due to system crashes or power outages, while still maintaining wide compatibility.
This works through the file being written as a fragmented file, but then being finalised like a regular MP4 in a process we call "soft-remux", which hides the fragmentation within, so that MP4-compatible software will treat is like a regular file.
ProRes will be supported in a future update by adding "Hybrid MOV" as an additional option.
Chapters can be inserted into the file, for example, to make it easier to find highlights or the start of certain sections during the editing process. These markers are supported by most video players and editing suites such as DaVinci Resolve.
Markers can be added via the following means:
CreateRecordChapter
requestobs_frontend_recording_add_chapter(const char *name)
Chapters added via hotkey will have the format "Unnamed <N>" where N is a simple counter. When added via the frontend API or WebSockets a custom name can be specified, if left empty the same scheme will be used to generate a chapter name.
Note: Chapters are written during the finalisation process, i.e. they are not recoverable in the event of a crash. This may change in the future.
Unlike the existing MP4 output the creation date will be set to the output starting time, allowing users to more easily organise and catalogue their files.
The encoder settings in JSON format can be written as metadata to the file, see the next section for how to enable this feature.
Option | Description | Default |
---|---|---|
|
Use negative composition timestamps instead of edit list to deal with b-frame delay. May not be compatible with older software |
On (1) |
|
Write encoder configuration JSON as metadata attached to each track |
Off (0) |
|
Write metadata as generic key-value pairs instead of using QuickTime metadata keys |
Off (0) |
|
Disable finalisation ("soft-remux"), for debugging purposes only |
Off (0) |
Options can be set via the "Custom Muxer Options" field in the format key=value
and separated by spaces, e.g. use_negative_cts=1 write_encoder_info=1
See our blog for a detailed technical breakdown on how Hybrid MP4 works: https://obsproject.com/blog/obs-studio-hybrid-mp4