From uncompressed, raw, audio or video material/source (stream or file) to compressed format.
“There are two types of video encoding; live and file-based, and it’s important to make the distinction between them. Live video encoding is the process of compressing large, raw video and audio files so that they use less network bandwidth. When it comes to transporting uncompressed raw video, this can mean a colossal amount of data to send over any connection. Given the constant struggle for bandwidth efficiency, compression significantly reduces the bandwidth required, making it possible for real-time video streams or files to be easily transmitted across constrained networks such as the public internet.” 
When working with video files rather than live video, encoders are used to compress and reduce the size of video content so that it can take up less storage space and be easier to transfer from one part of a video production workflow to another.
Hardware encoders are turnkey devices with dedicated processing power for low latency encoding of video streams whereas software encoders have to share CPU and other hardware resources. Hardware video encoders like the Haivision Makito X series are used by a wide range of industries for delivering flawless quality, low latency video in many different applications including:
- Broadcast – for backhaul, live remote interviews, return feeds, and remote production
- Enterprise – for internet streaming of your all-hands meetings, remote contribution, as IPTV, and digital signage
- Defense – for mission critical Intelligence, Surveillance and Reconnaissance (ISR) applications
Software encoders can be installed on standard off the shelf hardware or as virtual machines (VM) in data centers or cloud platforms. Although software can be a great option for file-based encoding of video content, they don’t offer ultra low latency levels comparable to dedicated hardware encoders and therefore not suitable for most live broadcast contribution applications.
“Essentially the opposite of live encoding, video decoding is the process of decoding or uncompressing encoded video in real-time. A video decoder converts an encoded video stream to HDMI for display on a screen or to SDI for connected to broadcast production systems including video production switchers. Video decoders can also decode embedded audio tracks for sound production as well as metadata for information on video formatting, time codes, subtitles, and closed captioning. For non-broadcast applications such as ISR, metadata may also include vital KLV information.” 
From compressed audio or video material/source (stream or file) in one format or size to another, where format and ‘size’ can mean a few different things, like compression algorithm used (e.g. MPEG-2 to MPEG-4 x or H.264, or H.265), and/or modified resolution (e.g. 1920×1080 to 1280×720, or less – ‘from TV to web use’), to lowering bitrate, or enabling editing, …
“Video transcoding is the process of converting an encoded stream from one format to another, or from one size to another. The source video can either be real-time or file-based. Most transcoders use a two-step process of decoding and re-encoding. Step one involves decoding the original data into an intermediate format, sometimes called a mezzanine, and step two re-sizes and re-encodes the video to a new or several new formats depending on the final viewing device. Some transcoders such as Haivision’s KB Series can also act as encoders by accepting an uncompressed video source such as SDI for encoding into multiple formats.
A typical application for a video transcoder is for OTT services where a high quality source is re-encoded into a multitude of bitrates and resolutions for adaptive bitrate streaming protocols such as HLS and MPEG-DASH. This enables a single video source to be delivered to many different types of viewing devices including TVs, computers, and smartphones as well as directly to social media platforms such as Facebook and YouTube.”