I need to capture audio from a microphone using a flash object in a browser and live stream it to Flash Media Server. The Flash Media Server will in turn live stream the audio to users.
Do I have to use Flash Media Encoder to capture the audio? Is it possible to capture the audio without the need of installing the Flash Media Encoder and somehow stream it to the Flash Media Server?
I am completely new to Flash, so any answers are welcome!
I see this link: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html
•Call NetStream.play() to play a media file from a local disk, a web server, or Flash Media Server.
•Call NetStream.publish() to publish a video, audio, and data stream to Flash Media Server.
•Call NetStream.send() to send data messages to all subscribed clients.
•Call NetStream.send() to add metadata to a live stream.
•Call NetStream.appendBytes() to pass ByteArray data into the NetStream.
What are these functions? Can I call these from within SWF, or do I need the Flash Media Encoder?
Flash Media Encoder is an "asset compiler" or "transcoder", or, in other words, a program needed for packaging SWF with the media resources the SWF uses. It, for example, converts multiple video formats into FLV (which can be later used by SWF).
You, probably, don't need it at all, or, depending on the tools you chose to compile SWF, you might need it for development (for example, for embedding media assets into the program you create).
Often times other libraries are used to do the encoding / decoding. For example, for encoding plenty of video formats into FLV you could use ffmpeg.
Flash player comes with a set of encoders that allow you to capture and encode video so you could later send it, and a set of decoders that can read video or audio from certain formats so that you be able to display it in the player.
The link you posted is from the ActionScript 3 language reference. ActionScript is a programming language that is primarily used to operate in Flash Player environment. Flash Player environment (aka virtual machine, or AVM) is a set of libraries you can access by calling it's API from an SWF file when that file is loaded into the player. There's no separate documentation on the AVM API, but AS3 and the AVM are so tightly connected that you can consider the language API to be the same as the AVM API. So, answering your question: these functions are API exposed in AVM, they are accessible through creating an object of type NetStream (which is just another API exposed in AVM). You don't need Flash Media Encoder to call these API. However, you would need a compiler to create SWF files (several options exist, from different developers under different licenses).