Audio/video stream recording forums

Attention Visitor:
You may have to register or log in before you can post:
  • Click the register link to sign up.
  • Registered members please fill in the form below and click the "Log in" button.
To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Audio/video stream recording forums > Streaming media recording forum > rtmpdump
Register FAQ Members List Calendar Mark Forums Read

Reply Post New Thread
 
Thread Tools Display Modes
  #1  
Old 05-03-2009, 08:59 AM
jace89 jace89 is offline
Junior Member
 
Join Date: Sep 2008
Posts: 9
jace89 is on a distinguished road
Default

How to use RTMPDump? - rtmp dump tutorials


How to use rtmpdump? I don't understand it. Can someone post instructions?
Reply With Quote
  #2  
Old 05-04-2009, 12:27 AM
Stream Recorder
 
Posts: n/a
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


In Windows Run Command Prompt, go to the directory with rtmpdump.exe using cd command and run rtmpdump.exe .

rtmpdump basic usage
Code:
rtmpdump -r "rtmp://host/dir/file.flv" -o filename.flv
rtmpdump parameters
Code:
--help|-h               Prints this help screen.
--rtmp|-r url           URL (e.g. rtmp//hotname[:port]/path)
--host|-n hostname      Overrides the hostname in the rtmp url
--port|-c port          Overrides the port in the rtmp url
--protocol|-l           Overrides the protocol in the rtmp url (0 - RTMP, 3 - RTMPE)
--playpath|-y           Overrides the playpath parsed from rtmp url
--swfUrl|-s url         URL to player swf file
--tcUrl|-t url          URL to played stream (default: "rtmp://host[:port]/app")
--pageUrl|-p url        Web URL of played programme
--app|-a app            Name of player used
--swfhash|-w hexstring  SHA256 hash of the decompressed SWF file (32 bytes)
--swfsize|-x num        Size of the decompressed SWF file, required for SWFVerification
--auth|-u string        Authentication string to be appended to the connect string
--flashVer|-f string    Flash version string
--live|-v               Save a live stream, no --resume (seeking) of live strems possible
--flv|-o string         FLV output file name, if the file name is - print stream to stdout
--resume|-e             Resume a partial RTMP download
--timeout|-m num        Timeout connection num seconds 
--buffer|-b             Buffer time in milliseconds, this option makes only sense in stdout mode 
--skip|-k num           Skip num keyframes when looking for last keyframe to resume from. Useful if resume fails

SWF Verification
Download the swf player you want to use for SWFVerification, unzip it using
Code:
$ flasm -x file.swf
It will show the decompressed filesize, use it for --swfsize

Now generate the hash
Code:
$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player 001" file.swf
and use the --swfhash "01234..." option to pass it. e.g.
Code:
$ ./rtmpdump --swfhash "123456..." --swfsize 987...
Reply With Quote
  #3  
Old 05-04-2009, 03:45 AM
jace89 jace89 is offline
Junior Member
 
Join Date: Sep 2008
Posts: 9
jace89 is on a distinguished road
Default

Re: How do you use rtmp dump?


Quote:
Originally Posted by Stream Recorder View Post
Run Command Prompt, go to the directory with rtmpdump.exe using cd command and run rtmpdump.exe .
i know that. Im talking about how can i download a rtmp stream.
Do i need any other programs to find the links or anything.
Reply With Quote
  #4  
Old 05-04-2009, 11:19 AM
Stream Recorder
 
Posts: n/a
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


Yes, you need other programs to find RTMP URLs, find RTMPE stream URLs.

You may also need to find additional parameters. Sometimes you can find them from the source of the web-page. You can also use two additional server programs, rtmpsrv and rtmpsuck that come with rtmpdump 2.1:

rtmpsrv is a stub for a server; it logs the connect and play parameters from a regular client that connects to it. These parameters can then be used with rtmpdump to retrieve a stream.

rtmpsuck is a transparent proxy; it intercepts connections from a client and then makes an outbound connection to the real server. After all handshaking is complete and encryption keys with both sides are negotiated, it records the cleartext stream data into files while relaying the data from the server to the client.
Reply With Quote
  #5  
Old 05-04-2009, 12:50 PM
jace89 jace89 is offline
Junior Member
 
Join Date: Sep 2008
Posts: 9
jace89 is on a distinguished road
Default

Re: How do you use rtmp dump?


Quote:
Originally Posted by Stream Recorder View Post
Yes, you need other programs to find RTMP URLs.
i have the urls now what?

Also i found a new program called flazr
I don't know how to use that either maybe you can help.
Reply With Quote
  #6  
Old 05-04-2009, 03:43 PM
Stream Recorder
 
Posts: n/a
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


Quote:
Originally Posted by jace89 View Post
i have the urls now what?
Tutorial on using rtmpdump:
Quote:
Originally Posted by constantcuriousity.blogspot.com
Today I attended a lecture/demo session on "hacking" various media sites like YouTube, Hulu, last.fm. Essentially it was a practical demonstration of the cat and mouse game hackers play with content pedlars on the internet....

One of the tools mentioned was rtmpdump ...

I decided to compile it myself from the most recent development version. If you're lazy and brave enough to trust compiled binaries and packages from third parties, go to LinuxCentre and install flvstreamer for your operating system. These programs were once one and so far they use the same commands. Read: they work the same.
(Editor's note: flvstreamer doesn't support RTMPE secure streams)

These instrucitons work on Ubuntu 9.10 (karmic) but please be aware things change rapidly so the following might not work forever.

First of all install the tools needed for accessing the code and compilation.
Code:
sudo apt-get install build-essential gcc make subversion libssl0.9.8 libssl-dev libssl0.9.8
Now check out the latest code from the Subversion repository:
Code:
svn co svn://svn.mplayerhq.hu/rtmpdump rtmpdump
If you prefer a stable version, run this instead:
Code:
wget http://rtmpdump.mplayerhq.hu/rtmpdump-1.9.tgz
tar xfz rtmpdump-1.9.tgz
mv rtmpdump-1.9 rtmpdump
I'm sure the impatient are looking forward to completing this ASAP so here's the final step in setting up rtmpdump on your computer:
Code:
cd rtmpdump
make linux
The program now lies in the same folder and you can only run it by telling your shell (like bash) exactly where it is. If you're in the same folder, running it is as simple as ./rtmpdump but ./ is only short for the current folder and it gets expanded to (in my case) /home/jasa/rtmpdump/rtmpdump.

Great! Now we need a media site which uses a Adobe's RTMP server. I think I won't get in trouble if I use VideoLectures.net as an example.

Lets say I'm interested in probability and statistics. And I want to watch these lectures offline, on a train or wherever.

Unfortunately this isn't a straightforward process and quite a bit of work is required. It is derived from a mailing list thread.

I need to see the source code of the web page above, not the rendered output of the web browser. In Firefox press Ctrl+U. Now I need some hard data to pass to rtmpdump. Search for a javascript section which launches the flash video player. For the statistics video this is the interesting section:
Code:
var flashvars = {
     
streamer: "rtmp://oxy.videolectures.net/video",
file: "2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01.flv",
     
height: '288',
autostart: "true",
bufferlength: '5',


image: "http://media.videolectures.net/play.png",
  
id: "FlvPlayer" // last line, no colon ',' !
};
swfobject.embedSWF("http://media.videolectures.net/jw-player/player.swf", "video_embed", "384", "307", "9.0.0", "http://media.videolectures.net/swfobject/expressInstall.swf", flashvars, params, attributes);
Generally searching (Ctrl+F) for flashvars should get you near the required data. The line swfobject.embedSWF(...) causes the video player to load inside your browser and display the correct media. This media rests on a different server than the webpage and I will use rtmpdump to connect to that server instead of the flash player. Now Adobe has put some roadblocks into the process but lucky for me I have a flying car.

I'll just give you the final command now and explain later!
Code:
./rtmpdump -r rtmp://oxy.videolectures.net/video/ -y 2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01 -a video -s http://media.videolectures.net/jw-player/player.swf -w ffa4f0c469cfbe1f449ec42462e8c3ba16600f5a4b311980bb626893ca81f388 -x 53910 -o test.flv
The -r switch requires an argument which is the URL of the media server and is found in the variable streamer in the JavaScript source code above.

The -y switch needs the playpath and that is found in the JavaScript variable file, (minus the extension .flv or .mp4).

The -a switch is the name of the used player and usually automatically inferred from the URL. Defining it manually works by copying the part after the server name in the streamer.

The -s switch defines the flash video player which normally connects to the media server. In the example it is the first argument of the function embedSWF.

Here's where things get even more complicated. The media server wants some extra data about this player, specifically its sha256 hash-sum and size in bytes. So lets get them:
Code:
wget http://media.videolectures.net/jw-player/player.swf
sha256sum player.swf
ls -l player.swf
Supply the sha356sum to switch -w and the file size to the -x switch.

Anything else? Yeah, I need to specify where to save the video with -o.

Run the longest command ever and get yourself a beer (you've earned it)!

I admit that doing this for every video gets time consuming but unfortunately it is a procedure specific to every site. Look at the mailing list thread link again to see different javascript:
Quote:
For anyone curious, I found that wisevid is using plain RTMP with SWF
verification.

This invocation works for me:

Code:
rtmpdump -r rtmp://stream1.wisevid.com/flvs -s http://wisevid.com/player.swf -y 82330 -a flvs -z -o xxx -w e09b300f1f1e2cc75878ab11258ba4c17f28a315ea9df26f67b37c7f59332737 -x 110543
Starting from this web page
Code:
http://www.wisevid.com/view_video.php?viewkey=0052slrjt6n74lz84848
The relevant information from that page is in this bit of javascript

Code:
<script type="text/javascript">
var player = null;
function playerReady(thePlayer) { player = window.document[thePlayer.id]; }
var so = new SWFObject('player.swf','mpl','570','340','9');
so.addParam('allowscriptaccess','always');
so.addParam('allowfullscreen','true');
so.addParam('wmode','transparent');
so.addParam('flashvars','&file=82330.flv&streamer=rtmp://stream1.wisevid.com/flvs&skin=http://wisevid.com/modieus1.swf&stretching=exactfit&autostart=true&abouttext=WiseVid.com&aboutlink=http://wisevid.com');
so.write('player');
</script>
Reply With Quote
  #7  
Old 01-15-2010, 07:51 AM
Stream Recorder
 
Posts: n/a
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


rtmpdump 2.1 parameters
Code:
--help|-h               Prints this help screen.
--rtmp|-r url           URL (e.g. rtmp//hotname[:port]/path)
--host|-n hostname      Overrides the hostname in the rtmp url
--port|-c port          Overrides the port in the rtmp url
--socks|-S host:port    Use the specified SOCKS proxy
--protocol|-l           Overrides the protocol in the rtmp url (0 - RTMP, 3 - RTMPE)
--playpath|-y           Overrides the playpath parsed from rtmp url
--swfUrl|-s url         URL to player swf file
--tcUrl|-t url          URL to played stream (default: "rtmp://host[:port]/app")
--pageUrl|-p url        Web URL of played programme
--app|-a app            Name of player used
--swfhash|-w hexstring  SHA256 hash of the decompressed SWF file (32 bytes)
--swfsize|-x num        Size of the decompressed SWF file, required for SWFVerification
--swfVfy|-W url         URL to player swf file, compute hash/size automatically
--auth|-u string        Authentication string to be appended to the connect string
--flashVer|-f string    Flash version string (default: "LNX 10,0,22,87")
--live|-v               Save a live stream, no --resume (seeking) of live streams possible
--subscribe|-d string   Stream name to subscribe to (otherwise defaults to playpath if live is specifed)
--flv|-o string         FLV output file name, if the file name is - print stream to stdout
--resume|-e             Resume a partial RTMP download
--timeout|-m num        Timeout connection num seconds (default: 120)
--start|-A num          Start at num seconds into stream (not valid when using --live)
--stop|-B num           Stop at num seconds into stream
--token|-T key          Key for SecureToken response
--hashes|-#             Display progress with hashes, not with the byte counter
--buffer|-b             Buffer time in milliseconds (default: 36000000), this option makes only sense in stdout mode (-o -)
--skip|-k num           Skip num keyframes when looking for last keyframe to resume from. Useful if resume fails (default: 0)

--quiet|-q              Supresses all command output.
--verbose|-V            Verbose command output.
--debug|-z              Debug level command output.
If you don't pass parameters for swfUrl, pageUrl, app or auth these propertiews will not be included in the connect packet.

SWF Verification and rtmpdump 2.1
Unlike previous versions, rtmpdump 2.1 can compute hash/size of an SWF player automatically. You don't need to download the player, unpack it and compute its hash anymore. Just provide the URL to the SWF player by using the -W parameter:
Code:
--swfVfy|-W url         URL to player swf file, compute hash/size automatically
Reply With Quote
  #8  
Old 03-10-2010, 04:48 PM
hyc hyc is offline
RTMPdump team
 
Join Date: Dec 2009
Posts: 169
hyc will become famous soon enoughhyc will become famous soon enough
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


rtmpdump 2.2 now includes a formatted manual page...

RTMPDUMP(1)
RTMPDUMP(1)

NAME
rtmpdump - RTMP streaming media client
SYNOPSIS
rtmpdump -r url [-n hostname] [-c port] [-l protocol] [-S host:port] [-a app] [-t tcUrl] [-p pageUrl] [-s swfUrl] [-f flashVer] [-u auth] [-C conndata] [-y playpath] [-v] [-d subscription] [-e] [-k skip] [-A start] [-B stop] [-b buffer] [-m timeout] [-T key] [-w swfHash] [-x swfSize] [-W swfUrl] [-X swfAge] [-o output] [-#] [-q] [-V] [-z]
rtmpdump -h
DESCRIPTION
rtmpdump is a tool for dumping media content streamed over RTMP.

rtmpdump makes a connection to the specified RTMP server and plays the media specified by the given url. The url should be of the form
rtmp[t][e]://hostname[:port][/app[/playpath]]
Plain rtmp, as well as tunneled and encrypted sessions are supported.
OPTIONS

Network Parameters
These options define how to connect to the media server.

--rtmp -r url
URL of the server and media content.
--host -n hostname
Overrides the hostname in the RTMP URL.
--port -c port
Overrides the port number in the RTMP URL.
--protocol -l number
Overrides the protocol in the RTMP URL.

0 = rtmp
1 = rtmpt
2 = rtmpe
3 = rtmpte
5 = rtmps
--socks -S host:port
Use the specified SOCKS4 proxy.
Connection Parameters
These options define the content of the RTMP Connect request packet. If correct values are not provided, the media server will reject the connection attempt.

--app -a app
Name of application to connect to on the RTMP server. Overrides the app in the RTMP URL. Sometimes the rtmpdump URL parser cannot determine the app name automatically, so it must be given explicitly using this option.
--tcUrl -t url
URL of the target stream. Defaults to rtmp[e]://host[:port]/app/playpath.
--pageUrl -p url
URL of the web page in which the media was embedded. By default no value will be sent.
--swfUrl -s url
URL of the SWF player for the media. By default no value will be sent.
--flashVer -f version
Version of the Flash plugin used to run the SWF player. The default is "LNX 10,0,32,18".
--auth -a string
An authentication string to be appended to the Connect message. Using this option will append a Boolean TRUE and then the specified string. This option is only used by some particular servers and is deprecated. The more general --conn option should be used instead.
--conn -C type:data
Append arbitrary AMF data to the Connect message. The type must be B for Boolean, N for number, S for string, O for object, or Z for null. For Booleans the data must be either 0 or 1 for FALSE or TRUE, respectively. Likewise for objects the data must be 0 or 1 to end or begin an object, respectively. Data items in subobjects may be named, by prefixing the type with 'N' and specifying the name before the value, e.g. NB:myFlag:1. This option may be used multiple times to construct arbitrary AMF sequences. E.g.

-C B:1 -C S:authMe -C O:1 -C NN:code:1.23 -C NS:flag:ok -C O:0
Session Parameters
These options take effect after the Connect request has succeeded.

--playpath -y path
Overrides the playpath parsed from the RTMP URL. Sometimes the rtmpdump URL parser cannot determine the correct playpath automatically, so it must be given explicitly using this option.
--live -v
Specify that the media is a live stream. No resuming or seeking in live streams is possible.
--subscribe -d stream
Name of live stream to subscribe to. Defaults to playpath.
--resume -e
Resume an incomplete RTMP download.
--skip -k num
Skip num keyframes when looking for the last keyframe from which to resume. This may be useful if a regular attempt to resume fails. The default is 0.
--start -A num
Start at num seconds into the stream. Not valid for live streams.
--stop -B num
Stop at num seconds into the stream.
--buffer -b num
Set buffer time to num milliseconds. The default is 36000000.
--timeout -m num
Timeout the session after num seconds without receiving any data from the server. The default is 120.
Security Parameters
These options handle additional authentication requests from the server.

--token -T key
Key for SecureToken response, used if the server requires SecureToken authentication.
--swfhash -w hexstring
SHA256 hash of the decompressed SWF file. This option may be needed if the server uses SWF Verification, but see the --swfVfy option below. The hash is 32 bytes, and must be given in hexadecimal. The --swfsize option must always be used with this option.
--swfsize -x num
Size of the decompressed SWF file. This option may be needed if the server uses SWF Verification, but see the --swfVfy option below. The --swfhash option must always be used with this option.
--swfVfy -W url
URL of the SWF player for this media. This option replaces all three of the --swfUrl, --swfhash, and --swfsize options. When this option is used, the SWF player is retrieved from the specified URL and the hash and size are computed automatically. Also the information is cached in a .swfinfo file in the user's home directory, so that it doesn't need to be retrieved and recalculated every time rtmpdump is run. The .swfinfo file records the URL, the time it was fetched, the modification timestamp of the SWF file, its size, and its hash. By default, the cached info will be used for 30 days before re-checking.
--swfAge -X days
Specify how many days to use the cached SWF info before re-checking. Use 0 to always check the SWF URL. Note that if the check shows that the SWF file has the same modification timestamp as before, it will not be retrieved again.
Miscellaneous

--flv -o output
Specify the output file name. If the name is - or is omitted, the stream is written to stdout.
--hashes -#
Display streaming progress with a hash mark for each 1% of progress, instead of a byte counter.
--quiet -q
Suppress all command output.
--verbose -V
Verbose command output.
--debug -z
Debug level output. Extremely verbose, including hex dumps of all packet data.
--help -h
Print a summary of command options.
EXIT STATUS
0
Successful program execution.
1
Unrecoverable error.
2
Incomplete transfer, resuming may get further.
ENVIRONMENT
HOME
The value of $HOME is used as the location for the .swfinfo file.
FILES
$HOME/.swfinfo
Cache of SWF Verification information
SEE ALSO
rtmpgw(8)
AUTHORS
Andrej Stepanchuk, Howard Chu, The Flvstreamer Team
<http://rtmpdump.mplayerhq.hu>
RTMPDump v2.2a
2010-03-10
RTMPDUMP(1)
Reply With Quote
  #9  
Old 10-27-2010, 02:33 PM
Cristianovic Cristianovic is offline
Junior Member
 
Join Date: Oct 2010
Posts: 1
Cristianovic is on a distinguished road
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


It is said that the rtmpdump can also be used for Mac, but I've only seen for windows and for Android. Is the other one for mac? How to use it as I'm not quite familiar with the Mac command

Tks
Reply With Quote
  #10  
Old 07-29-2012, 07:47 AM
PayNow PayNow is offline
Member
 
Join Date: Jun 2012
Posts: 72
PayNow is on a distinguished road
Default

Re: How do you use rtmp dump (rtmpdump tutorials)?


how to give a end to a livestream ? ctrl + v ?
Reply With Quote
Reply Post New Thread
Tags: , , ,



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -6. The time now is 12:20 PM.


Powered by All-streaming-media.com; 2006-2011
vB forum hacked with Zoints add-ons