Real-Time Messaging Protocol ( RTMP ) is a communication protocol for streaming audio, video, and data over the Internet. Originally developed as a proprietary protocol by Macromedia for streaming between Flash Player and the Flash Communication Server, Adobe (which acquired Macromedia) has released an incomplete version of the specification of the protocol for public use.
114-644: RTMP may refer to: Real-Time Messaging Protocol , a multimedia streaming and remote procedure call protocol primarily used in Adobe Flash Routing Table Maintenance Protocol , part of the AppleTalk network stack Royal Tyrrell Museum of Palaeontology See also [ edit ] RTP (disambiguation) Topics referred to by the same term [REDACTED] This disambiguation page lists articles associated with
228-450: A de facto standard for digital audio. The Moving Picture Experts Group (MPEG) designed MP3 as part of its MPEG-1 , and later MPEG-2 , standards. MPEG-1 Audio (MPEG-1 Part 3), which included MPEG-1 Audio Layer I, II, and III, was approved as a committee draft for an ISO / IEC standard in 1991, finalized in 1992, and published in 1993 as ISO/IEC 11172-3:1993. An MPEG-2 Audio (MPEG-2 Part 3) extension with lower sample and bit rates
342-509: A bit rate, which specifies how many kilobits per second of audio is desired. The higher the bit rate, the larger the MP3 data stream will be, and, generally, the closer it will sound to the original recording. With too low a bit rate, compression artifacts (i.e., sounds that were not present in the original recording) may be audible in the reproduction. Some audio is hard to compress because of its randomness and sharp attacks. When this type of audio
456-464: A broadcasting system using COFDM modulation was demonstrated on air and in the field with Radio Canada and CRC Canada during the NAB show (Las Vegas) in 1991. The implementation of the audio part of this broadcasting system was based on a two-chip encoder (one for the subband transform, one for the psychoacoustic model designed by the team of G. Stoll (IRT Germany), later known as psychoacoustic model I) and
570-423: A codec called ASPEC, which was submitted to MPEG, and which won the quality competition, but that was mistakenly rejected as too complex to implement. The first practical implementation of an audio perceptual coder (OCF) in hardware (Krasner's hardware was too cumbersome and slow for practical use), was an implementation of a psychoacoustic transform coder based on Motorola 56000 DSP chips. Another predecessor of
684-401: A connection to be established. An example message from the client is: The Flash Media Server and other implementations uses the concept of an "app" to conceptually define a container for audio/video and other content, implemented as a folder on the server root which contains the media files to be streamed. The first variable contains the name of this app as "sample" which is the name provided by
798-483: A core part of the MP3 algorithm. Ernst Terhardt and other collaborators constructed an algorithm describing auditory masking with high accuracy in 1982. This work added to a variety of reports from authors dating back to Fletcher, and to the work that initially determined critical ratios and critical bandwidths. In 1985, Atal and Schroeder presented code-excited linear prediction (CELP), an LPC-based perceptual speech-coding algorithm with auditory masking that achieved
912-460: A doctoral student at Germany's University of Erlangen-Nuremberg , Karlheinz Brandenburg began working on digital music compression in the early 1980s, focusing on how people perceive music. He completed his doctoral work in 1989. MP3 is directly descended from OCF and PXFM, representing the outcome of the collaboration of Brandenburg — working as a postdoctoral researcher at AT&T-Bell Labs with James D. Johnston ("JJ") of AT&T-Bell Labs — with
1026-407: A faithful reproduction of the original uncompressed audio to most listeners; for example, compared to CD-quality digital audio , MP3 compression can commonly achieve a 75–95% reduction in size, depending on the bit rate . In popular usage, MP3 often refers to files of sound or music recordings stored in the MP3 file format (.mp3) on consumer electronic devices. Originally defined in 1991 as
1140-491: A generic Action-script Object, which is then passed to the NetConnection event listener. The clientId will establish a number for the session to be started by the connection. Object encoding must match the value previously set. To start a video stream, the client sends a "createStream" invocation followed by a ping message, followed by a "play" invocation with the file name as argument. The server will then reply with
1254-539: A given MP3 file will be the same, within a specified degree of rounding tolerance, as the output specified mathematically in the ISO/IEC high standard document (ISO/IEC 11172-3). Therefore, the comparison of decoders is usually based on how computationally efficient they are (i.e., how much memory or CPU time they use in the decoding process). Over time this concern has become less of an issue as CPU clock rates transitioned from MHz to GHz. Encoder/decoder overall delay
SECTION 10
#17327807603521368-531: A header and a body which, in the case of connection and control commands, is encoded using the Action Message Format (AMF). The header is split into the Basic Header (shown as detached from the rest, in the diagram) and Chunk Message Header . The Basic Header is the only constant part of the packet and is usually composed of a single composite byte, where the two most significant bits are
1482-488: A home computer as full recordings (as opposed to MIDI notation, or tracker files which combined notation with short recordings of instruments playing single notes). A hacker named SoloH discovered the source code of the "dist10" MPEG reference implementation shortly after the release on the servers of the University of Erlangen . He developed a higher-quality version and spread it on the internet. This code started
1596-463: A lesser quality setting for lectures and human speech applications and reduces encoding time and complexity. A test given to new students by Stanford University Music Professor Jonathan Berger showed that student preference for MP3-quality music has risen each year. Berger said the students seem to prefer the 'sizzle' sounds that MP3s bring to music. An in-depth study of MP3 audio quality, sound artist and composer Ryan Maguire 's project "The Ghost in
1710-474: A possible extension of one byte which sets the Limit Type. This can have one of three possible values which can be: hard, soft or dynamic (either soft or hard). The value received in the four bytes of the body. A default value of 128 bytes exists, and the message is sent only when a change is wanted. After establishing a TCP connection, an RTMP connection is established first, performing a handshake through
1824-403: A public listening test featuring two early MP3 encoders set at about 128 kbit/s, one scored 3.66 on a 1–5 scale, while the other scored only 2.22. Quality is dependent on the choice of encoder and encoding parameters. This observation caused a revolution in audio encoding. Early on bit rate was the prime and only consideration. At the time MP3 files were of the very simplest type: they used
1938-439: A quarter of MPEG-1 sample rates. For the general field of human speech reproduction, a bandwidth of 5,512 Hz is sufficient to produce excellent results (for voice) using the sampling rate of 11,025 and VBR encoding from 44,100 (standard) WAV file. English speakers average 41–42 kbit/s with -V 9.6 setting but this may vary with the amount of silence recorded or the rate of delivery (wpm). Resampling to 12,000 (6K bandwidth)
2052-506: A real-time decoder using one Motorola 56001 DSP chip running an integer arithmetics software designed by Y.F. Dehery's team (CCETT, France). The simplicity of the corresponding decoder together with the high audio quality of this codec using for the first time a 48 kHz sampling rate , a 20 bits/sample input format (the highest available sampling standard in 1991, compatible with the AES/EBU professional digital input studio standard) were
2166-415: A reply. The value can be either a string like in the example above or one or more objects, each composed of a set of key/value pairs where the keys are always encoded as strings while the values can be any AMF data type, including complex types like arrays. Control messages are not AMF encoded. They start with a stream Id of 0x02 which implies a full (type 0) header and have a message type of 0x04. The header
2280-593: A series of "onStatus" commands followed by the video data as encapsulated within RTMP messages. After a connection is established, media is sent by encapsulating the content of FLV tags into RTMP messages of type 8 and 9 for audio and video, respectively. This refers to the HTTP tunneled version of the protocol. It communicates over port 80 and passes the AMF data inside HTTP POST request and responses. The sequence for connection
2394-631: A significant data compression ratio for its time. IEEE 's refereed Journal on Selected Areas in Communications reported on a wide variety of (mostly perceptual) audio compression algorithms in 1988. The "Voice Coding for Communications" edition published in February 1988 reported on a wide range of established, working audio bit compression technologies, some of them using auditory masking as part of their fundamental design, and several showing real-time hardware implementations. The genesis of
SECTION 20
#17327807603522508-415: A time when bandwidth and storage were still at a premium. The MP3 format soon became associated with controversies surrounding copyright infringement , music piracy , and the file- ripping and sharing services MP3.com and Napster , among others. With the advent of portable media players (including "MP3 players"), a product category also including smartphones , MP3 support remains near-universal and
2622-425: A tone could be rendered inaudible by another tone of lower frequency. In 1959, Richard Ehmer described a complete set of auditory curves regarding this phenomenon. Between 1967 and 1974, Eberhard Zwicker did work in the areas of tuning and masking of critical frequency-bands, which in turn built on the fundamental research in the area from Harvey Fletcher and his collaborators at Bell Labs . Perceptual coding
2736-474: Is 0x05 (null) which means there are no arguments. Some of the message types shown above, such as Ping and Set Client/Server Bandwidth, are considered low level RTMP protocol messages which do not use the AMF encoding format. Command messages on the other hand, whether AMF0 (Message Type of 0x14) or AMF3 (0x11), use the format and have the general form shown below: The transaction id is used for commands that can have
2850-447: Is 1152 samples, divided into two granules of 576 samples. These samples, initially in the time domain, are transformed in one block to 576 frequency-domain samples by MDCT. MP3 also allows the use of shorter blocks in a granule, down to a size of 192 samples; this feature is used when a transient is detected. Doing so limits the temporal spread of quantization noise accompanying the transient (see psychoacoustics ). Frequency resolution
2964-413: Is a channel for handling RPC requests and responses, a channel for video stream data, a channel for audio stream data, a channel for out-of-band control messages (fragment size negotiation, etc.), and so on. During a typical RTMP session, several channels may be active simultaneously at any given time. When RTMP data is encoded, a packet header is generated. The packet header specifies, amongst other matters,
3078-637: Is a fork of RTMPdump, without the code, which Adobe claims violates the DMCA in the USA. This was developed as a response to Adobe's attempt in 2008 to suppress RTMPdump. FLVstreamer is an RTMP client that will save a stream of audio or video content from any RTMP server to disk, if encryption (RTMPE) is not enabled on the stream. Flash video container in RTMP is limited to H264 codec in most implementations. For this reason, The Veovera Software Organization, including Adobe , Google , Twitch , and Veriskope published
3192-448: Is a polling request where the session id has been generated and returned from the server and the sequence is just a number that increments by one for every request. The appropriate response is a 200 OK, with an integer returned in the body signifying the interval time. AMF data is sent through /send/<session id>/<sequence #> RTMP is implemented at these three stages: The open-source RTMP client command-line tool rtmpdump
3306-420: Is as follows: The first request has an /fcs/ident2 path, and the correct reply is a 404 Not Found error. The client then sends an /open/1 request where the server must reply with a 200 ok appending a random number that will be used as the session identifier for the said communication. In this example, 1728724019 is returned in the response body. From now on, the /idle/<session id>/<sequence #>
3420-424: Is compressed, artifacts such as ringing or pre-echo are usually heard. A sample of applause or a triangle instrument with a relatively low bit rate provides good examples of compression artifacts. Most subjective testings of perceptual codecs tend to avoid using these types of sound materials, however, the artifacts generated by percussive sounds are barely perceptible due to the specific temporal masking feature of
3534-514: Is designed to play back or save to disk the full RTMP stream, including the RTMPE protocol Adobe uses for encryption. RTMPdump runs on Linux, Android, Solaris, Mac OS X , and most other Unix-derived operating systems, as well as Microsoft Windows. Originally supporting all versions of 32-bit Windows including Windows 98, from version 2.2 the software will run only on Windows XP and above (although earlier versions remain fully functional). Packages of
RTMP - Misplaced Pages Continue
3648-476: Is followed by six bytes, which are interpreted as such: The first two bytes of the message body define the Ping Type, which can apparently take six possible values. Pong is the name for a reply to a Ping, with the values used as seen above. This relates to messages that have to do with the client up-stream and server down-stream bit-rate. The body is composed of four bytes showing the bandwidth value, with
3762-472: Is its most apparent element to end-users, MP3 uses lossy compression to encode data using inexact approximations and the partial discarding of data, allowing for a large reduction in file sizes when compared to uncompressed audio. The combination of small size and acceptable fidelity led to a boom in the distribution of music over the Internet in the late 1990s, with MP3 serving as an enabling technology at
3876-423: Is limited by the small long block window size, which decreases coding efficiency. Time resolution can be too low for highly transient signals and may cause smearing of percussive sounds. Due to the tree structure of the filter bank, pre-echo problems are made worse, as the combined impulse response of the two filter banks does not, and cannot, provide an optimum solution in time/frequency resolution. Additionally,
3990-511: Is negotiated dynamically between the client and server. Sometimes, it is kept unchanged; the default fragment sizes are 64 bytes for audio data, and 128 bytes for video data and most other data types. Fragments from different streams may then be interleaved, and multiplexed over a single connection. With longer data chunks, the protocol thus carries only a one-byte header per fragment, so incurring very little overhead . However, in practice, individual fragments are not typically interleaved. Instead,
4104-432: Is not defined, which means there is no official provision for gapless playback . However, some encoders such as LAME can attach additional metadata that will allow players that can handle it to deliver seamless playback. When performing lossy audio encoding, such as creating an MP3 data stream, there is a trade-off between the amount of data generated and the sound quality of the results. The person generating an MP3 selects
4218-470: Is not required. RTMP sessions may be encrypted using either of two methods: In RTMP Tunneled (RTMPT), RTMP data is encapsulated and exchanged via HTTP , and messages from the client (the media player, in this case) are addressed to port 80 (the default for HTTP) on the server. While the messages in RTMPT are larger than the equivalent non-tunneled RTMP messages due to HTTP headers, RTMPT may facilitate
4332-406: Is that, in any piece of audio, some sections are easier to compress, such as silence or music containing only a few tones, while others will be more difficult to compress. So, the overall quality of the file may be increased by using a lower bit rate for the less complex passages and a higher one for the more complex parts. With some advanced MP3 encoders, it is possible to specify a given quality, and
4446-419: Is the most advanced MP3 encoder. LAME includes a variable bit rate (VBR) encoding which uses a quality parameter rather than a bit rate goal. Later versions (2008+) support an n.nnn quality goal which automatically selects MPEG-2 or MPEG-2.5 sampling rates as appropriate for human speech recordings that need only 5512 Hz bandwidth resolution. In the second half of the 1990s, MP3 files began to spread on
4560-424: Is vague as to which patents apply to RTMP, U.S. patent 7,246,356 appears to be one of them. In 2011, Adobe did sue Wowza Media Systems claiming, among other things, infringement of their RTMP patents. In 2015, Adobe and Wowza announced that the lawsuits have been settled and dismissed with prejudice. Packets are sent over a TCP connection, which is established first between client and server. They contain
4674-529: The objectEncoding which will define whether the rest of the communication will make use of the extended AMF3 format or not. As version 3 is the current default, the flash client has to be told explicitly in Action-script code to use AMF0 if that is requested. The server then replies with a ServerBW, a ClientBW and a SetPacketSize message sequence, finally followed by an Invoke, with an example message. Some values above are serialised into properties of
RTMP - Misplaced Pages Continue
4788-454: The C programming language . In particular, the main functionality was built into a library (librtmp) which can easily be used by other applications. The RTMPdump developers have also written support for librtmp for MPlayer , FFmpeg , XBMC , cURL , VLC and a number of other open source software projects. Use of librtmp provides these projects with full support of RTMP in all its variants without any additional development effort. FLVstreamer
4902-563: The Digital Audio Tape (DAT) SP parameters (48 kHz, 2×16 bit). Compression ratios with this latter reference are higher, which demonstrates the problem with the use of the term compression ratio for lossy encoders. Karlheinz Brandenburg used a CD recording of Suzanne Vega 's song " Tom's Diner " to assess and refine the MP3 compression algorithm . This song was chosen because of its nearly monophonic nature and wide spectral content, making it easier to hear imperfections in
5016-594: The EBU V3/SQAM reference compact disc and have been used by professional sound engineers to assess the subjective quality of the MPEG Audio formats. A reference simulation software implementation, written in the C language and later known as ISO 11172-5 , was developed (in 1991–1996) by the members of the ISO MPEG Audio committee to produce bit-compliant MPEG Audio files (Layer 1, Layer 2, Layer 3). It
5130-650: The Fraunhofer Institute for Integrated Circuits , Erlangen (where he worked with Bernhard Grill and four other researchers – "The Original Six" ), with relatively minor contributions from the MP2 branch of psychoacoustic sub-band coders. In 1990, Brandenburg became an assistant professor at Erlangen-Nuremberg. While there, he continued to work on music compression with scientists at the Fraunhofer Society 's Heinrich Herz Institute . In 1993, he joined
5244-502: The Institute for Broadcast Technology (Germany), and Matsushita (Japan), was chosen due to its simplicity and error robustness, as well as for its high level of computational efficiency. The MUSICAM format, based on sub-band coding , became the basis for the MPEG Audio compression format, incorporating, for example, its frame structure, header format, sample rates, etc. While much of MUSICAM technology and ideas were incorporated into
5358-599: The Internet , often via underground pirated song networks. The first known experiment in Internet distribution was organized in the early 1990s by the Internet Underground Music Archive , better known by the acronym IUMA. After some experiments using uncompressed audio files, this archive started to deliver on the native worldwide low-speed Internet some compressed MPEG Audio files using the MP2 (Layer II) format and later on used MP3 files when
5472-467: The MPEG-2 ideas and implementation but was named MPEG-2.5 audio since MPEG-3 already had a different meaning. This extension was developed at Fraunhofer IIS, the registered patent holder of MP3, by reducing the frame sync field in the MP3 header from 12 to 11 bits. As in the transition from MPEG-1 to MPEG-2, MPEG-2.5 adds additional sampling rates exactly half of those available using MPEG-2. It thus widens
5586-476: The Nyquist–Shannon sampling theorem . Frequency reproduction is always strictly less than half of the sampling rate, and imperfect filters require a larger margin for error (noise level versus sharpness of filter), so an 8 kHz sampling rate limits the maximum frequency to 4 kHz, while a 48 kHz sampling rate limits an MP3 to a maximum 24 kHz sound reproduction. MPEG-2 uses half and MPEG-2.5 only
5700-447: The bitstream , called an audio frame, which is made up of 4 parts, the header , error check , audio data , and ancillary data . The MPEG-1 standard does not include a precise specification for an MP3 encoder but does provide examples of psychoacoustic models, rate loops, and the like in the non-normative part of the original standard. MPEG-2 doubles the number of sampling rates that are supported and MPEG-2.5 adds 3 more. When this
5814-579: The rtmpdump suite of software are available in the major open-source repositories (Linux distributions). These include the front-end apps "rtmpdump", "rtmpsrv" and "rtmpsuck." Development of RTMPdump was restarted in October 2009, outside the United States, at the MPlayer site. The current version features greatly improved functionality, and has been rewritten to take advantage of the benefits of
SECTION 50
#17327807603525928-467: The "epoch" timestamp, but since this can be set to zero, as is done in third party implementations, the packet can be simplified. The client initialises the connection by sending the C0 packet with a constant value of 0x03 representing the current protocol version. It follows straight with C1 without waiting for S0 to be received first which contains 1536 bytes, with the first four representing the epoch timestamp,
6042-509: The (compressed) audio information in terms of frequencies and amplitudes. The diagram shows that the MP3 Header consists of a sync word , which is used to identify the beginning of a valid frame. This is followed by a bit indicating that this is the MPEG standard and two bits that indicate that layer 3 is used; hence MPEG-1 Audio Layer 3 or MP3. After this, the values will differ, depending on
6156-442: The 32 sub-band filterbank of Layer II on which the format is based. Besides the bit rate of an encoded piece of audio, the quality of MP3-encoded sound also depends on the quality of the encoder algorithm as well as the complexity of the signal being encoded. As the MP3 standard allows quite a bit of freedom with encoding algorithms, different encoders do feature quite different quality, even with identical bit rates. As an example, in
6270-641: The Chunk Type ( fmt in the specification) and the rest form the Stream ID. Depending on the value of the former, some fields of the Message Header can be omitted, and their value derived from previous packets while depending on the value of the latter, the Basic Header can be extended with one or two extra bytes (as in the case of the diagramme that has three bytes in total (c)). If the value of
6384-455: The ID of the channel on which it is to be sent, a timestamp of when it was generated (if necessary), and the size of the packet's payload. This header is then followed by the actual payload content of the packet, which is fragmented according to the currently agreed-upon fragment size before it is sent over the connection. The packet header itself is never fragmented, and its size does not count towards
6498-452: The MP3 file. ISO/IEC 11172-3 defines the range of values for each section of the header along with the specification of the header. Most MP3 files today contain ID3 metadata , which precedes or follows the MP3 frames, as noted in the diagram. The data stream can contain an optional checksum . Joint stereo is done only on a frame-to-frame basis. In short, MP3 compression works by reducing
6612-575: The MP3 format and technology is to be found in the perceptual codec MUSICAM based on an integer arithmetics 32 sub-bands filter bank, driven by a psychoacoustic model. It was primarily designed for Digital Audio Broadcasting (digital radio) and digital TV, and its basic principles were disclosed to the scientific community by CCETT (France) and IRT (Germany) in Atlanta during an IEEE- ICASSP conference in 1991, after having worked on MUSICAM with Matsushita and Philips since 1989. This codec incorporated into
6726-581: The MP3 format. It is nonetheless ubiquitous and especially advantageous for low-bit-rate human speech applications. The ISO standard ISO/IEC 11172-3 (a.k.a. MPEG-1 Audio) defined three formats: the MPEG-1 Audio Layer I, Layer II and Layer III. The ISO standard ISO/IEC 13818-3 (a.k.a. MPEG-2 Audio) defined an extended version of MPEG-1 Audio: MPEG-2 Audio Layer I, Layer II, and Layer III. MPEG-2 Audio (MPEG-2 Part 3) should not be confused with MPEG-2 AAC (MPEG-2 Part 7 – ISO/IEC 13818-7). LAME
6840-500: The MP3 technology is fully described in a paper from Professor Hans Musmann, who chaired the ISO MPEG Audio group for several years. In December 1988, MPEG called for an audio coding standard. In June 1989, 14 audio coding algorithms were submitted. Because of certain similarities between these coding proposals, they were clustered into four development groups. The first group was ASPEC, by Fraunhofer Gesellschaft , AT&T , France Telecom , Deutsche and Thomson-Brandt . The second group
6954-402: The MP3" isolates the sounds lost during MP3 compression. In 2015, he released the track "moDernisT" (an anagram of "Tom's Diner"), composed exclusively from the sounds deleted during MP3 compression of the song "Tom's Diner", the track originally used in the formulation of the MP3 standard. A detailed account of the techniques used to isolate the sounds deleted during MP3 compression, along with
SECTION 60
#17327807603527068-625: The MPEG-1 Audio Layer III standard, MP3 files with a bit rate below 32 kbit/s might be played back sped-up and pitched-up. Earlier systems also lack fast forwarding and rewinding playback controls on MP3. MPEG-1 frames contain the most detail in 320 kbit/s mode, the highest allowable bit rate setting, with silence and simple tones still requiring 32 kbit/s. MPEG-2 frames can capture up to 12 kHz sound reproductions needed up to 160 kbit/s. MP3 files made with MPEG-2 do not have 20 kHz bandwidth because of
7182-503: The RTMP Header (including the values in the example packet above) are decoded as follows: The Message Type ID byte defines whether the packet contains audio/video data, a remote object or a command. Some possible values for are: Following the header, 0x02 denotes a string of size 0x000C and values 0x63 0x72 ... 0x6D ("createStream" command). Following that we have a 0x00 (number) which is the transaction id of value 2.0. The last byte
7296-512: The SourceForge website until it became the de facto CBR MP3 encoder. Later an ABR mode was added. Work progressed on true variable bit rate using a quality goal between 0 and 10. Eventually, numbers (such as -V 9.600) could generate excellent quality low bit rate voice encoding at only 41 kbit/s using the MPEG-2.5 extensions. MP3 uses an overlapping MDCT structure. Each MPEG-1 MP3 frame
7410-461: The Wowza Server for their testing. The flashVer string is the same as returned by the Action-script getversion() function. The audioCodec and videoCodec are encoded as doubles and their meaning can be found in the original spec. The same is true for the videoFunction variable, which in this case is the self-explanatory SUPPORT_VID_CLIENT_SEEK constant. Of special interest is
7524-428: The accuracy of certain components of sound that are considered (by psychoacoustic analysis) to be beyond the hearing capabilities of most humans. This method is commonly referred to as perceptual coding or psychoacoustic modeling. The remaining audio information is then recorded in a space-efficient manner using MDCT and FFT algorithms. The MP3 encoding algorithm is generally split into four parts. Part 1 divides
7638-481: The assessment of music compression codecs. The subband coding technique was found to be efficient, not only for the perceptual coding of high-quality sound materials but especially for the encoding of critical percussive sound materials (drums, triangle ,...), due to the specific temporal masking effect of the MUSICAM sub-band filterbank (this advantage being a specific feature of short transform coding techniques). As
7752-435: The audio signal into smaller pieces, called frames, and an MDCT filter is then performed on the output. Part 2 passes the sample into a 1024-point fast Fourier transform (FFT), then the psychoacoustic model is applied and another MDCT filter is performed on the output. Part 3 quantifies and encodes each sample, known as noise allocation, which adjusts itself to meet the bit rate and sound masking requirements. Part 4 formats
7866-404: The available frequency fidelity in half while likewise cutting the bit rate by 50%. MPEG-2 Part 3 also enhanced MPEG-1's audio by allowing the coding of audio programs with more than two channels, up to 5.1 multichannel. An MP3 coded with MPEG-2 results in half of the bandwidth reproduction of MPEG-1 appropriate for piano and singing. A third generation of "MP3" style data streams (files) extended
7980-431: The combining of the two filter banks' outputs creates aliasing problems that must be handled partially by the "aliasing compensation" stage; however, that creates excess energy to be coded in the frequency domain, thereby decreasing coding efficiency. Decoding, on the other hand, is carefully defined in the standard. Most decoders are " bitstream compliant", which means that the decompressed output that they produce from
8094-557: The compression format during playbacks. This particular track has an interesting property in that the two channels are almost, but not completely, the same, leading to a case where Binaural Masking Level Depression causes spatial unmasking of noise artifacts unless the encoder properly recognizes the situation and applies corrections similar to those detailed in the MPEG-2 AAC psychoacoustic model. Some more critical audio excerpts ( glockenspiel , triangle, accordion , etc.) were taken from
8208-576: The conceptual motivation for the project, was published in the 2014 Proceedings of the International Computer Music Conference. Bit rate is the product of the sample rate and number of bits per sample used to encode the music. CD audio is 44100 samples per second. The number of bits per sample also depends on the number of audio channels. The CD is stereo and 16 bits per channel. So, multiplying 44100 by 32 gives 1411200—the bit rate of uncompressed CD digital audio. MP3
8322-452: The data in the packet's first fragment. In other words, only the actual packet payload (the media data) is subject to fragmentation. At a higher level, the RTMP encapsulates MP3 or AAC audio and FLV1 video multimedia streams, and can make remote procedure calls (RPCs) using the Action Message Format . Any RPC services required are made asynchronously, using a single client/server request/response model, such that real-time communication
8436-681: The definition of MPEG Audio Layer I and Layer II, the filter bank alone and the data structure based on 1152 samples framing (file format and byte-oriented stream) of MUSICAM remained in the Layer III (MP3) format, as part of the computationally inefficient hybrid filter bank. Under the chairmanship of Professor Musmann of the Leibniz University Hannover , the editing of the standard was delegated to Leon van de Kerkhof (Netherlands), Gerhard Stoll (Germany), and Yves-François Dehery (France), who worked on Layer I and Layer II. ASPEC
8550-597: The encoder will adjust the bit rate accordingly. Users that desire a particular "quality setting" that is transparent to their ears can use this value when encoding all of their music, and generally speaking not need to worry about performing personal listening tests on each piece of music to determine the correct bit rate. Perceived quality can be influenced by the listening environment (ambient noise), listener attention, listener training, and in most cases by listener audio equipment (such as sound cards, speakers, and headphones). Furthermore, sufficient quality may be achieved by
8664-573: The enhanced RTMP specification, which adds support for VP9 , H265 and AV1 codecs in the Flash Video container FLV . MP3 MP3 (formally MPEG-1 Audio Layer III or MPEG-2 Audio Layer III ) is a coding format for digital audio developed largely by the Fraunhofer Society in Germany under the lead of Karlheinz Brandenburg . It was designed to greatly reduce the amount of data required to represent audio, yet still sound like
8778-403: The exchange of three packets from each side (also referred to as Chunks in the official documentation). These are referred in the official spec as C0-2 for the client sent packets and S0-2 for the server side respectively and are not to be confused with RTMP packets that can be exchanged only after the handshake is complete. These packets have a structure of their own and C1 contains a field setting
8892-478: The first generation of MP3 defined 14 × 3 = 42 interpretations of MP3 frame data structures and size layouts. The compression efficiency of encoders is typically defined by the bit rate because the compression ratio depends on the bit depth and sampling rate of the input signal. Nevertheless, compression ratios are often published. They may use the compact disc (CD) parameters as references (44.1 kHz , 2 channels at 16 bits per channel or 2×16 bit), or sometimes
9006-521: The interleaving and multiplexing is done at the packet level, with RTMP packets across several different active channels being interleaved in such a way as to ensure that each channel meets its bandwidth, latency, and other quality-of-service requirements. Packets interleaved in this fashion are treated as indivisible, and are not interleaved on the fragment level. The RTMP defines several virtual channels on which packets may be sent and received, and which operate independently of each other. For example, there
9120-615: The joint stereo coding of MUSICAM and created the MP3 format, which was designed to achieve the same quality at 128 kbit/s as MP2 at 192 kbit/s. The algorithms for MPEG-1 Audio Layer I, II and III were approved in 1991 and finalized in 1992 as part of MPEG-1 , the first standard suite by MPEG , which resulted in the international standard ISO/IEC 11172-3 (a.k.a. MPEG-1 Audio or MPEG-1 Part 3 ), published in 1993. Files or data streams conforming to this standard must handle sample rates of 48k, 44100, and 32k and continue to be supported by current MP3 players and decoders. Thus
9234-482: The main reasons to later adopt the characteristics of MUSICAM as the basic features for an advanced digital music compression codec. During the development of the MUSICAM encoding software, Stoll and Dehery's team made thorough use of a set of high-quality audio assessment material selected by a group of audio professionals from the European Broadcasting Union, and later used as a reference for
9348-513: The mainstream of psychoacoustic codec-development. The discrete cosine transform (DCT), a type of transform coding for lossy compression, proposed by Nasir Ahmed in 1972, was developed by Ahmed with T. Natarajan and K. R. Rao in 1973; they published their results in 1974. This led to the development of the modified discrete cosine transform (MDCT), proposed by J. P. Princen, A. W. Johnson and A. B. Bradley in 1987, following earlier work by Princen and Bradley in 1986. The MDCT later became
9462-435: The masking properties of the human ear. Further optimization by Schroeder and Atal with J.L. Hall was later reported in a 1979 paper. That same year, a psychoacoustic masking codec was also proposed by M. A. Krasner, who published and produced hardware for speech (not usable as music bit-compression), but the publication of his results in a relatively obscure Lincoln Laboratory Technical Report did not immediately influence
9576-487: The message size (measured in bytes), the Timestamp Delta and Message Type . This last value is a single byte and defines whether the packet is an audio, video, command or "low level" RTMP packet such as an RTMP Ping. An example is shown below as captured when a flash client executes the following code: this will generate the following Chunk: The packet starts with a Basic Header of a single byte (0x03) where
9690-401: The message with a stream Id of 3 (which would be the message right above it). The six least significant bits that form the Stream ID can take values between 3 and 63. Some values have special meaning, like 1 that stands for an extended ID format, in which case there will be two bytes following that. A value of two is for low level messages such as Ping and Set Client Bandwidth. The next bytes of
9804-417: The previous generation for a total of 9 varieties of MP3 format files. The sample rate comparison table between MPEG-1, 2, and 2.5 is given later in the article. MPEG-2.5 is supported by LAME (since 2000), Media Player Classic (MPC), iTunes, and FFmpeg. MPEG-2.5 was not developed by MPEG (see above) and was never approved as an international standard. MPEG-2.5 is thus an unofficial or proprietary extension to
9918-489: The primary motivation for RTMP was to be a protocol for playing Flash video , it is also used in some other applications, such as the Adobe LiveCycle Data Services ES . RTMP is a TCP-based protocol which maintains persistent connections and allows low-latency communication. To deliver streams smoothly and transmit as much information as possible, it splits streams into fragments, and their size
10032-480: The protocol, dated 21 December 2012. The web landing page leading to that specification notes that "To benefit customers who want to protect their content, the open RTMP specification does not include Adobe's unique secure RTMP measures". A document accompanying the Adobe specification grants "non-exclusive, royalty-free, nontransferable, non-sublicensable, personal, worldwide" patent license to all implementations of
10146-449: The protocol, with two restrictions: one forbids use for intercepting streaming data ("any technology that intercepts streaming video, audio and/or data content for storage in any device or medium"), and another prohibits circumvention of "technological measures for the protection of audio, video and/or data content, including any of Adobe’s secure RTMP measures". Stefan Richter, author of some books on Flash , noted in 2008 that while Adobe
10260-414: The recording industry approved re-incarnation of Napster , and Amazon.com sell unrestricted music in the MP3 format. An MP3 file is made up of MP3 frames, which consist of a header and a data block. This sequence of frames is called an elementary stream . Due to the "bit reservoir", frames are not independent items and cannot usually be extracted on arbitrary frame boundaries. The MP3 Data blocks contain
10374-523: The remaining six bits of the Basic Header (BH) (least significant) is 0 then the BH is two bytes and represents from Stream ID 64 to 319 (64+255); if the value is 1, then the BH is three bytes (with last two bytes encoded as 16bit Little Endian) and represents from Stream ID 64 to 65599 (64+65535); if the value is 2, then BH is one byte and is reserved for low-level protocol control messages and commands. The Chunk Message Header contains meta-data information such as
10488-596: The reproduction of Vega's voice. Accordingly, he dubbed Vega the "Mother of MP3". Instrumental music had been easier to compress, but Vega's voice sounded unnatural in early versions of the format. Brandenburg eventually met Vega and heard Tom's Diner performed live. In 1991, two available proposals were assessed for an MPEG audio standard: MUSICAM ( M asking pattern adapted U niversal S ubband I ntegrated C oding A nd M ultiplexing) and ASPEC ( A daptive S pectral P erceptual E ntropy C oding). The MUSICAM technique, proposed by Philips (Netherlands), CCETT (France),
10602-440: The same bit rate for the entire file: this process is known as constant bit rate (CBR) encoding. Using a constant bit rate makes encoding simpler and less CPU-intensive. However, it is also possible to optimize the size of the file by creating files where the bit rate changes throughout the file. These are known as variable bit rate. The bit reservoir and VBR encoding were part of the original MPEG-1 standard. The concept behind them
10716-866: The sampling rate, MPEG-2 layer III removes all frequencies above half the new sampling rate that may have been present in the source audio. As shown in these two tables, 14 selected bit rates are allowed in MPEG-1 Audio Layer III standard: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 kbit/s, along with the 3 highest available sampling rates of 32, 44.1 and 48 kHz . MPEG-2 Audio Layer III also allows 14 somewhat different (and mostly lower) bit rates of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 kbit/s with sampling rates of 16, 22.05 and 24 kHz which are exactly half that of MPEG-1. MPEG-2.5 Audio Layer III frames are limited to only 8 bit rates of 8, 16, 24, 32, 40, 48, 56 and 64 kbit/s with 3 even lower sampling rates of 8, 11.025, and 12 kHz. On earlier systems that only support
10830-514: The scope of MP3 to include human speech and other applications yet requires only 25% of the bandwidth (frequency reproduction) possible using MPEG-1 sampling rates. While not an ISO-recognized standard, MPEG-2.5 is widely supported by both inexpensive Chinese and brand-name digital audio players as well as computer software-based MP3 encoders ( LAME ), decoders (FFmpeg) and players (MPC) adding 3 × 8 = 24 additional MP3 frame types. Each generation of MP3 thus supports 3 sampling rates exactly half that of
10944-513: The second four all being 0, and the rest being random (and which can be set to 0 in third party implementations). C2 and S2 are an echo of S1 and C1 respectively, except with the second four bytes being the time the respective message was received (instead of 0). After C2 and S2 are received, the handshake is considered complete. At this point, the client, and server can negotiate a connection by exchanging AMF encoded messages. These include key value pairs which relate to variables that are needed for
11058-428: The staff of Fraunhofer HHI. An acapella version of the song " Tom's Diner " by Suzanne Vega was the first song used by Brandenburg to develop the MP3 format. It was used as a benchmark to see how well MP3's compression algorithm handled the human voice. Brandenburg adopted the song for testing purposes, listening to it again and again each time he refined the compression algorithm, making sure it did not adversely affect
11172-519: The standard was fully completed. The popularity of MP3s began to rise rapidly with the advent of Nullsoft 's audio player Winamp , released in 1997, which still had in 2023 a community of 80 million active users. In 1998, the first portable solid-state digital audio player MPMan , developed by SaeHan Information Systems, which is headquartered in Seoul , South Korea , was released and the Rio PMP300
11286-483: The third audio format of the MPEG-1 standard, it was retained and further extended—defining additional bit rates and support for more audio channels —as the third audio format of the subsequent MPEG-2 standard. MP3 as a file format commonly designates files containing an elementary stream of MPEG-1 Audio or MPEG-2 Audio encoded data, without other complexities of the MP3 standard. Concerning audio compression , which
11400-505: The title RTMP . If an internal link led you here, you may wish to change the link to point directly to the intended article. Retrieved from " https://en.wikipedia.org/w/index.php?title=RTMP&oldid=815847471 " Category : Disambiguation pages Hidden categories: Short description is different from Wikidata All article disambiguation pages All disambiguation pages Real-Time Messaging Protocol The RTMP protocol has multiple variations: While
11514-437: The two most significant bits (b 00 000011) define a chunk header type of 0 while the rest (b00 000011 ) define a Chunk Stream ID of 3. The four possible values of the header type and their significance are: The last type (b11) is always used in the case of aggregate messages where, in the example above, the second message will start with an id of 0xC3 (b11000011) and would mean that all Message Header fields should be derived from
11628-509: The use of RTMP in scenarios where the use of non-tunneled RTMP would otherwise not be possible, such as when the client is behind a firewall that blocks non-HTTP and non-HTTPS outbound traffic. The protocol works by sending commands through the POST URL, and AMF messages through the POST body. An example is for a connection to be opened. Adobe has released a specification for version 1.0 of
11742-696: The widespread CD ripping and digital music distribution as MP3 over the internet. Further work on MPEG audio was finalized in 1994 as part of the second suite of MPEG standards, MPEG-2 , more formally known as international standard ISO/IEC 13818-3 (a.k.a. MPEG-2 Part 3 or backward compatible MPEG-2 Audio or MPEG-2 Audio BC ), originally published in 1995. MPEG-2 Part 3 (ISO/IEC 13818-3) defined 42 additional bit rates and sample rates for MPEG-1 Audio Layer I, II and III. The new sampling rates are exactly half that of those originally defined in MPEG-1 Audio. This reduction in sampling rates serves to cut
11856-491: Was MUSICAM , by Matsushita , CCETT , ITT and Philips . The third group was ATAC (ATRAC Coding), by Fujitsu , JVC , NEC and Sony . And the fourth group was SB-ADPCM , by NTT and BTRL. The immediate predecessors of MP3 were "Optimum Coding in the Frequency Domain" (OCF), and Perceptual Transform Coding (PXFM). These two codecs, along with block-switching contributions from Thomson-Brandt, were merged into
11970-485: Was able to demonstrate the first real-time hardware decoding (DSP based) of compressed audio. Some other real-time implementations of MPEG Audio encoders and decoders were available for digital broadcasting (radio DAB , television DVB ) towards consumer receivers and set-top boxes. On 7 July 1994, the Fraunhofer Society released the first software MP3 encoder, called l3enc . The filename extension .mp3
12084-609: Was approved as a committee draft of the ISO/IEC technical report in March 1994 and printed as document CD 11172-5 in April 1994. It was approved as a draft technical report (DTR/DIS) in November 1994, finalized in 1996 and published as international standard ISO/IEC TR 11172-5:1998 in 1998. The reference software in C language was later published as a freely available ISO standard. Working in non-real time on several operating systems, it
12198-460: Was chosen by the Fraunhofer team on 14 July 1995 (previously, the files had been named .bit ). With the first real-time software MP3 player WinPlay3 (released 9 September 1995) many people were able to encode and play back MP3 files on their PCs. Because of the relatively small hard drives of the era (≈500–1000 MB ) lossy compression was essential to store multiple albums' worth of music on
12312-401: Was designed to encode this 1411 kbit/s data at 320 kbit/s or less. If less complex passages are detected by the MP3 algorithms then lower bit rates may be employed. When using MPEG-2 instead of MPEG-1, MP3 supports only lower sampling rates (16,000, 22,050, or 24,000 samples per second) and offers choices of bit rate as low as 8 kbit/s but no higher than 160 kbit/s. By lowering
12426-413: Was first used for speech coding compression with linear predictive coding (LPC), which has origins in the work of Fumitada Itakura ( Nagoya University ) and Shuzo Saito ( Nippon Telegraph and Telephone ) in 1966. In 1978, Bishnu S. Atal and Manfred R. Schroeder at Bell Labs proposed an LPC speech codec , called adaptive predictive coding , that used a psychoacoustic coding-algorithm exploiting
12540-590: Was launched in 1999. The ease of creating and sharing MP3s resulted in widespread copyright infringement . Major record companies argued that this free sharing of music reduced sales, and called it " music piracy ". They reacted by pursuing lawsuits against Napster , which was eventually shut down and later sold, and against individual users who engaged in file sharing. Unauthorized MP3 file sharing continues on next-generation peer-to-peer networks . Some authorized services, such as Beatport , Bleep , Juno Records , eMusic , Zune Marketplace , Walmart.com , Rhapsody ,
12654-460: Was published in 1995 as ISO/IEC 13818-3:1995. It requires only minimal modifications to existing MPEG-1 decoders (recognition of the MPEG-2 bit in the header and addition of the new lower sample and bit rates). The MP3 lossy compression algorithm takes advantage of a perceptual limitation of human hearing called auditory masking . In 1894, the American physicist Alfred M. Mayer reported that
12768-460: Was sold afterward in 1998, despite legal suppression efforts by the RIAA . In November 1997, the website mp3.com was offering thousands of MP3s created by independent artists for free. The small size of MP3 files enabled widespread peer-to-peer file sharing of music ripped from CDs, which would have previously been nearly impossible. The first large peer-to-peer filesharing network, Napster ,
12882-455: Was the joint proposal of AT&T Bell Laboratories, Thomson Consumer Electronics, Fraunhofer Society, and CNET . It provided the highest coding efficiency. A working group consisting of van de Kerkhof, Stoll, Leonardo Chiariglione ( CSELT VP for Media), Yves-François Dehery, Karlheinz Brandenburg (Germany) and James D. Johnston (United States) took ideas from ASPEC, integrated the filter bank from Layer II, added some of their ideas such as
12996-571: Was written, the suggested implementations were quite dated. Implementers of the standard were supposed to devise algorithms suitable for removing parts of the information from the audio input. As a result, many different MP3 encoders became available, each producing files of differing quality. Comparisons were widely available, so it was easy for a prospective user of an encoder to research the best choice. Some encoders that were proficient at encoding at higher bit rates (such as LAME ) were not necessarily as good at lower bit rates. Over time, LAME evolved on
#351648