Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Overview

Supported platforms


Adobe Flash

Windows

+

Mac OS

+

Linux

+

Operation flowchart


1. Flash Player connects to the server via the RTMP protocol and sends the publish command.

...

Code Block
languageactionscript3
themeRDark
	private function handleStreamStatus(event:NetStatusEvent):void{
		Logger.info("handleStreamStatus: "+event.info.code);
		switch (event.info.code) {
            ...
			case "NetStream.Unpublish.Success":
				publishStream.removeEventListener(NetStatusEvent.NET_STATUS, handleStreamStatus);
				publishStream=null;	
				setPublishStatus("UNPUBLISHED");
				publishBtn.visible = true;
				unpublishBtn.visible = false;
				break;
            ...
		}		
	}
Excerpt

Setting a server application while RTMP stream publishing

While publishing RTMP stream to WCS server, a server application can be set that will be used to backend server interaction. It can be done with parameter in stream URL:

Code Block
languagebash
themeRDark
rtmp://host:1935/live?appKey=key1/streamName

Where

  • host is WCS server;
  • key1 is application key on WCS server;
  • streamName is stream name to publish

By default, if application key parameter is not set, the standard application flashStreamingApp will be used.

Besides, an application can be explicitly specified as stream URL part. To do this, the following parameter in flashphoner.properties file should be set

Code Block
languagebash
themeRDark
rtmp_appkey_source=app

Then application key must be set in stream URL as

Code Block
languagebash
themeRDark
rtmp://host:1935/key1/streamName

In this case, live is also an application name, therefore when stream is published with URL

Code Block
languagebash
themeRDark
rtmp://host:1935/live/streamName

live application must be defined on WCS server.

Known issues

1. When audio only stream is published, and this stream is played in browser via WebRTC, no sound is played.

Symptoms: there is no sound when playing a stream published with Flash client.

Solution: change SDP setting for the streams published from Flash clients in file flash_handler_publish.sdp to be audio only.

Code Block
languagebash
themeRDark
v=0
o=- 1988962254 1988962254 IN IP4 0.0.0.0
c=IN IP4 0.0.0.0
t=0 0
a=sdplang:en
m=audio 0 RTP/AVP 97 8 0
a=rtpmap:97 SPEEX/16000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=sendonly

2. When RTMP stream is published with Flash Streaming, then it is played in iOS Safari browser via WebRTC, and another stream is published form iOS Safari via WebRTC, sound stops playing in RTMP stream.

Symptoms:

a) The stream1 stream is published from Flash Streaming web application in Chrome browser on Windows
b) The stream1 stream is played in Two Way Streaming web application in iOS Safari browser. Sound and video play normally.
c) The stream2 stream is published from Two Way Streaming web application in iOS Safari browser. Sound stops playing.
d) Stop publishing stream in iOS Safari. Sound of stream1 plays again.

Solution: switch Avoid Transcoding Alhorithm off on the server using the following parameter in flashphoner.properties file

Code Block
languagebash
themeRDark
disable_rtc_avoid_transcoding_alg=true

3. Parsing stream URL parameters does not work for streams published from Flash clients/