Can H.264 stream in MP4 file contain Annex B startcode emulation?Parsing H264 in mdat MP4Live streaming through MP4How can i mux H264 stream into MP4 file via libavformatopen h.264 encoded stream and write the encoded AVPackets into mp4-fileConvert H.264 Annex B to MPEG-TSPossible Locations for Sequence/Picture Parameter Set(s) for H.264 StreamH.264 video streaming with AVFoundation on OS X?MP4 / MOV H.264 - determine bytestream standard (Annex B or AVC)Decoding H.264 NALU Stream C#Why does MP4 mdat atom not start with H.264 NALU start code?

How to influence manager to not schedule team meetings during lunch?

Did HaShem ever command a Navi (Prophet) to break a law?

The 100 soldier problem

Wired to Wireless Doorbell

Is Zack Morris's 'time stop' ability in "Saved By the Bell" a supernatural ability?

US entry with tourist visa but past alcohol arrest

Do liquid propellant rocket engines experience thrust oscillation?

Can Northern Ireland's border issue be solved by repartition?

Circle divided by lines between a blue dots

Apple Developer Program Refund Help

Safely hang a mirror that does not have hooks

How is the problem, G has no triangle in Logspace?

Would Taiwan and China's dispute be solved if Taiwan gave up being the Republic of China?

How do I clean sealant/silicon from a glass mirror?

Centrifugal force with Newton's third law?

What is a Heptagon Number™?

Is there any actual security benefit to restricting foreign IPs?

As an employer, can I compel my employees to vote?

How to reference parameters outside of Apex Class that can be configured by Administrator

Pseudo Game of Cups in Python

Cheap antenna for new HF HAM

How to create a grid following points in QGIS?

Can planetary bodies have a second axis of rotation?

Gas leaking in base of new gas range?



Can H.264 stream in MP4 file contain Annex B startcode emulation?


Parsing H264 in mdat MP4Live streaming through MP4How can i mux H264 stream into MP4 file via libavformatopen h.264 encoded stream and write the encoded AVPackets into mp4-fileConvert H.264 Annex B to MPEG-TSPossible Locations for Sequence/Picture Parameter Set(s) for H.264 StreamH.264 video streaming with AVFoundation on OS X?MP4 / MOV H.264 - determine bytestream standard (Annex B or AVC)Decoding H.264 NALU Stream C#Why does MP4 mdat atom not start with H.264 NALU start code?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















MP4 file (actually it's HLS stream that uses MP4 format) contains H.264 stream in AVC format: [NALU length][NALU data]. H.264 decoder requires Annex B format: [startcode][NALU data]. In general startcode emulation can happen in AVC format (e.g. 0x00000001 can occur inside encoded data). Does this mean that MP4 file format also can contain H.264 NALUs with startcode emulation? Or should emulation prevention be applied before packaging into MP4?










share|improve this question





















  • 3





    Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

    – Roman R.
    Mar 28 at 17:23







  • 2





    I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

    – Roman R.
    Mar 28 at 17:31











  • if you post this as an answer I'll be happy to accept it

    – Andriy Tylychko
    Mar 29 at 9:26

















1















MP4 file (actually it's HLS stream that uses MP4 format) contains H.264 stream in AVC format: [NALU length][NALU data]. H.264 decoder requires Annex B format: [startcode][NALU data]. In general startcode emulation can happen in AVC format (e.g. 0x00000001 can occur inside encoded data). Does this mean that MP4 file format also can contain H.264 NALUs with startcode emulation? Or should emulation prevention be applied before packaging into MP4?










share|improve this question





















  • 3





    Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

    – Roman R.
    Mar 28 at 17:23







  • 2





    I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

    – Roman R.
    Mar 28 at 17:31











  • if you post this as an answer I'll be happy to accept it

    – Andriy Tylychko
    Mar 29 at 9:26













1












1








1


0






MP4 file (actually it's HLS stream that uses MP4 format) contains H.264 stream in AVC format: [NALU length][NALU data]. H.264 decoder requires Annex B format: [startcode][NALU data]. In general startcode emulation can happen in AVC format (e.g. 0x00000001 can occur inside encoded data). Does this mean that MP4 file format also can contain H.264 NALUs with startcode emulation? Or should emulation prevention be applied before packaging into MP4?










share|improve this question
















MP4 file (actually it's HLS stream that uses MP4 format) contains H.264 stream in AVC format: [NALU length][NALU data]. H.264 decoder requires Annex B format: [startcode][NALU data]. In general startcode emulation can happen in AVC format (e.g. 0x00000001 can occur inside encoded data). Does this mean that MP4 file format also can contain H.264 NALUs with startcode emulation? Or should emulation prevention be applied before packaging into MP4?







video-streaming mp4 h.264 http-live-streaming






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 28 at 16:31







Andriy Tylychko

















asked Mar 28 at 15:03









Andriy TylychkoAndriy Tylychko

12.5k5 gold badges47 silver badges98 bronze badges




12.5k5 gold badges47 silver badges98 bronze badges










  • 3





    Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

    – Roman R.
    Mar 28 at 17:23







  • 2





    I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

    – Roman R.
    Mar 28 at 17:31











  • if you post this as an answer I'll be happy to accept it

    – Andriy Tylychko
    Mar 29 at 9:26












  • 3





    Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

    – Roman R.
    Mar 28 at 17:23







  • 2





    I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

    – Roman R.
    Mar 28 at 17:31











  • if you post this as an answer I'll be happy to accept it

    – Andriy Tylychko
    Mar 29 at 9:26







3




3





Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

– Roman R.
Mar 28 at 17:23






Emulation prevention is always applied to remove 00 00 00-2 sequences from the encoded data (RBSP), this is unrelated to Annex B. Annex B format is about start codes as opposed to run-length encoding of NAL units.

– Roman R.
Mar 28 at 17:23





2




2





I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

– Roman R.
Mar 28 at 17:31





I think a picture here does a great visualization. Emulation prevention (the line with 0x03) is a part of NALU, and Annex B is, independently, a method of arranging NALUs into a byte stream.

– Roman R.
Mar 28 at 17:31













if you post this as an answer I'll be happy to accept it

– Andriy Tylychko
Mar 29 at 9:26





if you post this as an answer I'll be happy to accept it

– Andriy Tylychko
Mar 29 at 9:26












1 Answer
1






active

oldest

votes


















2
















Emulation prevention is always applied to remove 00 00 00-02 sequences from the encoded data (RBSP), so this is unrelated to Annex B: H.264 Annex B format is about start code prefixes prepending NAL units in byte-stream format as opposed to unit lengths.



A cheat sheet on this:



enter image description here



Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );














    draft saved

    draft discarded
















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55400856%2fcan-h-264-stream-in-mp4-file-contain-annex-b-startcode-emulation%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2
















    Emulation prevention is always applied to remove 00 00 00-02 sequences from the encoded data (RBSP), so this is unrelated to Annex B: H.264 Annex B format is about start code prefixes prepending NAL units in byte-stream format as opposed to unit lengths.



    A cheat sheet on this:



    enter image description here



    Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.






    share|improve this answer





























      2
















      Emulation prevention is always applied to remove 00 00 00-02 sequences from the encoded data (RBSP), so this is unrelated to Annex B: H.264 Annex B format is about start code prefixes prepending NAL units in byte-stream format as opposed to unit lengths.



      A cheat sheet on this:



      enter image description here



      Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.






      share|improve this answer



























        2














        2










        2









        Emulation prevention is always applied to remove 00 00 00-02 sequences from the encoded data (RBSP), so this is unrelated to Annex B: H.264 Annex B format is about start code prefixes prepending NAL units in byte-stream format as opposed to unit lengths.



        A cheat sheet on this:



        enter image description here



        Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.






        share|improve this answer













        Emulation prevention is always applied to remove 00 00 00-02 sequences from the encoded data (RBSP), so this is unrelated to Annex B: H.264 Annex B format is about start code prefixes prepending NAL units in byte-stream format as opposed to unit lengths.



        A cheat sheet on this:



        enter image description here



        Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 29 at 11:15









        Roman R.Roman R.

        59k4 gold badges71 silver badges118 bronze badges




        59k4 gold badges71 silver badges118 bronze badges





















            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.




















            draft saved

            draft discarded















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55400856%2fcan-h-264-stream-in-mp4-file-contain-annex-b-startcode-emulation%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

            Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript