Hi, in this tutorial we will see how we can easily get a RTMP link
from a simple page and then you may use it stream live TV channels. I
alert that i’ll not give examples of pages in this tutorial, if you
understand this tutorial, you will be able to reproduce the steps
correctly in any link that you may have in hands.
Very well, you’ll need the following:
- rtmpdump (it should include rtmpsuck)
- A page with a flash based object with the stream that you want to get the rtmp link
But before we start, do you know what is rtmp?
Real Time Messaging Protocol (RTMP) was initially a
proprietary protocol developed by Macromedia for streaming audio, video
and data over the Internet, between a Flash player and a server.
|
Have you read where it says “between a Flash player and a server”
that it what you’re thinking, it will only work with flash based
objects, Media Player are not supported, by the way I can tell you
already that there is a field of the rtmp link that is specifically for
the SWF player.
Getting a rtmp link is fairly easy but you should be alerted that
some times you may face some erros while trying to play a rtmp link, it
generally means or your rtmp link is incomplete or wrong or then it is
offline at the moment of test.
Let’s start then our hunt for rtmp links, I’ll use a Ubuntu 11.04
machine to do it, but it was confirmed to be working in Fedora 15.
1. Open the console of your distribution and type the following command as root:
Code:
On Ubuntu:
sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner ! --uid-owner root -j REDIRECT
Code:
On Fedora (if you're not a sudoer):
su -c 'iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner ! --uid-owner root -j REDIRECT'
This command is used to redirect RTMP traffic to a proxy
server (since RTMP links use the port 1935) so we can use rtmpsuck
next to get the links
|
2. Now that we are able to use rtmpsuck, let’s use it, simply type the following command:
Once you enter this command, if it is working properly it will show the following output:
Code:
RTMP proxy server
Streaming on rtmp://0.0.0.0:1935
You’ll notice that it will not allow you do run any command when
rtmpsuck is running, that’s normal, it means while it is running you’re
able to get the links. If for any case, you need to interrupt rtmpsuck
to run other command, you may type on the same console CTRL+C and it
will interupt the operation.
3. Now it is time to visit a page with a stream using Flash (confirm
rtmpsuck is running), once you are there wait a little to the video
start reproduce, once it starts, go back to the console, you’ll now have
some new lines, the last ones will be talking about the audio and
video, go up a little so you can read the lines (<something> means
what is written in your console, these fields change according to the
streams):
Code:
app: <something>
flashVer: <something>
swfUrl: <something>
tcUrl: <something>
pageUrl: <something>
Playpath: <something>
Sometimes between this lines it may appear lines starting with
“ERROR:”, if it appears to you it means that the stream you chose is not
the best, but if you can watch the stream on the page normally, then
you should not have problems with it.
Let’s explain briefly what is each field of the above (there other
fields that may show you talking about the video and audio, but we don’t
need them for this):
app: This is the name of the application to connecto in
order to run the RTMP, it is needed sometimes since sometimes the RTMP
URL link parser can not find it by itself;
flashVer: This is the field that identifies the version of the Flash
Player to run the RTMP – Probably you will not need to use it, since a
default one is used – “LNX 10,0,32,18″;
swfUrl: This specifies the link where the Flash Player used to stream the RTMP link is hosted – Needed everytime;
tcUrl: This specifies the link for the RTMP stream itself – Needed everytime;
pageUrl: This specifies the link for the page where the stream can be
watched (it should be a .htm or something like that page) – Sometimes
needed;
Playpath: This specifies the name of the file of the stream that is
located in the tcUrl link (sometimes you will face this field as a
complex name without a file format, that’s normal) – Needed everytime;
|
4. Break down the operation now with Ctrl+C
5. Now we will write the final RTMP link that you need to stream it
using Showtime, let’s use the following form (it is the form that I used
for me), the fields that are between < > is one of the above
fiels value:
Code:
<tcUrl>/<Playpath> swfUrl=<swfUrl> pageUrl=<pageUrl> swfVfy=true live=true tcUrl=<tcUrl>
Let’s see a fictional example of it, imagine that with rtmpsuck we got the following values:
Code:
app: live
flashVer: LNX 10,0,32,18
swfUrl: http://example.com/player/player.swf
tcUrl: rtmp://example.com/live
pageUrl: http://otherexample.com/index.htm
Playpath: file.flv
With these values, our RTMP link would be:
Code:
rtmp://example.com/live/file.flv swfUrl=http://example.com/player/player.swf pageUrl=http://otherexample.com/index.htm
swfVfy=true live=true tcUrl=rtmp://example.com/live
When writing the RTMP link like this write it followed don’t change lines
|
Now we have the RTMP link! You may use it directly in a plugin of
Showtime using it as a url for a video or put it in a remote xml file
and inside a plugin of Showtime get access to that file and read the url
and do the same thing as the statement before.
I hope you enjoyed my tutorial, it will be updated when problems or
new solutions are found. Thanks for reading this. Now that you know how
to get the RTMP links, you have the power to stream TV channels, use
it in your responsability, the author of the tutorial does not take any
responsability for the use that the user may give to it.