Versions RTMPdump
RTMPDump rtmpdump est un toolkit pour les flux RTMP sous toutes leurs formes à savoir : rtmp://, rtmpt://, rtmpe://, rtmpte://, et rtmps://. Édité sous licence GPL, le projet a été stoppé pour satisfaire aux exigences d'Adobe qui ne souhaitait pas que puisse être disponible un moyen de télécharger des flux RTMP Deux forks du programme ont pris la suite à savoir : flvstreamer et xVideoServiceThief
- Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2
- Copyright 2009-2011 Howard Chu
- Copyright 2009 The Flvstreamer Team
- http://rtmpdump.mplayerhq.hu/
20 July 2011
- add NetStream.Authenticate.UsherToken for Justin.tv
11 July 2011, v2.4
- add RTMPE type 9 handshake support
30 June 2010, v2.3
- fix RC4 cleanup for GnuTLS/gcrypt
- declare RTMP_Write buf as const
- cleanup Makefile
- replace all use of bool with int
- add RTMP_Socket() and RTMP_Pause() APIs
- add ping/pong message handling
- add basic shared library support
- fix RTMP_ParseURL extension skipping
- fix bad switch() from -r477 in RTMP_Read
- fix rtmpsrv to always use .flv extension on output
- fix crash on socket failure while RTMP_Read() is reading header
- fix RTMP_ReadPacket signed/unsigned chars for m_nChannel
- license cleanup, use current FSF address
- fix RTMP_SetupURL tcUrl generation
- ignore multiple spaces between URL options
- only send CheckBW request once per session
29 May 2010, v2.2e
- port to Xbox
- add explicit URL scheme for rtmpts
- fix rtmpt clientID NUL-termination
- use BufferEmpty trick in rtmpdump but not by default in librtmp
- add librtmp manpage
- fix RTMP_Read, return 0 on EOF, not -1
- change RTMP_Read to return 1 packet at a time, fix buffer mgmt
- fix request/result queue, fix server compatibility for Publishing
- add RTMP_EnableWrite to enable Publishing
29 April 2010, v2.2d
- add RTMP_Alloc, RTMP_Free APIs
- add optional support for polarssl instead of OpenSSL
- add option to build crypto support without SSL/TLS
- tweak handshake offset checking
- add RTMP set_playlist command
- check for (and fix) broken timestamps in FLV packets
- fix tcUrl and playpath parsing in rtmpsrv and rtmpsuck
- change internal boolean flags to bitmasks
14 April 2010, v2.2c
- internal restructuring, fix #undef CRYPTO builds
- add RTMP_SetupURL, RTMP_SetOpt APIs
- add logging callback
22 March 2010, v2.2b
- fix v2.2a crashes in rtmpsrv/rtmpsuck
- fix v2.2a .swfinfo location on Windows
- fix typo for --auth parameter in manpages
- add FP10 handshake support for rtmpsrv/rtmpsuck
- avoid GNUMake vs BSDMake incompatibilities
- add pkgconfig file for librtmp
- more library cleanup
20 March 2010, v2.2a
- fix C++ compatibility for librtmp
- misc library restructuring
- add client support for tunneling: rtmpt, rtmpte, rtmps
- fix rtmpdump/rtmpgw FLV header dataType
- implement RTMP_Read() and RTMP_Write() to simplify library use
- fix SendPacket timestamps
- add optional support for GnuTLS/Gcrypt instead of OpenSSL
- use $HOMEPATH on Windows instead of $HOME for .swfinfo
4 March 2010, v2.2
- move RTMP code into library librtmp
- relicense RTMP code under LGPL v2.1
- add rtmpdump manpage
- fix AMF_LONG_STRING handling
- more FlashPlayer 10 handshake support
- in rtmpsrv fix Play Start/Stop messages
- rename "streams" program to "rtmpgw"
20 February 2010, v2.1d
- extend .swfinfo file format, add --swfAge rtmpdump parameter old file should be replaced or manually updated: copy the "date:" line and rename it to "ctim:"
- fix MacOSX builds - just use "make posix" now for all Unix-derived systems
- more explicit error checks in HTTP_get()
- in rtmpsrv spawn rtmpdump automatically
- fix bug in retry/resume of audio-only streams
- other minor misc. fixes
9 January 2010, v2.1c
- cleanup rtmpsrv output
- fix crash in 2.1b hashswf
- fix parseurl to url-decode PlayPath
- fix parseurl to recognize extensions followed by URL params
- fix Makefile, inadvertently dropped 'v' from version string
- in rtmpdump try Reconnect if ToggleStream doesn't work on timeouts
- in rtmpsuck use chunk-based I/O for better latency
- in rtmpsuck support lists of streams
- in rtmpsuck use raw client connect packet to workaround unsupported features
- support arbitrary AMF data appended to connect requests
4 January 2010, v2.1b
- fix url matching in .swfinfo lookup
- fix resume parsing in rtmpdump
- minor code cleanup (CRYPTO dependencies, logging)
- add getStreamLength recognition to rtmpsrv
- add close processing in rtmpsuck
1 January 2010, v2.1a
- fix socket receive timeouts for WIN32
- add streams description to README
29 December 2009, v2.1
- AMF cleanup: bounds checking for all encoders, moved AMF_EncodeNamed* from rtmp.c
- added SecureToken support
- added automatic SWF hash calculation
- added server-side handshake processing
- added rtmpsrv stub server example
- added rtmpsuck proxy server
- tweaks for logging
- renamed more functions to cleanup namespace for library use
- tweaks for server operation: objectEncoding, chunksize changes
16 December 2009, v2.0
- rewrote everything else in C, reorganized to make it usable again as a library
- fixed more portability bugs
- plugged memory leaks
2 December 2009, v1.9a
- fix auth string typo
- handle FCUnsubscribe message
- don't try retry on live streams
- SIGPIPE portability fix
- remove "not supported" comment for RTMPE
13 November 2009, v1.9
- Handle more signals to reduce risk of unresumable/corrupted partially streamed files
- Fixed >2GB file handling
- Added --hashes option for a hash progress bar instead of byte counter
- Fix to allow win32 to use binary mode on stdout.
- Added auto-unpause for buffer-limited streams
1 November 2009, v1.7
- added --subscribe option for subscribing to a stream
- added --start / --stop options for specifying endpoints of a stream
- added --debug / --quiet / --verbose options for controlling output
- added SOCKS4 support (by Monsieur Video)
- restructured to support auto-restart of timed-out streams
- rewritten byteswapping, works on all platforms
- fixed errors in command / result parsing
- support functions rewritten in C to avoid g++ compiler bugs on ARM
- support for 65600 channels instead of just 64
- fixed signature buffer overruns
17 May 2009, v1.6
- big endian alignment fix, should fix sparc64 and others
- moved timestamp handling into RTMP protocol innings, all packets have absolute timestamps now, when seeking the stream will start with timestamp 0 even if seeked to a later position!
- fixed a timestamp bug (should fix async audio/video problems)
30 Apr 2009, v1.5a
- fixed host name resolution bug (caused unexpected crashes if DNS resolution was not available)
- also using the hostname in tcUrl instead of the IP turns out to give much better results
27 Apr 2009, v1.5
- RTMPE support (tested on Adobe 3.0.2,3.0.3,3.5.1, Wowza)
- SWFVerification (tested on Adobe 3.0.2,3.0.3,3.5.1)
- added AMF3 parsing support (experimental feauture, only some primitives, no references)
- added -o - option which allows the stream to be dumped to stdout (debug/error messages go to stderr)
- added --live option to enable download of live streams
- added support for (Free)BSD and Mac (untested, so might need more fixing, especially for PPC/sparc64)
- fixed a bug in url parsing
- added a useful application: streams, it will start a streaming server and using a request like http://localhost/?r=rtmp://.... you can restream the content to your player over http
11 Mar 2009, v1.4
- fixed resume bug: when the server switches between audio/video packets and FLV chunk packets (why should a server want to do that? some actually do!) and rtmpdump was invoked with --resume the keyframe check prevented rtmpdump from continuing
- fixed endianness
- added win32 and arm support (you can cross-compile it onto your Windows box or even PDA)
- removed libboost dependency, written a small parser for rtmp urls, but it is more of a heuristic one since the rtmp urls can be ambigous in some circumstances. The best way is to supply all prameters using the override options like --play, --app, etc.
- fixed stream ids (from XBMC tree)
19 Jan 2009, v1.3b
- fixed segfault on Mac OS/BSDdue to times(0)
- Makefile rewritten
16 Jan 2009, v1.3a
- fixed a bug introduced in v1.3 (wrong report bytes count), downloads won't hang anymore
10 Jan 2009, v1.3
- fixed audio only streams (rtmpdump now recognizes the stream and writes a correct tag, audio, video, audio+video)
- improved resume function to wait till a the seek is executed by the server. The server might send playback data before seeking, so we ignore up to e.g. 50 frames and keep waiting for a keyframe with a timestamp of zero.
- nevertheless resuming does not always work since the server sometimes doesn't resend the keyframe, seeking in flash is unreliable
02 Jan 2009, v1.2a
- fixed non-standard rtmp urls (including characters + < > ; )
- added small script get_hulu which can download hulu.com streams (US only) (many thanks to Richard Ablewhite for the help with hulu.com)
01 Jan 2009, v1.2:
- fixed FLV streams (support for resuming extended)
- fixed hanging download at the end
- several minor bugfixes
- changed parameter behaviour: not supplied parameters are omitted from the connect packet, --auth is introduced (was automatically obtained from url before, but it is possible to have an auth in the tcurl/rtmp url only without an additional encoded string in the connect packet)
28 Dec 2008, v1.1a:
- fixed warnings, added -Wall to Makefile
28 Dec 2008, v1.1:
- fixed stucking downloads (the buffer time is set to the duration now, so the server doesn't wait till the buffer is emptied
- added a --resume option to coninue incomplete downloads
- added support for AMF_DATE (experimental, no stream to test so far)
- fixed AMF parsing and several small bugs (works on 64bit platforms now)
24 Dec 2008, v1.0:
- First release