The Flash Guru: Testing RTMP Streams, Synchronizing Slides, and More
In this installment of The Flash Guru, Stefan Richter tackles questions about testing RTMP Flash streams, adding synchronized slides and QA, and recording in one place and streaming from another.
Mon., June 22, by Troy Dreier
Got a Flash video question? Let Stefan Richter, the Flash guru, help you out. In this monthly series, Richter will answer Flash questions sent in by StreamingMedia.com readers or from the Streaming Media forums.
Richter is the founding director of Muchosmedia, a UK-based software firm specializing in rich Internet applications. The company works for an international client base that includes ITV, Unilever, and the Tate Modern, and recently launched its first product, Scribblar, an online collaboration tool which is proving popular in the eLearning community. Richter also maintains his personal blog, the popular FlashComGuru.
Stefan's first question this week comes from forum member mdman1970. It's a long one, so we'll break it into parts.
As a background, we are a video production company wanting to offer live event streaming as a service—we have decided to concentrate on Flash-only streaming. Just have a couple of questions really:
1) Say we were asked to do a live event stream from JoeBloggs Inc offices. Are there any tests (online) that can be run from JoeBloggs Inc office to confirm that we can send the Live RTMP Flash stream to our Flash Server i.e. we are not firewalled/proxied off? (NB I understand in an ideal world we would have a dedicated/resilient internet connection.
I did find this test : http://kb2.adobe.com/cps/164/tn_16466.html.
Is the above test only proving Flash Player connectivity—or does this also prove RTMP stream push connectivity to Flash servers?
What test would you run onsite to prove we have the ability to push a Flash stream? I suppose trying to push a stream is the best test.
Stefan knows the test and yes, it's for Flash connectivity. To test your connection, fire up Flash Media Encoder and try to connect to your sever. You can then try encoding to the server to make sure everything works as it should.
For a second test, use the link you gave and run the Flash player connection tester. If that test runs correctly, then you're in good shape, Richter says. It's a good indication of whether or not you can stream to that server.
Secondly, and here where I show my ignorance, probably: can some please explain the output from the test e.g.
RTMP DEFAULT Success <-----what is this, I thought 1935 was default port?
RTMP 80 Success <---- I assume we aint going via proxy with this connection, but directly out of network on port 80 and Flash server is listening on port 80?
RTMP 443 Success
RTMP 1935 Success <-- confused because of first line i.e. default, I thought 1935 was default
HTTP Tunneling DEFAULT Success
HTTP Tunneling 80 Success
The first line means that the test routine isn't using one particular port explicitly. Yes, 1935 is the default port, but the text connects first without a specific port. After that it connects with port 80, as you see in the next line. You're correct that it's not using a proxy but is going directly to port 80 on the server. Port 1935 is always enabled by default, and ports 80 and 443 usually are. These two, however, need to be added manually by whomever configures the media server. Because they're commonly used, they're often open on firewalls and will succeed if 1935 fails.
If no port is specified, the Flash player will automatically try these three ports starting with 1935. That can take a while—between half-a-minute and a minute—so it's better to write your own connection routine, says Richter. When people have to wait that long, they assume the connection isn't working. That unspecified connecting is especially slow on Macs, he says.
Re: the above HTTP tunneling. Is this mainly used for connections via a HTTP proxy on the LAN?
No, tunneling is used to get through firewalls. It makes RTMP traffic look like HTTP traffic.
Say I had Flash encoder software on my laptop—can I configure the push stream with: RTMPT://myflashserver.com/livestream
Yes, but you shouldn't, Richter says. That configuration will introduce unnecessary latency. The extra work will slow everything down.
If so how would Flash encoder know which proxy server to use? Does it take the proxy server address from Internet connection settings?
RTMP has nothing to do with proxies, but with firewalls. You can forget about proxies for now. Richter doesn't think you can stream RTMP through proxies.
Proxies are used for standard Web traffic, not for streaming video. With a proxy, you don't connect directly to your online source.
2) We would like to provide synchronized slides/QA functionality. We will be using Wowza for Flash server. Are there any solutions out there to provide this functionality or would we have to get a Flash developer involved to provide a bespoke solution?
While Richter doesn't know of an off-the-shelf solution, he says a developer could build one. It's not too difficult. However, if you're looking to synchronize slides, he invites you to contact him, as he thinks he has a solution that will be suitable for you. It's an application that loads presentations, converts the slides to images, and then lets you control which are shown at what time.
The second question comes from forum member thomsany:
I am planning to make a project to stream a show over the internet with video/audio. I've been looking into different solutions such as Adobe's for the Flash player, which I think its the one most widely used.
What I want to do is record in one place, and then stream the video live from our servers in the data center. Is it possible to record/encod in one place and send the video to another server for streaming? Where can I find a tutorial or some help on doing this?
Yes, that can be easily done, says Richter. You need to have a streaming server in your data center, such as Flash Media Server. To encode video, use Flash Media Live Encoder, which is free. Use that to publish your content to the server, as well. It can also save a copy of the streamed file on your local machine.
The Adobe Developer Connection is a good place to look for tutorials. Richter also recommends these pages:
• Webcasting Live Video with Flash Media Live Encoder
• Flash Media Live Encoder Basics
• Adobe's Flash Media Live Encoder Forum
Submit your Flash video questions to Streaming Media’s Formats, Codecs, and Players forum, or send them directly to the author at email@example.com