Wowza Community

DVR issues: Segments not aligned - Transcoding + nDVR + Wirecast - Wowza 3.6.2 Latest

Hi

Our hardware setup:

Dell Poweredge Dual Xenon 5600

Wowza 3.6.2 Latest production build

Wirecast 4.3 - Latest version

Blackmagic Decklink SDI HD stream 1x720p Picture

Our software setup

Windows Server 2008 R2 Enterprise

Wowza config is tuned as recommended in the this post: https://www.wowza.com/docs/general-tuning

Wirecast streaming - RTMP - h264,AAC - Key frame each 2 sec - 2000 kbits video - 96 kbit Audio - Uplink 100 mbits fiber

Application Conf

<Root>
	<Application>
		<!-- Uncomment to set application level timeout values
		<ApplicationTimeout>60000</ApplicationTimeout>
		<PingTimeout>12000</PingTimeout>
		<ValidationFrequency>8000</ValidationFrequency>
		<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
		<MaximumSetBufferTime>60000</MaximumSetBufferTime>
		<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
		-->
		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains></AllowDomains>
		</Connections>
		<!--
			StorageDir path variables
			
			${com.wowza.wms.AppHome} - Application home directory
			${com.wowza.wms.ConfigHome} - Configuration home directory
			${com.wowza.wms.context.VHost} - Virtual host name
			${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
			${com.wowza.wms.context.Application} - Application name
			${com.wowza.wms.context.ApplicationInstance} - Application instance name
			
		-->
		<Streams>
			<StreamType>live-record</StreamType>
			<StorageDir>E:/disk/LocalUser/app/arkiv/</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
			<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer,dvrstreamingpacketizer</LiveStreamPacketizers>			
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
			</Properties>
		</Streams>
		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
			<!-- [templatename].xml or ${SourceStreamName}.xml -->
			<Templates>customer_transrate.xml</Templates>
			<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
			<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
			<Properties>
			</Properties>
		</Transcoder>
		<DVR>
			<!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
			<!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
			<!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
			<!-- To turn on DVR recording set Recorders to dvrrecorder.  This works with dvrstreamingpacketizer  -->
			<Recorders>dvrrecorder</Recorders>
			<!-- As a single server or as an origin, set the Store to dvrfilestorage-->
			<!-- edges should have this empty -->
			<Store>dvrfilestorage</Store>
			<!--  Window Duration is length of live DVR window in seconds.  0 means the window is never trimmed. -->
			<WindowDuration>0</WindowDuration>
			<!-- Storage Directory is top level location where dvr is stored.  e.g. c:/temp/dvr -->
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
			<!-- valid ArchiveStrategy values are append, version, delete -->
			<ArchiveStrategy>delete</ArchiveStrategy>
			<!-- If this is a dvrstreamingrepeater, define ChunkOriginURL to point back to origin -->
			<!-- And define Application/Repeater/OriginURL to point back to the origin -->
			<Repeater>
				<ChunkOriginURL></ChunkOriginURL>
			</Repeater>
			<!-- Properties for DVR -->
			<Properties>
				<Property>
					<Name>streamTimeout</Name>
					<Value>30000</Value>
					<Type>Integer</Type>
				</Property>
			</Properties>
		</DVR>
		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming -->
		<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming</HTTPStreamers>			
		<SharedObjects>
			<StorageDir></StorageDir>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess></StreamAudioSampleAccess>
				<StreamVideoSampleAccess></StreamVideoSampleAccess>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<PublishMethod>digest</PublishMethod>
				<PlayMethod>none</PlayMethod>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
			<Properties>
			</Properties>
		</RTP>
		<MediaCaster>
			<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
			<Properties>
			</Properties>
		</MediaCaster>
		<MediaReader>
			<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
			<Properties>
			</Properties>
		</MediaReader>
		<LiveStreamPacketizer>
			<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
			<Properties>
			</Properties>
		</LiveStreamPacketizer>
		<HTTPStreamer>
			<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
			<Properties>
			</Properties>
		</HTTPStreamer>
		<Repeater>
			<OriginURL></OriginURL>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater> 
		<Modules>
			<Module>
				<Name>base</Name>
				<Description>Base</Description>
				<Class>com.wowza.wms.module.ModuleCore</Class>
			</Module>
			<Module>
				<Name>properties</Name>
				<Description>Properties</Description>
				<Class>com.wowza.wms.module.ModuleProperties</Class>
			</Module>
			<Module>
				<Name>logging</Name>
				<Description>Client Logging</Description>
				<Class>com.wowza.wms.module.ModuleClientLogging</Class>
			</Module>
			<Module>
				<Name>flvplayback</Name>
				<Description>FLVPlayback</Description>
				<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
			</Module>
			<Module>
				<Name>ModuleRTMPAuthenticate</Name>
				<Description>ModuleRTMPAuthenticate</Description>
				<Class>com.wowza.wms.security.ModuleRTMPAuthenticate</Class>
			</Module>
		</Modules>
		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
		<Properties>
			<Property>
				<Name>smoothStreamingMediaMajorVersion</Name>
				<Value>2</Value>
				<Type>Integer</Type>
			</Property>
			<Property>
				<Name>rtmpEncoderAuthenticateFile</Name>
				<Value>${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/publish.password</Value>
			</Property>
		</Properties>
	</Application>
</Root>

Transrate CONF

<!-- Example template for transrate, producing four new streams at different bitrates. Resultant streams can be played back individually or as a group. source, 360p and 160p encode blocks are enabled through the Enable property, other examples are not enabled. Add additional encode blocks to your template as needed. -->
<Root>
	<Transcode>
		<Encodes>
			<!-- Example Encode block for source, not required unless Member of StreamNameGroup. --> 
			<Encode>
				<Enable>true</Enable>
				<Name>source</Name>
				<StreamName>mp4:${SourceStreamName}_source</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceVideoBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceAudioBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
			<!-- Setup for 720p, high bandwith, main profile for desktop or set-top box -->
			<Encode>
				<Enable>false</Enable>
				<Name>720p</Name>
				<StreamName>mp4:${SourceStreamName}_720p</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>H.264</Codec>
					<!-- default, CUDA, QuickSync, NVENC -->
					<Transcoder>default</Transcoder>
					<GPUID>-1</GPUID>
					<FrameSize>
						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
						<FitMode>fit-height</FitMode>
						<Width>1280</Width>
						<Height>720</Height>
						<!-- <Crop>0,0,0,0</Crop> -->
						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
					</FrameSize>
					<!-- baseline, main, high -->
					<Profile>main</Profile>
					<Bitrate>1300000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>true</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<Overlays>
						<Overlay>
							<Enable>false</Enable>
							<Index>0</Index>
							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
							<CheckForUpdates>false</CheckForUpdates>
							<Opacity>100</Opacity>
							<Location>
								<X>4</X>
								<Y>4</Y>
								<Width>${ImageWidth}</Width>
								<Height>${ImageHeight}</Height>
								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
								<Align>left,top</Align>
							</Location>
						</Overlay>
					</Overlays>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceAudioBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
			<!-- Setup for 360p, high bandwith, main profile for desktop -->
			<Encode>
				<Enable>true</Enable>
				<Name>360p</Name>
				<StreamName>mp4:${SourceStreamName}_360p</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>H.264</Codec>
					<!-- default, CUDA, QuickSync, NVENC -->
					<Transcoder>default</Transcoder>
					<GPUID>-1</GPUID>
					<FrameSize>
						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
						<FitMode>fit-height</FitMode>
						<Width>640</Width>
						<Height>360</Height>
						<!-- <Crop>0,0,0,0</Crop> -->
						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
					</FrameSize>
					<!-- baseline, main, high -->
					<Profile>main</Profile>
					<Bitrate>850000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>true</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<Overlays>
						<Overlay>
							<Enable>false</Enable>
							<Index>0</Index>
							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
							<CheckForUpdates>false</CheckForUpdates>
							<Opacity>100</Opacity>
							<Location>
								<X>4</X>
								<Y>4</Y>
								<Width>${ImageWidth}</Width>
								<Height>${ImageHeight}</Height>
								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
								<Align>left,top</Align>
							</Location>
						</Overlay>
					</Overlays>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceAudioBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
			<!-- Setup for 240p, medium bandwidth, baseline profile -->
			<Encode>
				<Enable>true</Enable>
				<Name>240p</Name>
				<StreamName>mp4:${SourceStreamName}_240p</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>H.264</Codec>
					<!-- default, CUDA, QuickSync, NVENC -->
					<Transcoder>default</Transcoder>
					<GPUID>-1</GPUID>
					<FrameSize>
						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
						<FitMode>fit-height</FitMode>
						<Width>360</Width>
						<Height>240</Height>
						<!-- <Crop>0,0,0,0</Crop> -->
						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
					</FrameSize>
					<!-- baseline, main, high -->
					<Profile>baseline</Profile>
					<Bitrate>350000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>true</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<Overlays>
						<Overlay>
							<Enable>false</Enable>
							<Index>0</Index>
							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
							<CheckForUpdates>false</CheckForUpdates>
							<Opacity>100</Opacity>
							<Location>
								<X>4</X>
								<Y>4</Y>
								<Width>${ImageWidth}</Width>
								<Height>${ImageHeight}</Height>
								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
								<Align>left,top</Align>
							</Location>
						</Overlay>
					</Overlays>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceAudioBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
			<!-- Setup for 160p, low bandwith, baseline profile for 3G mobile devices such as iOS, Android, Blackberry -->
			<Encode>
				<Enable>false</Enable>
				<Name>160p</Name>
				<StreamName>mp4:${SourceStreamName}_160p</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>H.264</Codec>
					<!-- default, CUDA, QuickSync, NVENC -->
					<Transcoder>default</Transcoder>
					<GPUID>-1</GPUID>
					<FrameSize>
						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
						<FitMode>fit-height</FitMode>
						<Width>284</Width>
						<Height>160</Height>
						<!-- <Crop>0,0,0,0</Crop> -->
						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
					</FrameSize>
					<!-- baseline, main, high -->
					<Profile>baseline</Profile>
					<Bitrate>200000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>true</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<Overlays>
						<Overlay>
							<Enable>false</Enable>
							<Index>0</Index>
							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
							<CheckForUpdates>false</CheckForUpdates>
							<Opacity>100</Opacity>
							<Location>
								<X>4</X>
								<Y>4</Y>
								<Width>${ImageWidth}</Width>
								<Height>${ImageHeight}</Height>
								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
								<Align>left,top</Align>
							</Location>
						</Overlay>
					</Overlays>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceAudioBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
			<!-- Setup for H.263, low bandwith, streaming to older mobile devices -->
			<Encode>
				<Enable>false</Enable>
				<Name>h263</Name>
				<StreamName>mp4:${SourceStreamName}_h263</StreamName>
				<Video>
					<!-- H.264, H.263, PassThru, Disable -->
					<Codec>H.263</Codec>
					<!-- default, CUDA, QuickSync, NVENC -->
					<Transcoder>default</Transcoder>
					<GPUID>-1</GPUID>
					<FrameSize>
						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
						<FitMode>letterbox</FitMode>
						<Width>176</Width>
						<Height>144</Height>
						<!-- <Crop>0,0,0,0</Crop> -->
						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
					</FrameSize>
					<!-- baseline, main, high -->
					<Profile>baseline</Profile>
					<Bitrate>150000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>false</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<Overlays>
						<Overlay>
							<Enable>false</Enable>
							<Index>0</Index>
							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
							<CheckForUpdates>false</CheckForUpdates>
							<Opacity>100</Opacity>
							<Location>
								<X>4</X>
								<Y>4</Y>
								<Width>${ImageWidth}</Width>
								<Height>${ImageHeight}</Height>
								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
								<Align>left,top</Align>
							</Location>
						</Overlay>
					</Overlays>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>AAC</Codec>
					<Bitrate>64000</Bitrate>
					<Parameters>
					</Parameters>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
		</Encodes>
		<Decode>
			<Video>
				<Deinterlace>false</Deinterlace>
				<Overlays>
					<Overlay>
						<Enable>false</Enable>
						<Index>0</Index>
						<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
						<CheckForUpdates>false</CheckForUpdates>
						<Opacity>100</Opacity>
						<Location>
							<X>4</X>
							<Y>4</Y>
							<Width>${ImageWidth}</Width>
							<Height>${ImageHeight}</Height>
							<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
							<Align>left,top</Align>
						</Location>
					</Overlay>
				</Overlays>
				<Parameters>
				</Parameters>
			</Video>
			<Properties>
			</Properties>
		</Decode>
		<StreamNameGroups>
			<!-- Note: Play stream using stream name ngrp:[stream-name] -->
			<StreamNameGroup>
				<Name>all</Name>
				<StreamName>${SourceStreamName}_all</StreamName>
				<Members>
					<Member>
						<EncodeName>source</EncodeName>
					</Member>
					<Member>
						<EncodeName>720p</EncodeName>
					</Member>
					<Member>
						<EncodeName>360p</EncodeName>
					</Member>
					<Member>
						<EncodeName>240p</EncodeName>
					</Member>
				</Members>
			</StreamNameGroup>
			<StreamNameGroup>
				<Name>mobile</Name>
				<StreamName>${SourceStreamName}_mobile</StreamName>
				<Members>
					<Member>
						<EncodeName>240p</EncodeName>
					</Member>
					<Member>
						<EncodeName>160p</EncodeName>
					</Member>
				</Members>
			</StreamNameGroup>
		</StreamNameGroups>
		<Properties>
		</Properties>
	</Transcode>
</Root>

Our problem

  • ?DVR is not working in 1/7 of our tests (manifest.f4m) . If we try to playbak the stream without ?DVR = no problem… (Nothing in the error log)

  • If we run a 6-10 hour long livestream, stop the encoder. We wait 5 minutes then we start the encoder. Then the different bandwidth’s (240p,360p, source) are not aligned. After a new restart of the encoder it works fine. (Error logs shows this):

WARN	server	comment	2013-06-21	15:17:06	-	-	-	-	-	148520.771	-	-	-	-	-	-	-	-	LiveStreamDvrRecorder.endChunk[customer/_definst_/customerlive3_source]: Recalculating video duration by estimating.  Was 4000.  Is now 3940.
WARN	server	comment	2013-06-21	15:17:06	-	-	-	-	-	148520.773	-	-	-	-	-	-	-	-	LiveStreamDvrRecorder.endChunk[customer/_definst_/customerlive3_source]: Recalculating audio duration by estimating.  Was 12190.  Is now 12422.
WARN	server	comment	2013-06-21	15:17:06	-	-	-	-	-	148520.773	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_source/customerlive3_source.6] : Skipping chunk. A/V durations differ by 8482 ms, more than allowed 2000 ms.   aDuration=12422 vDuration=3940
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.292	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_source/customerlive3_source.6] : Skipping chunk. A/V packet times differ by 8445 ms, more than allowed 2000 ms.   aTime=12445 vTime=4000
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.443	-	-	-	-	-	-	-	-	LiveStreamDvrRecorder.endChunk[customer/_definst_/customerlive3_240p]: Recalculating audio duration by estimating.  Was 12747.  Is now 12979.
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.444	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_240p/customerlive3_240p.6] : Skipping chunk. A/V durations differ by 4979 ms, more than allowed 2000 ms.   aDuration=12979 vDuration=8000
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.753	-	-	-	-	-	-	-	-	LiveStreamDvrRecorder.endChunk[customer/_definst_/customerlive3_360p]: Recalculating audio duration by estimating.  Was 13235.  Is now 13467.
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.754	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_360p/customerlive3_360p.6] : Skipping chunk. A/V durations differ by 5467 ms, more than allowed 2000 ms.   aDuration=13467 vDuration=8000
WARN	server	comment	2013-06-21	15:17:07	-	-	-	-	-	148521.826	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_source/customerlive3_source.6] : Skipping chunk. A/V packet times differ by 5003 ms, more than allowed 2000 ms.   aTime=13003 vTime=8000
WARN	server	comment	2013-06-21	15:17:10	-	-	-	-	-	148524.302	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_240p/customerlive3_240p.6] : Skipping chunk. A/V packet times differ by 4963 ms, more than allowed 2000 ms.   aTime=13003 vTime=8040
WARN	server	comment	2013-06-21	15:17:10	-	-	-	-	-	148524.377	-	-	-	-	-	-	-	-	DvrStreamStoreBase.storeChunks[customer/_definst_/customerlive3_360p/customerlive3_360p.6] : Skipping chunk. A/V packet times differ by 5450 ms, more than allowed 2000 ms.   aTime=13490 vTime=8040

  • After 3-4 hours of streaming we get alignment problems on DVR (Nothing in the access log or error log) playback without ?DVR works like a charm.

Anyone have any ideas ?

Test URL:

http://flashmeeting.exss.no/strobe/?src=http%3A%2F%2Fwms2.aventia.no%2Fbergen%2Fngrp%3Abergenlive3_all%2Fmanifest.f4m%3FDVR&playButton=Connect

We have been streaming for over 6 hours. Jumping from low quality up to HD is not working very well… Audio keeps playing and picture freezes for a minute.

DVR streaming over 3-4 hours is not very stable. This is our 8 or 10th test through version 3.5 - 3.6.2

If we disable DVR no problem… Test it out. Remove ?DVR.

Nothing in the Error logs on the server.

These messages indicate your audio and video is not aligned or has gone out of alignment. DVR requires audio/video alignment.

You can debug alignment problems following this guide:

https://www.wowza.com/docs/how-to-debug-aac-or-mp3-timecode-issues-with-apple-hls-packetization

If the above shows that the audio and video is aligned at the source, then audio and video may be arriving out of sync, which you might be able to fix by setting dvrPacketSortTime Application.xml /DVR Properties container.

     <Property>
          <Name>dvrPacketSortTime</Name>
          <Value>2000</Value>
          <Type>Integer</Type>
     </Property>

This is how to debug AAC timecodes:

https://www.wowza.com/docs/how-to-debug-aac-or-mp3-timecode-issues-with-apple-hls-packetization

Richard

These debug properties only show these messages in the console. They are not written to any logs.

Richard

These messages indicate your audio and video is not aligned or has gone out of alignment. DVR requires audio/video alignment.

You can debug alignment problems following this guide:

https://www.wowza.com/docs/how-to-debug-aac-or-mp3-timecode-issues-with-apple-hls-packetization

If the above shows that the audio and video is aligned at the source, then audio and video may be arriving out of sync, which you might be able to fix by setting dvrPacketSortTime Application.xml /DVR Properties container.

     <Property>
          <Name>dvrPacketSortTime</Name>
          <Value>2000</Value>
          <Type>Integer</Type>
     </Property>

I have checked the alingnement on the encoder side and the console show difference [0] - [1] constantly. I have not monitored for hours so if might not be aligned all the time. But is seems like the problem occurs after 3 HOURS every time.

When I enabled the dvrPacketSortTime as you mentioned i get these messages in the error log:

WARN	server	comment	2013-06-23	18:36:29	-	-	-	-	-	333283.831	-	-	-	-	-	-	-	-	SanJosePacketHandler.handlePacket[customer/_definst_/customerlive3]: Timecode out of order [video]: 1406:1553
WARN	server	comment	2013-06-23	18:36:29	-	-	-	-	-	333283.831	-	-	-	-	-	-	-	-	CupertinoPacketHandler.handlePacket[customer/_definst_/customerlive3]: Timecode out of order [video]: 1406:1553
WARN	server	comment	2013-06-23	18:36:29	-	-	-	-	-	333283.831	-	-	-	-	-	-	-	-	LiveStreamPacketizerSmoothStreaming.handlePacket[customer/_definst_/customerlive3]: Timecode out of order [video]: 14060000:15530000
WARN	server	comment	2013-06-23	18:36:30	-	-	-	-	-	333284.596	-	-	-	-	-	-	-	-	SanJosePacketHandler.handlePacket[customer/_definst_/customerlive3_source]: Timecode out of order [video]: 1406:1553
WARN	server	comment	2013-06-23	18:36:30	-	-	-	-	-	333284.596	-	-	-	-	-	-	-	-	LiveStreamPacketizerSmoothStreaming.handlePacket[customer/_definst_/customerlive3_source]: Timecode out of order [video]: 14060000:15530000
WARN	server	comment	2013-06-23	18:36:30	-	-	-	-	-	333284.596	-	-	-	-	-	-	-	-	CupertinoPacketHandler.handlePacket[customer/_definst_/customerlive3_source]: Timecode out of order [video]: 1406:1553
WARN	server	comment	2013-06-23	18:36:31	-	-	-	-	-	333285.831	-	-	-	-	-	-	-	-	DvrPacketHandler.handlePacket[]: Timecode out of order [video]: 1406:1553
WARN	server	comment	2013-06-23	18:36:32	-	-	-	-	-	333286.62	-	-	-	-	-	-	-	-	DvrPacketHandler.handlePacket[]: Timecode out of order [video]: 1406:1553

But nothing in the logs after that.

We are using RTMP from Wirecast 4.3 latest build.

Im not sure but the last tests shows no Timecode errors. Our internet line is very stable, 100mbit fiber connection .

Does this jitter config have any impact on RTMP from the encoder ?

Now we get these errors in our log:

WARN	server	comment	2013-06-26	11:52:34	-	-	-	-	-	11935.338	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9840 a:null v:null
WARN	server	comment	2013-06-26	11:52:46	-	-	-	-	-	11947.328	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9841 a:null v:null
WARN	server	comment	2013-06-26	11:52:56	-	-	-	-	-	11956.983	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9839 a:null v:null
WARN	server	comment	2013-06-26	11:53:00	-	-	-	-	-	11960.975	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9842 a:null v:null
WARN	server	comment	2013-06-26	11:53:01	-	-	-	-	-	11962.035	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9838 a:null v:null
WARN	server	comment	2013-06-26	11:53:23	-	-	-	-	-	11984.062	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:9843 a:null v:null
WARN	server	comment	2013-06-26	11:55:53	-	-	-	-	-	12133.994	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_240p/customerlive1_240p.0] : No audio or video record found.  i:9047 a:null v:null
WARN	server	comment	2013-06-26	11:55:56	-	-	-	-	-	12136.997	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:7779 a:null v:null
WARN	server	comment	2013-06-26	11:55:57	-	-	-	-	-	12138.854	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_240p/customerlive1_240p.0] : No audio or video record found.  i:9048 a:null v:null
WARN	server	comment	2013-06-26	11:56:06	-	-	-	-	-	12147.268	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:11215 a:null v:null
WARN	server	comment	2013-06-26	11:56:13	-	-	-	-	-	12154.274	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:7781 a:null v:null
WARN	server	comment	2013-06-26	11:56:22	-	-	-	-	-	12163.261	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:7780 a:null v:null
WARN	server	comment	2013-06-26	11:56:23	-	-	-	-	-	12164.259	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:7783 a:null v:null
WARN	server	comment	2013-06-26	11:56:32	-	-	-	-	-	12173.466	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_240p/customerlive1_240p.0] : No audio or video record found.  i:9046 a:null v:null
WARN	server	comment	2013-06-26	11:56:38	-	-	-	-	-	12179.129	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_360p/customerlive1_360p.0] : No audio or video record found.  i:11216 a:null v:null
WARN	server	comment	2013-06-26	11:57:09	-	-	-	-	-	12210.914	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[customer/_definst_/customerlive1_240p/customerlive1_240p.0] : No audio or video record found.  i:6699 a:null v:null

Any ideas ?

Anybody using Wirecast + nDVR addon + Transcoding + RTMP - Wowza 3.6.2?

The encoder gives us aligned Audio/Video, how can i debug the alignment on AAC over time? Howto write to log only when its out of alignment ?

This is how to debug AAC timecodes:

https://www.wowza.com/docs/how-to-debug-aac-or-mp3-timecode-issues-with-apple-hls-packetization

Richard

Yes i know.

  • This is SPAMMING my console
  • Nothing of the output is logged
  • The difference is 0 or 1
  • How can i log only errors

Hello, this new error indicates a problem with the encoder sending packets with odd packet times. nDVR reports the issue, but can’t fix it.

You could try setting up a Jitter Buffer to collect and store packets before they are sent to the depacketizer, and enable packet loss logging

How to turn on an RTP jitter buffer and packet loss logging (RTP and MPEG-TS)

Salvadore

Any news on this topic ?