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 10-28-2010, 02:29 AM
any ANONYMOUS forum user any ANONYMOUS forum user is offline
any user of the forum who preferred to post anonymously
 
Join Date: Aug 2011
Location: Server of stream-recorder.com
Posts: 211
any ANONYMOUS forum user is on a distinguished road
Default

How to use rtmpdump with rtmpsrv in Linux


rtmpsrv allows you to get all parameters that are required by rtmpdump. You don't need packet sniffers or complex analysis to use rtmpdump when using rtmpsrv. The only problem you may have is when a video consists of several segments (chapters). In such cases just skip to the next chapter.

How to compile rtmpdump with rtmpsrv and rtmpsuck in Linux:
Code:
svn checkout svn://svn.mplayerhq.hu/rtmpdump/trunk rtmpdump
cd rtmpdump
make linux
How to use rtmpsrv in Ubuntu Linux:
Configure your firewall to redirect RTMP traffic through a local port:
Code:
sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT
Then just start rtmpsrv:
Code:
./rtmpsrv
rtmpsrv will be analyzing data from your local port. It will output an rtmpdump command that can be used to download videos.

When you get the rtmpdump command, press CTRL+C. This will stop rtmpsrv.

You may also delete the firewall redirect created above:
Code:
sudo iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT
Since rtmpsrv produces rtmpdump command, the only thing you need to do is copy-paste it to download the video. Simple as it is

Note: If you don't need the latest version, you can install rtmpdump, rtmpsrv, rtmpsuck in Ubuntu by running the following in the terminal
Code:
sudo apt-get install rtmpdump
Then you don't need to navigate to the rtmpdump directory to launch rtmpdump or rtmpsrv or rtmpsuck.
Reply With Quote
  #2  
Old 01-01-2011, 11:00 AM
notty notty is offline
Junior Member
 
Join Date: Dec 2010
Posts: 1
notty is on a distinguished road
Thumbs up

Re: How to use rtmpdump with rtmpsrv in Linux


I can't thank you enough. This guide worked flawlessly. No more CooJah in virtual box for this guy.
Reply With Quote
  #3  
Old 04-06-2011, 05:03 AM
IKnowNothing IKnowNothing is offline
Junior Member
 
Join Date: Mar 2011
Posts: 11
IKnowNothing is on a distinguished road
Default

Re: How to use rtmpdump with rtmpsrv in Linux


Thanks for the instructions they worked - to a point at least.

I can get rtmpsrv to give me a command but when I try run it I get a failure due to a type 9 header.

Any ideas if there is a workaround?
Reply With Quote
  #4  
Old 04-07-2011, 12:19 AM
Stream Recorder
 
Posts: n/a
Default

Re: How to use rtmpdump with rtmpsrv in Linux


Quote:
Originally Posted by IKnowNothing View Post
Thanks for the instructions they worked - to a point at least.

I can get rtmpsrv to give me a command but when I try run it I get a failure due to a type 9 header.

Any ideas if there is a workaround?
rtmpdump does not start & error: HandShake: Type mismatch: client sent 6, server answered 9.
Reply With Quote
  #5  
Old 05-05-2011, 11:58 PM
sam4037 sam4037 is offline
Howard FTW
 
Join Date: May 2010
Posts: 34
sam4037 is on a distinguished road
Thumbs up

Re: How to use rtmpdump with rtmpsrv in Linux


This looks rather tasty and simple most of all! Time to get myself acquainted with Linux! Will start off with the Desktop edition of Ubuntu as suggested by Stream Recorder in this post.
Reply With Quote
  #6  
Old 09-19-2011, 11:08 PM
chenxiaolong chenxiaolong is offline
Junior Member
 
Join Date: Sep 2011
Posts: 2
chenxiaolong is on a distinguished road
Default

How to dump RTMP streams under Linux


EDIT: I assume that everyone who has the bandwith to download RTMP streams has the bandwidth to view full images, so I didn't link to thumbnails. : )

So, in this tutorial, I'll show you how to download RTMP streams under Linux. In this tutorial, I'll going to be dumping a song from Napster (specifically, this one: hxxp://music.napster.com/london-symphony-orchestra,-antal-dor%C3%A1ti-music/album/enesco%3A-roumanian-rhapsody-no.1-_-liszt%3A-hungarian-rhapsodies-nos.1-6/12181167).

The first thing to do is to install RTMPdump and gdb. You can do this with the package manager for your distro:

Code:
#Arch Linux:
pacman -Sy rtmpdump gdb
#Ubuntu and Debian
apt-get install rtmpdump gdb
#Fedora (with ATRpms repository: http://atrpms.net)
yum install rtmpdump gdb
#Mandriva and Mageia
urpmi rtmpdump gdb
If your distro doesn't provide binary packages, you will need to compile from source (Gentoo, Slackware, etc.).

We are going to be using rtmpsrv to generate the command needed to download the file. For rtmpsrv to work, you need to redirect all outgoing TCP connections to port 1935 on localhost. I suggest closing all unnecessary tabs and downloading programs. It will slow down rtmpsrv. Use iptables to redirect the connections. As root, run:

Code:
iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT
Then run as a normal user:

Code:
rtmpsrv
Before continuing, you should kill all flash player processes. It will make finding the PID easier later. To do that, run:

Code:
ps aux | grep flash
to list processes containing the string "flash" in the name. And then kill the processes by running: (replace 0000 with the PID. It's the second column of the previous command)

Code:
kill 0000
Now, browse to the page with the media file and start playing it. At this point, rtmpsrv has already generated the command for download the RTMP stream. The reason rtmpsrv couldn't automatically download the stream is because we told iptables to redirect ALL TCP connections to localhost on port 1935. An RTMP connection is a TCP connection, so essentially, it's trying to download from itself. So now, we have to remove that iptables rule. To do that, run:

Code:
iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT
(Notice that the iptables command uses "-D" instead of "-A". "-A" means add rule and "-D" means delete rule )

Now, you can close rtmpsrv by pressing Control C and then copying and pasting that huge command starting with "rtmpdump -r ..." to download the stream.

What if that command fails?

Well, in this case we can dump the memory of the flash player process and search for the "rtmp" URI. Run:

Code:
ps aux | grep flash
to find the PID (second column) of the process:



Now attach to the process with gdb (a free debugger):



A lot of "Loading symbols" messages will fly by, and then you'll see this:



Now type in "gcore" to perform a core memory dump of the process. It will create a file called core.PID.





Exit gdb by typing "quit." Type in "y" when it asks if you want to detach from the process. Now, open the core dump in a hex editor. I recommend using Okteta if you use KDE since it handle large files very well. The core dump will be at least 100MB. So, open the file in a hex editor:



and search for the string (in Unicode or UTF-8) "rtmp://":



Voila! There's the RTMP stream:



Then, run the command generated by rtmpsrv again, but this time, replacing the generated stream URI with the one you found:



Success! But since I can't post 11 images: http://i.imgur.com/M0acF.png

EDIT: Of course this all means nothing without proof: http://i.imgur.com/pqP6z.png

Hope this helps!

Last edited by chenxiaolong : 09-20-2011 at 12:45 AM. Reason: didn't finish post
Reply With Quote
  #7  
Old 09-20-2011, 12:07 AM
chenxiaolong chenxiaolong is offline
Junior Member
 
Join Date: Sep 2011
Posts: 2
chenxiaolong is on a distinguished road
Default

Re: How to dump RTMP streams under Linux


Works with RTMPE too! No more using Windows for downloading RTMPE!!

Screenshot:
Reply With Quote
  #8  
Old 09-22-2011, 02:35 PM
any ANONYMOUS forum user any ANONYMOUS forum user is offline
any user of the forum who preferred to post anonymously
 
Join Date: Aug 2011
Location: Server of stream-recorder.com
Posts: 211
any ANONYMOUS forum user is on a distinguished road
Default

Re: How to dump RTMP streams under Linux


Quote:
Originally Posted by chenxiaolong View Post
If your distro doesn't provide binary packages, you will need to compile from source (Gentoo, Slackware, etc.).
It is better to compile rtmpdump, rtmpsrv, rtmpsuck from the git, because the versions from the distro lack many updates.
Reply With Quote
  #9  
Old 09-22-2011, 02:50 PM
sam4037 sam4037 is offline
Howard FTW
 
Join Date: May 2010
Posts: 34
sam4037 is on a distinguished road
Default

Re: How to dump RTMP streams under Linux


Quote:
Originally Posted by chenxiaolong View Post
So, in this tutorial...
Rather tasty tutorial there. THANKS!

Can you let me know please what Linux that is that you are running?? What version or name and where to get it? It looks pretty slick!

Also, can I ask you some questions about the tutorial once I got the same Linux as you?

Thanks again! This whole iptables will probably be THE reason for me to not only test but actually start running on a Linux OS.
Reply With Quote
  #10  
Old 09-22-2011, 11:10 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 to use rtmpdump with rtmpsrv in Linux


You're an ***.

If you're on Linux then follow the directions in the README file for using iptables with a proxy user. None of this gdb / coredump / hex edit crap is necessary.
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 08:09 PM.


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