Versions RTMPdump : Différence entre versions

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

Version actuelle en date du 25 avril 2014 à 12:19

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 encryptés (AdobeHDS). 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