<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} .ms-cui-menu {background-color:#ffffff;border:1px rgb(166, 166, 166) solid;font-family:"Segoe UI","Segoe WP","Segoe UI WPC",Tahoma,Arial,sans-serif;font-size:10pt;color:rgb(51, 51, 51);} .ms-cui-menusection-title {display:none;} .ms-cui-ctl {vertical-align:text-top;text-decoration:none;color:rgb(51, 51, 51);} .ms-cui-ctl-on {background-color:rgb(205, 230, 247);opacity: 0.8;} .ms-cui-img-cont-float {display:inline-block;margin-top:2px} .ms-cui-smenu-inner {padding-top:0px;} .ms-owa-paste-option-icon {margin: 0px 6px 0px 6px;vertical-align:middle!important;padding-bottom: 2px;display:inline-block;} .ms-rtePasteFlyout-option:hover {background-color:rgb(205, 230, 247) !important;opacity:1 !important;} .ms-rtePasteFlyout-option {padding:8px 4px 8px 4px;outline:none;} .ms-cui-menusection {float:left; width:85px;height:24px;overflow:hidden}.wf {speak:none; font-weight:normal; font-variant:normal; text-transform:none; -webkit-font-smoothing:antialiased; vertical-align:middle; display:inline-block;}.wf-family-owa {font-family:'o365Icons'}@font-face { font-family:'o365IconsIE8'; src:url('prem/15.0.995.29/resources/styles/office365icons.ie8.eot?#iefix') format('embedded-opentype'), url('prem/15.0.995.29/resources/styles/office365icons.ie8.woff') format('woff'), url('prem/15.0.995.29/resources/styles/office365icons.ie8.ttf') format('truetype'); font-weight:normal; font-style:normal;}@font-face { font-family:'o365IconsMouse'; src:url('prem/15.0.995.29/resources/styles/office365icons.mouse.eot?#iefix') format('embedded-opentype'), url('prem/15.0.995.29/resources/styles/office365icons.mouse.woff') format('woff'), url('prem/15.0.995.29/resources/styles/office365icons.mouse.ttf') format('truetype'); font-weight:normal; font-style:normal;}.wf-family-owa {font-family:'o365IconsMouse'}.ie8 .wf-family-owa {font-family:'o365IconsIE8'}.ie8 .wf-owa-play-large:before {content:'\e254';}.notIE8 .wf-owa-play-large:before {content:'\e054';}.ie8 .wf-owa-play-large {color:#FFFFFF/*$WFWhiteColor*/;}.notIE8 .wf-owa-play-large {border-color:#FFFFFF/*$WFWhiteColor*/; width:1.4em; height:1.4em; border-width:.1em; border-style:solid; border-radius:.8em; text-align:center; box-sizing:border-box; -moz-box-sizing:border-box; padding:0.1em; color:#FFFFFF/*$WFWhiteColor*/;}.ie8 .wf-size-play-large {width:40px; height:40px; font-size:30px}.notIE8 .wf-size-play-large {width:40px; height:40px; font-size:30px}.notIE8 .wf-owa-triangle-down-small:before {content:'\e052';}.ie8 .wf-owa-triangle-down-small:before { content:'\e052';}.ie8 .wf-owa-triangle-down-small {color:#666666/*$WFGreyColor*/;}.wf-size-x20 {font-size: 20px!important;}--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi Ross,</p>
<p><br>
</p>
<p>I have a question in regards to using a <span style="color: rgb(34, 34, 34); font-family: palatino, georgia, verdana, arial, sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);">
H264VideoStreamDiscreteFramer</span> vs <span style="color: rgb(34, 34, 34); font-family: palatino, georgia, verdana, arial, sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);">
H264VideoStreamFramer</span>.</p>
<p><br>
</p>
<p>If I understand correctly a Source Byte-stream with start-code and follows an NAL you feed the source to a
<span style="color: rgb(34, 34, 34); font-family: palatino, georgia, verdana, arial, sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);">
H264VideoStreamFramer</span>. This Framer can parse a Byte-stream formatted h.264 stream. I found this at the following post from you.<br>
</p>
<p><br>
</p>
<p><a href="http://blog.gmane.org/gmane.comp.multimedia.live555.devel/month=20130201">http://blog.gmane.org/gmane.comp.multimedia.live555.devel/month=20130201</a></p>
<p><br>
</p>
<p>Not too long ago Eric from AlphaNetworks was doing the same thing, but with a video (Byte-Stream) and audio and having sync with the audio and video. You recommended using a
<span style="color: rgb(34, 34, 34); font-family: palatino, georgia, verdana, arial, sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);">
H264VideoStreamDiscreteFramer.</span> This requires a NAL per framer *without* the start-code? In a ByteStreamH264BufferSource the deliverFrame is one NAL (without a start-code)?
</p>
<p><br>
</p>
<p><a href="http://lists.live555.com/pipermail/live-devel/2014-September/018686.html">http://lists.live555.com/pipermail/live-devel/2014-September/018686.html</a></p>
<p><br>
</p>
<p>So in the event you have a Byte-stream source, is there anyway to sync up the audio when using the H264VideoStreamFramer? And if not does I assume that means we need to parse the Byte-stream and for each NAL strip the start-code provide each NAL as a frame,
when using the H264VideoStreamDiscreteFramer? Is there an example of taking a video source of a byte-stream parsing it and providing to a Discrete Framer, so that audio can be in sync? (Ideally we could use the H264VideoStreamFramer, that already parses the
Byte-stream (with start-codes) as that is done for us with H264VideoStreamFramer, but there appears there are audio sync issues?)</p>
<p><br>
</p>
<p>What I have noticed is when using a H264VideoStreamFramer, it works well with gstreamer playbin2 (runs for hours with audio - there are sync issues), other clients we have work, not so good with vlc (seems to get out of sync and video stops working). Seems
the live555 client code in vlc would work well with a live555 rtsp server? (I know vlc is not your software, but the client live555 is, if I understand correctly). Are we suppose to send the entire frame from the encoder with start-codes (except the first
start-code) when we use a H264VideoStreamDiscreteFramer? If stripping the first start-code and using the discrete framer, vlc and gstreamer can play video and audio (seems more in sync), but other clients we have have trouble playing video/audio (Not removing
all start-codes and delivering a payload of NALs from the deliverFrame seems incorrect based on what I read from your post to Eric).
<br>
</p>
<p><br>
</p>
<p>I hope that all makes sense.<br>
</p>
<p><br>
</p>
<p>Thanks for your feedback.</p>
<p><br>
</p>
<p>Craig</p>
<p><br>
</p>
<p><br>
</p>
</body>
</html>