|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.red5.server.stream.AbstractStream
org.red5.server.stream.AbstractClientStream
org.red5.server.stream.ClientBroadcastStream
public class ClientBroadcastStream
Represents live stream broadcasted from client. As Flash Media Server, Red5 supports recording mode for live streams, that is, broadcasted stream has broadcast mode. It can be either "live" or "record" and latter causes server-side application to record broadcasted stream. Note that recorded streams are recorded as FLV files. The same is correct for audio, because NellyMoser codec that Flash Player uses prohibits on-the-fly transcoding to audio formats like MP3 without paying of licensing fee or buying SDK. This type of stream uses two different pipes for live streaming and recording.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.red5.server.stream.AbstractStream |
|---|
AbstractStream.State |
| Field Summary | |
|---|---|
protected long |
bytesReceived
Total number of bytes received. |
protected boolean |
checkVideoCodec
Is there need to check video codec? |
protected int |
chunkSize
Data is sent by chunks, each of them has size |
protected boolean |
closed
Is this stream still active? |
protected IMessageOutput |
connMsgOut
Output endpoint that providers use |
protected long |
firstPacketTime
Stores timestamp of first packet. |
protected long |
latestTimeStamp
|
protected Set<IStreamListener> |
listeners
Listeners to get notified about received packets. |
protected IPipe |
livePipe
Pipe for live streaming |
protected String |
publishedName
Stream published name |
protected boolean |
sendStartNotification
Is there need to send start notification? |
| Fields inherited from class org.red5.server.stream.AbstractStream |
|---|
creationTime, metaData, state |
| Fields inherited from interface org.red5.server.api.stream.IClientStream |
|---|
MODE_APPEND, MODE_LIVE, MODE_PUBLISH, MODE_READ, MODE_RECORD |
| Fields inherited from interface org.red5.server.messaging.IPushableConsumer |
|---|
KEY |
| Constructor Summary | |
|---|---|
ClientBroadcastStream()
|
|
| Method Summary | |
|---|---|
void |
addStreamListener(IStreamListener listener)
Add a listener to be notified about received packets. |
void |
close()
Closes stream, unsubscribes provides, sends stoppage notifications and broadcast close notification. |
void |
dispatchEvent(IEvent event)
Dispatches event |
int |
getActiveSubscribers()
Return current number of subscribers. |
long |
getBytesReceived()
Return total number of bytes received from client for this stream. |
int |
getCurrentTimestamp()
Return the currently active timestamp inside the stream. |
int |
getMaxSubscribers()
Return maximum number of concurrent subscribers. |
IProvider |
getProvider()
Getter for provider |
String |
getPublishedName()
Getter for published name |
String |
getSaveFilename()
Get the filename the stream is being saved as. |
IClientBroadcastStreamStatistics |
getStatistics()
Return statistics about the stream. |
Collection<IStreamListener> |
getStreamListeners()
Return registered stream listeners. |
int |
getTotalSubscribers()
Return total number of subscribers. |
boolean |
isRecording()
|
void |
onOOBControlMessage(IMessageComponent source,
IPipe pipe,
OOBControlMessage oobCtrlMsg)
Out-of-band control message handler |
void |
onPipeConnectionEvent(PipeConnectionEvent event)
Pipe connection event handler |
void |
pushMessage(IPipe pipe,
IMessage message)
Currently not implemented |
void |
removeStreamListener(IStreamListener listener)
Remove a listener from being notified about received packets. |
void |
saveAs(String name,
boolean isAppend)
Save broadcasted stream. |
void |
setPublishedName(String name)
Setter for stream published name |
void |
start()
Starts stream. |
void |
startPublishing()
Notify client that stream is ready for publishing. |
void |
stop()
Stop this stream. |
void |
stopRecording()
Stops any currently active recordings. |
| Methods inherited from class org.red5.server.stream.AbstractClientStream |
|---|
getClientBufferDuration, getConnection, getStreamId, setClientBufferDuration, setConnection, setStreamId |
| Methods inherited from class org.red5.server.stream.AbstractStream |
|---|
getCodecInfo, getCreationTime, getMetaData, getName, getScope, getStreamAwareHandler, setCodecInfo, setName, setScope |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.red5.server.api.stream.IClientStream |
|---|
getClientBufferDuration, getConnection, getStreamId, setClientBufferDuration |
| Methods inherited from interface org.red5.server.api.stream.IBroadcastStream |
|---|
getMetaData |
| Methods inherited from interface org.red5.server.api.stream.IStream |
|---|
getCodecInfo, getCreationTime, getName, getScope |
| Methods inherited from interface org.red5.server.api.statistics.IStatisticsBase |
|---|
getCreationTime |
| Field Detail |
|---|
protected long bytesReceived
protected boolean checkVideoCodec
protected int chunkSize
protected boolean closed
protected IMessageOutput connMsgOut
protected long firstPacketTime
protected IPipe livePipe
protected String publishedName
protected boolean sendStartNotification
protected Set<IStreamListener> listeners
protected long latestTimeStamp
| Constructor Detail |
|---|
public ClientBroadcastStream()
| Method Detail |
|---|
public void close()
close in interface IStreamclose in interface ClientBroadcastStreamMBeanpublic void dispatchEvent(IEvent event)
dispatchEvent in interface IEventDispatcherevent - Event to dispatchpublic int getActiveSubscribers()
getActiveSubscribers in interface IClientBroadcastStreamStatisticspublic long getBytesReceived()
getBytesReceived in interface IClientBroadcastStreamStatisticspublic int getCurrentTimestamp()
getCurrentTimestamp in interface IStreamStatisticspublic int getMaxSubscribers()
getMaxSubscribers in interface IClientBroadcastStreamStatisticspublic IProvider getProvider()
getProvider in interface IBroadcastStreamgetProvider in interface ClientBroadcastStreamMBeanpublic String getPublishedName()
getPublishedName in interface IClientBroadcastStreamStatisticsgetPublishedName in interface IBroadcastStreamgetPublishedName in interface ClientBroadcastStreamMBeanpublic String getSaveFilename()
getSaveFilename in interface IClientBroadcastStreamStatisticsgetSaveFilename in interface IBroadcastStreamgetSaveFilename in interface ClientBroadcastStreamMBeannull
if the stream is not being saved.public IClientBroadcastStreamStatistics getStatistics()
getStatistics in interface IClientBroadcastStreampublic int getTotalSubscribers()
getTotalSubscribers in interface IClientBroadcastStreamStatistics
public void onOOBControlMessage(IMessageComponent source,
IPipe pipe,
OOBControlMessage oobCtrlMsg)
onOOBControlMessage in interface IMessageComponentsource - OOB message sourcepipe - Pipe that used to send OOB messageoobCtrlMsg - Out-of-band control messagepublic void onPipeConnectionEvent(PipeConnectionEvent event)
onPipeConnectionEvent in interface IPipeConnectionListenerevent - Pipe connection event
public void pushMessage(IPipe pipe,
IMessage message)
pushMessage in interface IPushableConsumerpipe - Pipemessage - Message
public void saveAs(String name,
boolean isAppend)
throws IOException,
ResourceNotFoundException,
ResourceExistException
saveAs in interface IBroadcastStreamsaveAs in interface ClientBroadcastStreamMBeanname - Stream nameisAppend - Append mode
IOException - File could not be created/written to.
ResourceNotFoundException - Resource doesn't exist when trying to append.
ResourceExistException - Resource exist when trying to create.public void setPublishedName(String name)
setPublishedName in interface IBroadcastStreamsetPublishedName in interface ClientBroadcastStreamMBeanname - Name that used for publishing. Set at client side when begin to broadcast with NetStream#publish.public void start()
start in interface IStreamstart in interface ClientBroadcastStreamMBeanpublic void startPublishing()
startPublishing in interface IClientBroadcastStreamstartPublishing in interface ClientBroadcastStreamMBeanpublic void stop()
stop in interface IStreamstop in interface ClientBroadcastStreamMBeanpublic void stopRecording()
public boolean isRecording()
public void addStreamListener(IStreamListener listener)
addStreamListener in interface IBroadcastStreamlistener - the listener to addpublic Collection<IStreamListener> getStreamListeners()
getStreamListeners in interface IBroadcastStreampublic void removeStreamListener(IStreamListener listener)
removeStreamListener in interface IBroadcastStreamlistener - the listener to remove
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||