Terms and Definitions¶
For the purposes of this documentation store, we will use the following terms and definitions.
A defined organization of binary data within a computer file. For example, an Excel spreadsheet file contains ‘formatted’ binary data that represents a spreadsheet, or an MP3 file is a format for encoding music or other audio.
Example formats used for compressing video:
a formal specification that describes how many distinct streams (video data, audio data, subtitle data) are stored and/or interleaved into a single file (or multiple files).
…or, a file that is a container for streams (ie, a ZIP file, a MP4 file, an MKV file, a TS file, etc.) that abides by a formal container specification
A function or software library that can take raw stream data (video, audio, etc.) and ‘encode’ it into a specific format (for example, H264, H265, AAC).
A function or software library that can take a encoded stream data (video, audio, etc.) and ‘decode’ it into raw data.
A function or set of software that combines encoders or decoders to be able to both read and write data streams in a specific format.
A family of binary representation formats (that can serve as encoders or decoders). For example, an H264 codec can decode and encode streams using the H264 format for representing video objects.
Similar to a codec, a function or set of software that decodes streams in one format, and then encodes the stream into another, different format.
A function or set of software that can take multiple decoded/encoded streams and transform the streams to fit different output requirements (for example, one muxer may output video files suitable for live streaming, while a different muxer may output video files suitable for long term storage). “Muxer” is short-hand for either a “multiplexer” or a “demultiplexer.”
Data Management and Computation, used to refer to software products that provide the following services:
Public or private hosting of data.
Data retrieval, ingestion, and quality assurance of data.
Computation and transformation on data.
The following tools, standards, and protocols will be referenced in this documentation frequently.
Transmission Control Protocol, a networking protocol built on top of IP networks that allows for the reliable transmission of data packets between network devices. Used where the correct and in-order delivery of packets is required to implement data transmission (at the cost of increased overhead and latency).
User Datagram Protocol, a networking protocol built on top of IP networks that allows for the transmission of data packets between network devices, but without assurances for the reliability of packet delivery. Used where the reliability of data transmission is not absolutely required, or where reliability is assured in some other way.
UDP is used often in lieu of TCP for streaming media due to its lower overhead and the relaxed requirements for video and audio streaming.
File Transfer Protocol, a network protocol for transferring files, built on TCP.
Real Time Streaming Protocol, a networking protocol used to stream media content across an IP network. Makes use of both TCP and UDP connections to provide streaming services between a media consumer (a web browser, a mobile phone) and a media server (a program that implements the server portion of RTSP).
Real Time Messaging Protocol, a networking protocol used to stream media content across an IP network. Makes use of TCP connections to push streaming content from a media producer (a camera, a capture device) to a media server (a program that implements the server portion of RTMP).