The Dolby MP4 streaming muxer (dlb_mp4base) is a software implementation of a muxer of fragmented or unfragmented ISO base media file format (mp4)

Related tags

Audio dlb_mp4base
Overview

dlb_mp4base

The Dolby MP4 streaming muxer (dlb_mp4base) is a software implementation of a muxer of fragmented or unfragmented ISO base media file format (mp4). It supports muxing of Dolby Digital (AC-3), Dolby Digital Plus (E-AC-3), and Dolby AC-4 audio formats as well as Dolby Vision.

Getting Started

These instructions will help you get a copy of the project up and running on your local machine for development and testing purposes.

Folder Structure

The "dlb_mp4base" folder consists of:

  • README.md This file.
  • doc/ Doxygen documentation of the dlb_mp4base.
  • frontend/ MP4Muxer frontend with corresponding EMA interface as source code.
  • include/ Necessary header files of the dlb_mp4base library.
  • make/ Makefiles and Visual Studio projects/solutions for building the Dolby MP4 multiplexer library with frontends and test harnesses.
  • src/ Contains the MP4 multiplexer source code.
  • test/ Test harnesses for unit and developer system tests including test signals.

Prerequisites

For Windows platform development, Visual Studio 2010 must be installed with SP1.

Building instructions

Using the makefiles (on Linux)

" Then build one of the following make targets: "make mp4muxer_release" "make mp4muxer_debug"">
After cloning the dlb_mp4base repository to your local machine, go to the appropriate directory, depending on your machine OS and architecture, such as:
"cd dlb_mp4base/make/mp4muxer
   
    "

Then build one of the following make targets:
"make mp4muxer_release"
"make mp4muxer_debug"

   

Using the Visual Studio Solutions(on Windows)

" "devenv mp4muxer_2010.sln /rebuild debug/release"">
From a Visual Studio 2010 command line window:
Go to a directory of your choice
"cd dlb_mp4base\make\mp4muxer\mp4muxer
   
    "
"devenv mp4muxer_2010.sln /rebuild debug/release"

   

Release Notes

See the Release Notes file for details

License

This project is licensed under the BSD-3 License - see the LICENSE file for details

Comments
  • Changing HDR metadata

    Changing HDR metadata

    Is it possible to have a script to change the HDR metadata? Something like this: -colorprim bt2020 -transfer smpte-st-2084 -colormatrix bt2020nc -masterdisplay G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50) -maxcll 0,0 NVHSP can do this for HDR10, but it doesnt work for this.

    Thanks!

    opened by micsic85 13
  • mp4muxer Gives Audio Stream Incorrect Header

    mp4muxer Gives Audio Stream Incorrect Header

    When using this test file:

    http://media.developer.dolby.com/DolbyVision_Atmos/mp4/iOS_P5_GlassBlowing2_3840x2160%4059.94fps_15200kbps.mp4

    The untouched file's metadata is:

    Stream #0:0[0x1](und): Video: hevc (Main 10) (dvh1 / 0x31687664), yuv420p10le(pc), 3840x2160 [SAR 1:1 DAR 16:9], 15184 kb/s, 59.94 fps, 59.94 tbr, 60k tbn (default)

    Stream #0:1[0x2](und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)

    My mp4muxer command:

    mp4muxer -o output.mp4 -i input.hevc -i input.ec3 --dv-profile 5

    After using ffmpeg or mp4demuxer to demux and mp4muxer to remux:

    Stream #0:0[0x1](und): Video: hevc (Main 10) (dvhe / 0x65687664), yuv420p10le(pc), 3840x2160 [SAR 1:1 DAR 16:9], 15185 kb/s, 59.94 fps, 59.94 tbr, 60k tbn (default)

    Stream #0:1[0x2](und): Audio: none (dvhe / 0x65687664), 48000 Hz, 5.1(side), 640 kb/s (default)

    The resulting file after using mp4muxer has audio that is unplayable because of the incorrect header.

    opened by perrinpagess 6
  • Authoring HEVC files with hvc1 codec ID

    Authoring HEVC files with hvc1 codec ID

    Muxing any h265 elementary streams results in the final output track to have a codec ID of hev1 and not hvc1

    This goes against Apple's HLS and QuickTime spec, and hence the final file doesn't play in QuickTime.

    (I am trying to mux an HDR10 HEVC file with it's Atmos track)

    opened by kdcloudy 5
  • dvh1flag doesn't work

    dvh1flag doesn't work

    using the option --dvh1flag returns an error on mp4muxer 1.1.0 saying the option doesn't exist, even though it's in the help dialogue.

    --dvh1flag = Set the elementray stream index to set HEVC track's sample entry name to 'dvh1', default sample entry box name is 'dvhe' for non-cross compatible stream.

    Error parsing command line: Unknown option: --dvh1flag Error parsing command line!

    opened by perrinpagess 4
  • MUX OCCURS, BUT FILE SIZE IS 0KB

    MUX OCCURS, BUT FILE SIZE IS 0KB

    Hi, I followed the process and when I muxed my .h264 with my .ec3, the resulting .mp4 file is 0KB. This is an 8K 3D 360 video, which is approximately 8GB. 8192x8192 are the dimensions. I'm wondering if the video resolution is beyond what is currently supported?

    Thank You!

    SORTA_KINDA

    opened by filmjamie 4
  • Black screen on iOS/ATV even dvh1flag

    Black screen on iOS/ATV even dvh1flag

    When converting dvhe->dvh1, mp4muxer leads to black screen on iOS/ATV. File produced by mp4box and mp4mux(bento4) will be fine. Someone send me this:

    'hvc1' stores all parameter sets inside the MP4 container below the sample description boxes. 
    'hev1' stores all parameter sets in band (inside the HEVC stream).
    
    The parameter sets are essentially mandatory metadata necessary to decode the streams.
    
    So you have two slightly different ways of muxing HEVC into MP4.
    
    I'd choose based on the play out and transport scenario.
    
    Your player or your transport specification may require one or the other.
    
    opened by sw5163 3
  • eac3 not supported

    eac3 not supported

    Hello everybody,

    Don't know if this is the tools fault or if I've done something wrong.

    Whenever I want to import mux a .h265 file with a Dolby Digital Plus audio track (.eac3; extracted through MKVExtract) I get the error:

    ERROR! Input ES type: eac3, extension not supported

    According to the ReadMe, Dolby Digital Plus is supported. When i change the filename form .eac3 to .ac3 it works. So there is at least a workaround but why is this even needed?

    opened by Cyb3rd3crypti0n 3
  • Question : Adding Subtitles

    Question : Adding Subtitles

    Hello,

    this program works great !

    I'm wondering if it's possible to add an implementation for subtitles management into the final .mp4 file ?

    If it's not, is there another program that would do the trick without any quality loss ?

    Thanks in advance.

    Regards.

    opened by D3dou 3
  • Command hangs and output file is almost empty

    Command hangs and output file is almost empty

    Hello,

    I have an issue with remuxing BL + EL video streams into a single Dolby Vision stream, I have tried with both the Windows and Linux binaries, they read the whole source files but never writes into the output file, and the command never exits I have to kill it. Tried with different profiles also.

    Command: ./mp4muxer_64bits.exe --overwrite --dv-profile 4 --input-file 00014.track_4113.hevc --input-file 00014.track_4117.hevc --output-file F:\Ready.Player.One.2018.2160p.UHD.BluRay.HDR.HEVC.mp4

    Output file: output.zip

    Input files Base Layer:

    General
    Complete name                            : F:\Ready Player One\00014.track_4113.hevc
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    File size                                : 61.6 GiB
    
    Video
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    Commercial name                          : HDR10
    Format profile                           : Main [email protected]@High
    Width                                    : 3 840 pixels
    Height                                   : 2 160 pixels
    Display aspect ratio                     : 16:9
    Frame rate                               : 23.976 (24000/1001) fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0 (Type 2)
    Bit depth                                : 10 bits
    Color range                              : Limited
    Color primaries                          : BT.2020
    Transfer characteristics                 : PQ
    Matrix coefficients                      : BT.2020 non-constant
    Mastering display color primaries        : BT.2020
    Mastering display luminance              : min: 0.0050 cd/m2, max: 4000 cd/m2
    Maximum Content Light Level              : 725 cd/m2
    Maximum Frame-Average Light Level        : 162 cd/m2
    

    Enhancement Layer;

    General
    Complete name                            : F:\Ready Player One\00014.track_4117.hevc
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    File size                                : 65.5 MiB
    
    Video
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    Commercial name                          : HDR10
    Format profile                           : Main [email protected]@High
    Width                                    : 1 920 pixels
    Height                                   : 1 080 pixels
    Display aspect ratio                     : 16:9
    Frame rate                               : 23.976 (24000/1001) fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0 (Type 2)
    Bit depth                                : 10 bits
    Color range                              : Limited
    Color primaries                          : BT.2020
    Transfer characteristics                 : PQ
    Matrix coefficients                      : BT.2020 non-constant
    Mastering display color primaries        : BT.2020
    Mastering display luminance              : min: 0.0050 cd/m2, max: 4000 cd/m2
    

    Audio:

    General
    Complete name                            : F:\Ready Player One\00014.track_4355.ac3
    Format                                   : AC-3
    Format/Info                              : Audio Coding 3
    Commercial name                          : Dolby Digital
    File size                                : 384 MiB
    Duration                                 : 2h 19mn
    Overall bit rate mode                    : Constant
    Overall bit rate                         : 384 Kbps
    
    Audio
    Format                                   : AC-3
    Format/Info                              : Audio Coding 3
    Commercial name                          : Dolby Digital
    Duration                                 : 2h 19mn
    Bit rate mode                            : Constant
    Bit rate                                 : 384 Kbps
    Channel(s)                               : 6 channels
    Channel layout                           : L R C LFE Ls Rs
    Sampling rate                            : 48.0 KHz
    Frame rate                               : 31.250 fps (1536 SPF)
    Bit depth                                : 16 bits
    Compression mode                         : Lossy
    Stream size                              : 384 MiB (100%)
    Service kind                             : Complete Main
    
    opened by Poilaucul 3
  • Request for Windows x64 executable binary

    Request for Windows x64 executable binary

    The prebuilt mp4muxer.exe for Windows won't run on Windows 10 64-bit architecture because the app is 16-bit? Can you upgrade to 64-bit architecture? Below is the error that pops up.

    Pop-up error message Unsupported 16-Bit Application The program or feature "??\C:\tools\mp4muxer\mp4muxer.exe" canot start or run due to incompatibility with 64-bit versions of Windows. Please contact the software vendor to ask if a 64-bit Windows compatible version is available."

    Command-line error message This version of C:\tools\mp4muxer\mp4muxer.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.

    opened by kangstarr 2
  • output file is 0 when using mac os binary

    output file is 0 when using mac os binary

    using

    ../dlb_mp4base-master/bin/mp4muxer_mac --dv-profile 7 -i 00014.track_4113.hevc -i 00014.track_4117.hevc --dv-input-es-mode split --mpeg4-comp-brand mp42,iso6,isom,msdh,dby1 -o ./out.mp4 --overwrite

    does not seem to write any data on the out.mp4 file.

    opened by francesco-tusa 1
  • Help Regarding dlp_mp4base

    Help Regarding dlp_mp4base

    Hey Developers,

    I have a question , Please tell me how to run this program/project on Alpine Linux. I am really wanted to test this out.

    Thanks In Advance…

    opened by Karthik-20034 0
  • Even though it is h264, sc miss-match error occurs.

    Even though it is h264, sc miss-match error occurs.

    https://drive.google.com/file/d/1b1S_7Su9jMEDHhDFnBSMXa3nYTVYrmOT/view?usp=sharing

    I used mkvtoolnix to demux the mkv file to transcode the mkv file to mp4, and then tried muxing using mp4muxer, but an sc miss-match error occurs.

    opened by bluewidy 0
  • Need arm cpu support

    Need arm cpu support

    My laptop is running windows 11 on ARM, which is Qualcomm Snapdragon 8cx. I tried the exe version, it did not work, please add support in future version.

    opened by jaoyina 1
  • Long duration hevc file not muxing

    Long duration hevc file not muxing

    Hevc file with long duration like 1hr or more not muxing and output file is 0bytes and mp4muxer.exe running where read disk activity occur for few seconds but no write disk activity. For hevc clips like 2min duration it works fine. Kindly solve the error, thanks.

    opened by Learner00100 13
  • (Windows) Error on input with unicode filenames

    (Windows) Error on input with unicode filenames

    I have a file with the following name on my file system (Windows 10 x64):

    Ghost in the Shell Stand Alone Complex - 2x26 - IN Return to Patriotism; ENDLESS∞GIG_Track01.h264

    mp4muxer.exe generates an error for being unable to open the input file, and notice that the Unicode character (U+221E) has been replaced with 8:

    $ mp4muxer -o mp4\test.mp4 -i "Ghost in the Shell Stand Alone Complex - 2x26 - IN Return to Patriotism; ENDLESS∞GIG_Track01.h264"
    ERROR! Can't open input file: Ghost in the Shell Stand Alone Complex - 2x26 - IN Return to Patriotism; ENDLESS8GIG_Track01.h264
    Error parsing command line!
    

    Explorer, CMD, and any other application I have capable of reading this file have no issues with it or displaying the correct Unicode filename.

    opened by nateify 3
Owner
Dolby Laboratories
Dolby Laboratories
Minimalistic MP4 mux/demux single header library

Mini MP4 Easy embeddable MP4 mux/demux library. Usage Muxing Muxing can be done using 3 modes. Default mode uses one big mdat chunk: This is most effi

Lion 271 Dec 20, 2022
An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBS's game capture and Discord's application streaming.

win-capture-audio An OBS plugin based on OBS's win-capture/game-capture that hooks WASAPI's audio output functions (rather than the various graphics A

Joe Kaushal 3k Jan 9, 2023
A next generation media player, with vim-like bindings

MusicKid A next generation media player, with vim-like bindings Installation Clone the repo git clone <git-url> cd MusicKid/Final Install dependencies

null 4 Jan 10, 2022
🎵 A cross-platform media playback library for C/C++ with good number of features (only Windows & Linux).

libwinmedia A cross-platform media playback library for C/C++ & Flutter with good number of features. Example A very simple example can be as follows.

Harmonoid 38 Nov 2, 2022
Glitch-free high-quality internet audio streaming on the Apple II

A2Stream A2Stream simultaneously receives an .a2stream file from any HTTP server and plays it through the stock Apple II speaker circuit using pulse-w

Oliver Schmidt 22 Oct 4, 2022
C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format

OPBinaryLib C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format Basic usage Store your OPL commands as a conti

Emma Maassen 10 Feb 2, 2022
Mumble is an Open Source, low-latency, high quality voice chat software

Mumble is an Open Source, low-latency and high-quality voice-chat program written on top of Qt and Opus.

Mumble 5.2k Dec 26, 2022
Modem based on software defined radios.

Modem based on software defined radios.

dernasherbrezon 20 Nov 11, 2022
eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems

eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.

null 1.7k Jan 9, 2023
Software for making digital voice work without the smart hub in the way

Software for making digital voice work without the smart hub in the way

Charlie 3 Nov 7, 2022
Airspy HF+, a high performance software defined radio for the HF and VHF bands.

User mode driver for Airspy HF+ This repository contains host software (Linux/Windows) for Airspy HF+, a high performance software defined radio for t

Dhiru Kholia 2 Nov 23, 2021
♘ Musical Chess ♞ (for Audio Software Engineering 🚀 )

MUSI-6106 ♘ Musical Chess ♞ (for Audio Software Engineering ?? ) Motivation The main motivation for this project is to take a complex, interesting gam

Ian Clester 4 Mar 5, 2022
Single file audio playback and capture library written in C.

A single file library for audio playback and capture. Example - Documentation - Supported Platforms - Backends - Major Features - Building - Unofficia

David Reid 2.6k Jan 8, 2023
An audio mixer that supports various file formats for Simple Directmedia Layer.

An audio mixer that supports various file formats for Simple Directmedia Layer.

Simple Directmedia Layer 198 Dec 26, 2022
A simple CLI to extract & save artwork of a 🎵 music/audio file.

artwork-extractor A simple CLI to extract & save artwork of a ?? music/audio file. Usage Dependencies MediaInfoLib On Debian based distros, one may in

Hitesh Kumar Saini 5 Aug 4, 2021
Audio File Library

Audio File Library

michael pruett 140 Dec 30, 2022
Single file synth + demo song

P.S. is a music track written from scratch using the C programming language. All sounds and notes were entered manually without using any music progra

NightRadio 44 Nov 26, 2022
Single file C library for decoding MPEG1 Video and MP2 Audio

PL_MPEG - MPEG1 Video decoder, MP2 Audio decoder, MPEG-PS demuxer Single-file MIT licensed library for C/C++ See pl_mpeg.h for the documentation. Why?

Dominic Szablewski 605 Dec 27, 2022
C++ audio time-stretching implementation

Time Stretcher C++ audio time-stretching implementation, based on the algorithms presented in: Audio Time Stretching with an Adaptive Phase Vocoder, N

null 59 Nov 13, 2022