Streaming Encoder Glossary
CORS (Cross-Origin Resource Sharing) - A standard that restricts resources from one website, sharing accessing data from another. It provides a mechanism in which a browser and server can interact to determine whether or not it is safe to allow the cross-origin request before transmitting data.
DTLS (Datagram Transport Layer Security) - Modified TLS that may be used with UDP. Exchanges keys are used to encrypt and decrypt the stream at both peers. Used for the symmetric key exchange for WebRTC.
HLS (HTTP Live Streaming) - Media streaming communications protocol originally created by Apple that works by breaking the overall stream into a sequence of small HTTP-based file downloads (called chunks).
ICE (Interactive Connectivity Establishment) - A protocol that describes how to coordinate STUN and TURN to make a connection between hosts. WebRTC leverages ICE for setting up peer connections.
NACK (Negative Acknowledgement) - NACK is one of the error resiliency mechanisms in WebRTC. NACK is a way for the receiving end to indicate it hasn’t received a specific packet. A NACK message is sent to the sender of the media, which in turn needs to decide if it will retransmit the lost packet based on its availability in its cache and its estimate of the usefulness of the retransmission (will it be possible to use it once received).
NAT (Network Address Translator) - A method of remapping one IP address space into another by modifying network address information in the IP header of packets while they are in transit across a router. An essential tool in conserving global address space in the face of IPv4 address exhaustion. NAT Traversal or punch-through is often needed in the case of setting up peer-to-peer systems like WebRTC in order to connect devices.
REMB (Receiver Estimated Maximum Bitrate) - REMB is an RTCP message used to provide bandwidth estimation in order to avoid creating congestion in the network. To provide a better estimation, REMB is usually used in combination with the abs-send-time header extension because providing accurate timing information is critical for the accuracy of the REMB value calculation.
RTC (Real-Time Communication) - A category of software protocols and communication hardware that give real-time guarantees. RTC can often be an informal shortened name for WebRTC.
RTMFP - RTMP over UDP instead of TCP. It is also technically a peer-to-peer protocol that the Flash player can utilize.
RTMP (Real-Time Messaging Protocol) - TCP-based protocol for streaming audio, video, and data over the Internet. It was originally developed by Macromedia for the Flash player. It allows for low-latency communication. Today RTMP is the most common protocol for publishing streams. Professional encoders, OBS, FFMPEG, etc. all support RTMP.
- RTMPE - RTMP with a light-weight encryption layer.
- RTMPS - RTMP over a TLS/SSL connection.
- RTMPT - RTMP which is encapsulated within HTTP requests to traverse firewalls. RTMPT is frequently found utilizing cleartext requests on TCP ports 80 and 443 to bypass most corporate firewalls and allows the Flash player to connect to a server. The encapsulated session may carry plain RTMP, RTMPS, or RTMPE packets within.
RTP (Real-Time Transport Protocol) - Protocol for delivering audio and video over IP networks. Used extensively in streaming media.
RTSP (Real-Time Streaming Protocol) - A network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between endpoints. The payload of media is typically done over either RTP or SRTP. The Red5 Pro Mobile SDK uses RTSP.
SDP (Session Description Protocol) - A format for describing streaming media communication sessions for the purposes of session announcements, session invitations, and parameter negotiation.
SRTP (Secure Real-time Protocol) - A transport protocol that WebRTC uses to send and receive encrypted video and audio.
SSL - (Secure Socket Layer) - Older version of TLS.
STUN (Session Traversal of User Datagram Protocol [UDP] Through Network Address Translators [NATs]) - Used by a host to discover its public IP address when it is located behind a NAT/Firewall. When this host wants to receive an incoming connection from another party, it provides the public IP address as a possible location where it can receive a connection. Red5 Pro examples all use the public Google STUN servers. We suggest, however, that you install your own STUN server for your production apps. A good choice is CoTurn as it supports both STUN and TURN.
TCP (Transmission Control Protocol) - One of the main protocols on the Internet. TCP is a connection-based protocol, once a connection is established data can be sent in both directions. It's used in applications that require high reliability when transmission time is not as important as guaranteed delivery. TCP typically is much easier to use than UDP in strict corporate firewalls.
Third Party Encoders: Software encoders, generally. used to broadcast via RTMP or RTSP. Some examples:
- FFMPEG (Fast Forward MPEG) - Vast software suite of libraries and programs for handling video, audio, and other multimedia files and streams. FFMPEG is usually run as a command-line tool, but it's also frequently used as a C library for doing many video and streaming-related tasks. OBS for example utilizes FFMPEG under its covers.
- OBS (Open Broadcast Software) - A free and open-source software suite for recording and live streaming.
- Wirecast - An example of a subscription-based software suite for live streaming.
TLS (Transport Layer Security) - Cryptographic protocol that provides communication security over a computer network via TCP.
TURN (Traversal Using Relay around NATs) - Makes a connection to the server through relaying media between the two parties if STUN fails.
UDP (User Datagram Protocol) - Connectionless protocol, multiple messages are sent as packets in chunks. One directional. Needed for fast, efficient transmission. Streaming or gaming. Manages the reordering of packets received by the clients and deals with dropped packets that never arrive. Most WebRTC traffic is done with SRTP over a UDP connection.
- Jitter: jitter is the loss of transmitted data between network devices.
- NACK(Negative Acknowledgement): NACK is one of the error resiliency mechanisms in WebRTC. It is a way for the receiving end to indicate it hasn’t received a specific packet.
- PLI (Picture Loss Indication): PLI is another one of the error resiliency mechanisms in WebRTC. A receiver of this message can decide to resent a full frame if he has one available in cache and finds it usable. A PLI can be sent when the receiver of the media lost a full frame or more
Websocket - A computer communications protocol, providing full-duplex (two-way) communication channels over a single TCP connection unlike HTTP. It allows you to open an interactive communication between the server and the client in HTML5 apps. You can make API calls without everything having to go through the server.