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;
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
add a comment
|
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
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
add a comment
|
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
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
video-streaming mp4 h.264 http-live-streaming
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
add a comment
|
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
add a comment
|
1 Answer
1
active
oldest
votes
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:
Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.
add a comment
|
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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:
Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.
add a comment
|
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:
Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.
add a comment
|
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:
Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.
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:
Emulation prevention is line 2 with 0x03 values, and Annex B is the bottom line on the image above.
answered Mar 29 at 11:15
Roman R.Roman R.
59k4 gold badges71 silver badges118 bronze badges
59k4 gold badges71 silver badges118 bronze badges
add a comment
|
add a comment
|
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.
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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