Live Stream Panasonic BB-HCM715

Hi,

I’m on a project to live stream a ip camera to a single web page.

I found that the wowza server could re-stream a ip camera that support the H.264 and AAC.

I just bought a Panasonic BB-HCM715, this camera support the H264 and AAC protocol. That’s the url that i use to access the stream : rtsp://192.168.24.253/nphH264AAC/640x480/

I followed the tutorial called : How to re-stream video from an IP camera (RTSP/RTP re-streaming) (https://www.wowza.com/docs/how-to-re-stream-video-from-an-ip-camera-rtsp-rtp-re-streaming)

After publishing the stream by using the steam manager, i got some warning in the console :

WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B

By using the FlowPlayer to watch the live camera, i can’t see anything. The player looks connected successfully to wowza, i can see the time changing on the player, there is a log trace on the console during the connection but the screen still black.

I’m stuck, if someone have any idea?

I added my configuration and the console log below

Application.xml

<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</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
			<LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer</LiveStreamPacketizers>			
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
			</Properties>
		</Streams>
		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming -->
		<HTTPStreamers>cupertinostreaming,smoothstreaming</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>
			<IdleFrequency>75</IdleFrequency>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress></RTSPBindIpAddress>
			<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
			<!-- 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>
		<MediaWriter>
			<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
			<Properties>
			</Properties>
		</MediaWriter>
		<LiveStreamPacketizer>
			<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.plugin.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>secureTokenSharedSecret</Name>
				<Value>{My secure token}</Value>
			</Property>
			<Property>
				<Name>requireSecureConnection</Name>
				<Value>true</Value>
				<Type>Boolean</Type>
			</Property>
		</Properties>
	</Application>
</Root>

Console Log

INFO server comment - RTPMediaCaster.create[14043096]
INFO server comment - RTPMediaCaster.init[14043096]
INFO server comment - RTPMediaCaster.Reconnector[14043096:live/_definst_:camera.stream]: start: 1
INFO server comment - HTTPStreamManager.onHTTPRequest: Publish stream successfully started [live/_definst_]: camera.stream
INFO server comment - RTPSessionTracker.add[rtsp://192.168.24.253/nphH264AAC/640x480/]: 1
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.buildSDPData: sessionId:8138415574919628091391436897606 sessionTimeout:60000
INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/_definst_]: RTSP/RTP re-streaming. Success, received SDP data.
INFO stream create - -
INFO stream publish camera.stream -
INFO server comment - RTPUDPTransport.bind[live/_definst_]: 0.0.0.0/0.0.0.0:6970
INFO server comment - RTPUDPTransport.bind[live/_definst_]: 0.0.0.0/0.0.0.0:6971
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.sessionStart: PLAY: rtsp://192.168.24.253/nphH264AAC/640x480/
INFO server comment - RTPMediaCaster.Reconnector[14043096:live/_definst_:camera.stream]: done: 1
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6970
INFO server comment - RTCPHandler.sendFirstRTCPRR[2549512792,6971,/192.168.24.253:33009]
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6971
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: chunkDurationTarget: 10000
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: cupertinostreamingpacketizer:camera.stream
INFO server comment - CupertinoPacketHandler.startStream[live/_definst_/camera.stream]
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Video codec: H264
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: smoothstreamingpacketizer:camera.stream
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/_definst_/camera.stream]
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO session connect-pending 192.168.24.83 -
INFO session connect 192.168.24.83 -
INFO stream create - -
WARN server comment - RTPPacketFragmentListReader.skip: Bad skip count: -1056946318
WARN server comment - RTPPacketFragmentListReader.skip: Bad skip count: -1388034190
WARN server comment - RTPPacketFragmentListReader.skip: Bad skip count: -385857678
WARN server comment - RTPPacketFragmentListReader.skip: Bad skip count: -620738702
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [live/_definst_/camera.stream]: {H264CodecConfigInfo: profile: "High", level: 4.0, frameSize: 640x480, aspect: 1/1}
INFO stream play camera.stream -
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
INFO server comment - LiveStreamPacketizerSmoothStreaming.flushPendingVideo: Bitrate[live/_definst_/camera.stream]: 640223
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:1 a/v/k:0/158/30 duration:20980
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:2 a/v/k:0/140/32 duration:18765
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:3 a/v/k:0/148/28 duration:19880
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:4 a/v/k:0/150/34 duration:19725
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:5 a/v/k:0/157/40 duration:20850
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:6 a/v/k:0/147/31 duration:19855
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:7 a/v/k:0/150/32 duration:19155
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: STAP-B
INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/camera.stream]: Add chunk: id:8 a/v/k:0/151/39 duration:19885
WARN server comment - RTPDePacketizerRFC3984H264.handleRTPPacket: Unsupported packet type: FU-B

camera.stream file

rtsp://192.168.24.253/nphH264AAC/640x480/

edit:

I can see that wowza is connected to the camera by using the built-in camera manager

List of Sessions  
Connect time        Div                                Addr                User    Connection Type  
2010/ 8/30 14:28  Video(H.264)&Audio(AAC)  192.168.24.101  olivier  Unicast  

The camera uses RTP packetization modes that we do not support STAP-B and FU-B. We only support STAP-A and FU-A (which is way more common). We would need internet access to this camera to consider adding support.

Charlie

Great!

Charlie

This is good news. I don’t need access to the camera. STAP-B and FU-B is very uncommon.

The g726 is not supported by Wowza or by any of the players. You will need to transcode. There is not a way to mix in another audio channel and keep the video and audio in sync.

Charlie

Hi Charlie

Thank you for your quick reply.

I just set the rule in the firewall to give you access to the camera’s console and the port 554 udp/tcp (RTSP)

I’m going to send you the information in a private message.

Siolor

Hi Charlie,

I got a good news, i could make the video works by using another URL

rtsp://192.168.24.253/MediaInput/h264

The next issue now is that i don’t have any sound. When i check the Session status on the camera i see this :

Connect time     Div           Addr            User     Connection Type  
2010/ 9/ 1 9:33  Video(H.264)  192.168.24.101  olivier  Unicast  
2010/ 9/ 1 9:33  Audio(G.726)  192.168.24.101  olivier  Unicast  

Is the codec G.726 supported by wowza ?

Is there a way by the configuration file to mix a video source and a different

sound source and re-stream it into a single stream?

edit :

Information about the sound codec that i could get from VLC

Type: Audio
Codec: G.726 ADPCM Audio (g726)
Channels: Mono
Sample rate: 8000 Hz
Bits per sample: 16

Console Log during the stream publishing

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[livemobile/_definst_]: RTSP/RTP re-streaming. Success, received SDP data.
INFO stream create - -
INFO stream publish camera.stream -
INFO server comment - RTPUDPTransport.bind[livemobile/_definst_]: 0.0.0.0/0.0.0.0:6982
INFO server comment - RTPUDPTransport.bind[livemobile/_definst_]: 0.0.0.0/0.0.0.0:6983
INFO server comment - RTPUDPTransport.bind[livemobile/_definst_]: 0.0.0.0/0.0.0.0:6984
INFO server comment - RTPUDPTransport.bind[livemobile/_definst_]: 0.0.0.0/0.0.0.0:6985
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.sessionStart: PLAY: rtsp://olivier:planche@192.168.24.253/MediaInput/h264
INFO server comment - RTPMediaCaster.Reconnector[13412159:livemobile/_definst_:camera.stream]: done: 2
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6984
INFO server comment - RTCPHandler.sendFirstRTCPRR[3585059420,6981,/192.168.24.253:33003]
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: chunkDurationTarget: 10000
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6981
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[live/_definst_/camera.stream]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: cupertinostreamingpacketizer:camera.stream
INFO server comment - CupertinoPacketHandler.startStream[live/_definst_/camera.stream]
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: smoothstreamingpacketizer:camera.stream
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Video codec: [COLOR="Red"]H264[/COLOR]
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/_definst_/camera.stream]
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Audio codec: [COLOR="red"]AAC[/COLOR]
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6982
INFO server comment - RTCPHandler.sendFirstRTCPRR[4274920734,6979,/192.168.24.253:33001]
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6979
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [live/_definst_/camera.stream]: {H264CodecConfigInfo: profile: "High", level: 4.0, frameSize: 640x480, aspect: 1/1}
INFO server comment - RTCPHandler.sendFirstRTCPRR[1799434251,6985,/192.168.24.253:33007]
INFO server comment - LiveStreamPacketizerCupertino.init[livemobile/_definst_/camera.stream]: chunkDurationTarget: 10000
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6985
INFO server comment - LiveStreamPacketizerCupertino.init[livemobile/_definst_/camera.stream]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[livemobile/_definst_/camera.stream]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[livemobile/_definst_/camera.stream]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: cupertinostreamingpacketizer:camera.stream
INFO server comment - CupertinoPacketHandler.startStream[livemobile/_definst_/camera.stream]
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: smoothstreamingpacketizer:camera.stream
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Video codec: [COLOR="red"]H264[/COLOR]
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[livemobile/_definst_/camera.stream]
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Audio codec: [COLOR="Red"]AAC[/COLOR]
INFO server comment - RTCPHandler.sendFirstRTCPRR[601625931,6983,/192.168.24.253:33005]
INFO server comment - UDPTransport.firstPacket: 0.0.0.0/0.0.0.0:6983
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [livemobile/_definst_/camera.stream]: {H264CodecConfigInfo: profile: "High", level: 

Siolor

(I can keep the camera available for you if you want to try to support the STAP-B and FU-B)

Thank you for you support.

I’m transcoding the sound stream by using vlc. it works perfecly.

Siolor