Knowledge Base > Recording > Hybrid MP4 Format

Hybrid MP4 Format

Overview

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.

Features

Codec Support
  • Video: H.264, HEVC, AV1
  • Audio: AAC, Opus, FLAC, ALAC, PCM (16/24-bit Integer and 32-bit Float)

ProRes will be supported in a future update by adding "Hybrid MOV" as an additional option.

Chapter Markers

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:

  • Hotkey ("Add chapter marker")
  • WebSockets CreateRecordChapter request
  • OBS Frontend API obs_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.

Creation Time and Date

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.

Additional Metadata

The encoder settings in JSON format can be written as metadata to the file, see the next section for how to enable this feature.

Muxer Options

Option Description Default

use_negative_cts

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_info

Write encoder configuration JSON as metadata attached to each track

Off (0)

use_metadata_tags

Write metadata as generic key-value pairs instead of using QuickTime metadata keys

Off (0)

skip_soft_remux

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

Technical Details

See our blog for a detailed technical breakdown on how Hybrid MP4 works: https://obsproject.com/blog/obs-studio-hybrid-mp4