Versions RTMPdump

De Vulgum Techus
Aller à : Navigation, rechercher

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