|
| 1 | +RTMPDump |
| 2 | +Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2 |
| 3 | +Copyright 2009-2011 Howard Chu |
| 4 | +Copyright 2009 The Flvstreamer Team |
| 5 | +http://rtmpdump.mplayerhq.hu/ |
| 6 | + |
| 7 | +20 July 2011 |
| 8 | +- add NetStream.Authenticate.UsherToken for Justin.tv |
| 9 | + |
| 10 | +11 July 2011, v2.4 |
| 11 | +- add RTMPE type 9 handshake support |
| 12 | + |
| 13 | +30 June 2010, v2.3 |
| 14 | +- fix RC4 cleanup for GnuTLS/gcrypt |
| 15 | +- declare RTMP_Write buf as const |
| 16 | +- cleanup Makefile |
| 17 | +- replace all use of bool with int |
| 18 | +- add RTMP_Socket() and RTMP_Pause() APIs |
| 19 | +- add ping/pong message handling |
| 20 | +- add basic shared library support |
| 21 | +- fix RTMP_ParseURL extension skipping |
| 22 | +- fix bad switch() from -r477 in RTMP_Read |
| 23 | +- fix rtmpsrv to always use .flv extension on output |
| 24 | +- fix crash on socket failure while RTMP_Read() is reading header |
| 25 | +- fix RTMP_ReadPacket signed/unsigned chars for m_nChannel |
| 26 | +- license cleanup, use current FSF address |
| 27 | +- fix RTMP_SetupURL tcUrl generation |
| 28 | +- ignore multiple spaces between URL options |
| 29 | +- only send CheckBW request once per session |
| 30 | + |
| 31 | +29 May 2010, v2.2e |
| 32 | +- port to Xbox |
| 33 | +- add explicit URL scheme for rtmpts |
| 34 | +- fix rtmpt clientID NUL-termination |
| 35 | +- use BufferEmpty trick in rtmpdump but not by default in librtmp |
| 36 | +- add librtmp manpage |
| 37 | +- fix RTMP_Read, return 0 on EOF, not -1 |
| 38 | +- change RTMP_Read to return 1 packet at a time, fix buffer mgmt |
| 39 | +- fix request/result queue, fix server compatibility for Publishing |
| 40 | +- add RTMP_EnableWrite to enable Publishing |
| 41 | + |
| 42 | +29 April 2010, v2.2d |
| 43 | +- add RTMP_Alloc, RTMP_Free APIs |
| 44 | +- add optional support for polarssl instead of OpenSSL |
| 45 | +- add option to build crypto support without SSL/TLS |
| 46 | +- tweak handshake offset checking |
| 47 | +- add RTMP set_playlist command |
| 48 | +- check for (and fix) broken timestamps in FLV packets |
| 49 | +- fix tcUrl and playpath parsing in rtmpsrv and rtmpsuck |
| 50 | +- change internal boolean flags to bitmasks |
| 51 | + |
| 52 | +14 April 2010, v2.2c |
| 53 | +- internal restructuring, fix #undef CRYPTO builds |
| 54 | +- add RTMP_SetupURL, RTMP_SetOpt APIs |
| 55 | +- add logging callback |
| 56 | + |
| 57 | +22 March 2010, v2.2b |
| 58 | +- fix v2.2a crashes in rtmpsrv/rtmpsuck |
| 59 | +- fix v2.2a .swfinfo location on Windows |
| 60 | +- fix typo for --auth parameter in manpages |
| 61 | +- add FP10 handshake support for rtmpsrv/rtmpsuck |
| 62 | +- avoid GNUMake vs BSDMake incompatibilities |
| 63 | +- add pkgconfig file for librtmp |
| 64 | +- more library cleanup |
| 65 | + |
| 66 | +20 March 2010, v2.2a |
| 67 | +- fix C++ compatibility for librtmp |
| 68 | +- misc library restructuring |
| 69 | +- add client support for tunneling: rtmpt, rtmpte, rtmps |
| 70 | +- fix rtmpdump/rtmpgw FLV header dataType |
| 71 | +- implement RTMP_Read() and RTMP_Write() to simplify library use |
| 72 | +- fix SendPacket timestamps |
| 73 | +- add optional support for GnuTLS/Gcrypt instead of OpenSSL |
| 74 | +- use $HOMEPATH on Windows instead of $HOME for .swfinfo |
| 75 | + |
| 76 | +4 March 2010, v2.2 |
| 77 | +- move RTMP code into library librtmp |
| 78 | +- relicense RTMP code under LGPL v2.1 |
| 79 | +- add rtmpdump manpage |
| 80 | +- fix AMF_LONG_STRING handling |
| 81 | +- more FlashPlayer 10 handshake support |
| 82 | +- in rtmpsrv fix Play Start/Stop messages |
| 83 | +- rename "streams" program to "rtmpgw" |
| 84 | + |
| 85 | +20 February 2010, v2.1d |
| 86 | +- extend .swfinfo file format, add --swfAge rtmpdump parameter |
| 87 | + old file should be replaced or manually updated: copy the |
| 88 | + "date:" line and rename it to "ctim:" |
| 89 | + |
| 90 | +- fix MacOSX builds - just use "make posix" now for all Unix-derived systems |
| 91 | +- more explicit error checks in HTTP_get() |
| 92 | +- in rtmpsrv spawn rtmpdump automatically |
| 93 | +- fix bug in retry/resume of audio-only streams |
| 94 | +- other minor misc. fixes |
| 95 | + |
| 96 | +9 January 2010, v2.1c |
| 97 | +- cleanup rtmpsrv output |
| 98 | +- fix crash in 2.1b hashswf |
| 99 | +- fix parseurl to url-decode PlayPath |
| 100 | +- fix parseurl to recognize extensions followed by URL params |
| 101 | +- fix Makefile, inadvertently dropped 'v' from version string |
| 102 | +- in rtmpdump try Reconnect if ToggleStream doesn't work on timeouts |
| 103 | +- in rtmpsuck use chunk-based I/O for better latency |
| 104 | +- in rtmpsuck support lists of streams |
| 105 | +- in rtmpsuck use raw client connect packet to workaround unsupported features |
| 106 | +- support arbitrary AMF data appended to connect requests |
| 107 | + |
| 108 | +4 January 2010, v2.1b |
| 109 | +- fix url matching in .swfinfo lookup |
| 110 | +- fix resume parsing in rtmpdump |
| 111 | +- minor code cleanup (CRYPTO dependencies, logging) |
| 112 | +- add getStreamLength recognition to rtmpsrv |
| 113 | +- add close processing in rtmpsuck |
| 114 | + |
| 115 | +1 January 2010, v2.1a |
| 116 | +- fix socket receive timeouts for WIN32 |
| 117 | +- add streams description to README |
| 118 | + |
| 119 | +29 December 2009, v2.1 |
| 120 | +- AMF cleanup: bounds checking for all encoders, moved AMF_EncodeNamed* from rtmp.c |
| 121 | +- added SecureToken support |
| 122 | +- added automatic SWF hash calculation |
| 123 | +- added server-side handshake processing |
| 124 | +- added rtmpsrv stub server example |
| 125 | +- added rtmpsuck proxy server |
| 126 | +- tweaks for logging |
| 127 | +- renamed more functions to cleanup namespace for library use |
| 128 | +- tweaks for server operation: objectEncoding, chunksize changes |
| 129 | + |
| 130 | +16 December 2009, v2.0 |
| 131 | +- rewrote everything else in C, reorganized to make it usable again as a library |
| 132 | +- fixed more portability bugs |
| 133 | +- plugged memory leaks |
| 134 | + |
| 135 | +2 December 2009, v1.9a |
| 136 | +- fix auth string typo |
| 137 | +- handle FCUnsubscribe message |
| 138 | +- don't try retry on live streams |
| 139 | +- SIGPIPE portability fix |
| 140 | +- remove "not supported" comment for RTMPE |
| 141 | + |
| 142 | +13 November 2009, v1.9 |
| 143 | +- Handle more signals to reduce risk of unresumable/corrupted partially streamed files |
| 144 | +- Fixed >2GB file handling |
| 145 | +- Added --hashes option for a hash progress bar instead of byte counter |
| 146 | +- Fix to allow win32 to use binary mode on stdout. |
| 147 | +- Added auto-unpause for buffer-limited streams |
| 148 | + |
| 149 | +1 November 2009, v1.7 |
| 150 | + |
| 151 | +- added --subscribe option for subscribing to a stream |
| 152 | +- added --start / --stop options for specifying endpoints of a stream |
| 153 | +- added --debug / --quiet / --verbose options for controlling output |
| 154 | + |
| 155 | +- added SOCKS4 support (by Monsieur Video) |
| 156 | + |
| 157 | +- restructured to support auto-restart of timed-out streams |
| 158 | + |
| 159 | +- rewritten byteswapping, works on all platforms |
| 160 | + |
| 161 | +- fixed errors in command / result parsing |
| 162 | + |
| 163 | +- support functions rewritten in C to avoid g++ compiler bugs on ARM |
| 164 | + |
| 165 | +- support for 65600 channels instead of just 64 |
| 166 | + |
| 167 | +- fixed signature buffer overruns |
| 168 | + |
| 169 | +17 May 2009, v1.6 |
| 170 | + |
| 171 | +- big endian alignment fix, should fix sparc64 and others |
| 172 | + |
| 173 | +- moved timestamp handling into RTMP protocol innings, all packets have |
| 174 | +absolute timestamps now, when seeking the stream will start with timestamp 0 |
| 175 | +even if seeked to a later position! |
| 176 | + |
| 177 | +- fixed a timestamp bug (should fix async audio/video problems) |
| 178 | + |
| 179 | +30 Apr 2009, v1.5a |
| 180 | + |
| 181 | +- fixed host name resolution bug (caused unexpected crashes if DNS resolution |
| 182 | +was not available) |
| 183 | + |
| 184 | +- also using the hostname in tcUrl instead of the IP turns out to give much |
| 185 | +better results |
| 186 | + |
| 187 | +27 Apr 2009, v1.5 |
| 188 | + |
| 189 | +- RTMPE support (tested on Adobe 3.0.2,3.0.3,3.5.1, Wowza) |
| 190 | + |
| 191 | +- SWFVerification (tested on Adobe 3.0.2,3.0.3,3.5.1) |
| 192 | + |
| 193 | +- added AMF3 parsing support (experimental feauture, only some primitives, no references) |
| 194 | + |
| 195 | +- added -o - option which allows the stream to be dumped to stdout |
| 196 | +(debug/error messages go to stderr) |
| 197 | + |
| 198 | +- added --live option to enable download of live streams |
| 199 | + |
| 200 | +- added support for (Free)BSD and Mac (untested, so might need more fixing, |
| 201 | +especially for PPC/sparc64) |
| 202 | + |
| 203 | +- fixed a bug in url parsing |
| 204 | + |
| 205 | +- added a useful application: streams, it will start a streaming server and |
| 206 | +using a request like http://localhost/?r=rtmp://.... you can restream the |
| 207 | +content to your player over http |
| 208 | + |
| 209 | +11 Mar 2009, v1.4 |
| 210 | + |
| 211 | +- fixed resume bug: when the server switches between audio/video packets and FLV |
| 212 | +chunk packets (why should a server want to do that? some actually do!) and rtmpdump |
| 213 | +was invoked with --resume the keyframe check prevented rtmpdump from continuing |
| 214 | + |
| 215 | +- fixed endianness |
| 216 | + |
| 217 | +- added win32 and arm support (you can cross-compile it onto your Windows box |
| 218 | +or even PDA) |
| 219 | + |
| 220 | +- removed libboost dependency, written a small parser for rtmp urls, but it is |
| 221 | +more of a heuristic one since the rtmp urls can be ambigous in some |
| 222 | +circumstances. The best way is to supply all prameters using the override |
| 223 | +options like --play, --app, etc. |
| 224 | + |
| 225 | +- fixed stream ids (from XBMC tree) |
| 226 | + |
| 227 | +19 Jan 2009, v1.3b |
| 228 | + |
| 229 | +- fixed segfault on Mac OS/BSDdue to times(0) |
| 230 | + |
| 231 | +- Makefile rewritten |
| 232 | + |
| 233 | +16 Jan 2009, v1.3a |
| 234 | + |
| 235 | +- fixed a bug introduced in v1.3 (wrong report bytes count), downloads won't |
| 236 | +hang anymore |
| 237 | + |
| 238 | +10 Jan 2009, v1.3 |
| 239 | + |
| 240 | +- fixed audio only streams (rtmpdump now recognizes the stream and writes a |
| 241 | +correct tag, audio, video, audio+video) |
| 242 | + |
| 243 | +- improved resume function to wait till a the seek is executed by the server. |
| 244 | +The server might send playback data before seeking, so we ignore up to e.g. 50 |
| 245 | +frames and keep waiting for a keyframe with a timestamp of zero. |
| 246 | + |
| 247 | +- nevertheless resuming does not always work since the server sometimes |
| 248 | +doesn't resend the keyframe, seeking in flash is unreliable |
| 249 | + |
| 250 | +02 Jan 2009, v1.2a |
| 251 | + |
| 252 | +- fixed non-standard rtmp urls (including characters + < > ; ) |
| 253 | + |
| 254 | +- added small script get_hulu which can download hulu.com streams (US only) |
| 255 | +(many thanks to Richard Ablewhite for the help with hulu.com) |
| 256 | + |
| 257 | +01 Jan 2009, v1.2: |
| 258 | + |
| 259 | +- fixed FLV streams (support for resuming extended) |
| 260 | + |
| 261 | +- fixed hanging download at the end |
| 262 | + |
| 263 | +- several minor bugfixes |
| 264 | + |
| 265 | +- changed parameter behaviour: not supplied parameters are omitted from the |
| 266 | +connect packet, --auth is introduced (was automatically obtained from url |
| 267 | +before, but it is possible to have an auth in the tcurl/rtmp url only without |
| 268 | +an additional encoded string in the connect packet) |
| 269 | + |
| 270 | +28 Dec 2008, v1.1a: |
| 271 | + |
| 272 | +- fixed warnings, added -Wall to Makefile |
| 273 | + |
| 274 | +28 Dec 2008, v1.1: |
| 275 | + |
| 276 | +- fixed stucking downloads (the buffer time is set to the duration now, |
| 277 | + so the server doesn't wait till the buffer is emptied |
| 278 | + |
| 279 | + - added a --resume option to coninue incomplete downloads |
| 280 | + |
| 281 | +- added support for AMF_DATE (experimental, no stream to test so far) |
| 282 | + |
| 283 | +- fixed AMF parsing and several small bugs (works on 64bit platforms now) |
| 284 | + |
| 285 | +24 Dec 2008, v1.0: |
| 286 | + |
| 287 | +- First release |
| 288 | + |
0 commit comments