digital_video_introduction - A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding)

  •        108

A gentle introduction to video technology, although it's aimed at software developers / engineers, we want to make it easy for anyone to learn. This idea was born during a mini workshop for newcomers to video technology. The goal is to introduce some digital video concepts with a simple vocabulary, lots of visual elements and practical examples when possible, and make this knowledge available everywhere. Please, feel free to send corrections, suggestions and improve it.

https://github.com/leandromoreira/introduction_video_technology
https://github.com/leandromoreira/digital_video_introduction

Tags
Implementation
License
Platform

   




Related Projects

lossless-cut - Cross platform GUI tool for lossless trimming / cutting of video and audio files using ffmpeg

  •    Javascript

Simple, cross platform tool for lossless trimming/cutting of video and audio files. Great for rough processing of large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard GBs of data without losing quality. It doesn't do any decoding / encoding and is therefore extremely fast. This app uses the awesome ffmpeg (included) for doing the grunt work. Since LosslessCut is based on Chromium and uses the HTML5 video player, not all ffmpeg supported formats will be supported. The following formats/codecs should generally work: MP4, MOV, WebM, MKV, OGG, WAV, MP3, AAC, H264, Theora, VP8, VP9 For more information about supported formats / codecs, see https://www.chromium.org/audio-video. Note that the MPEG TS format is not supported. See known issues.

kdenlive - Powerful multi-track video editor

  •    C++

Kdenlive is a video editor, which supports DV, AVCHD (experimental support) and HDV editing. Kdenlive relies on several other open source projects, such as FFmpeg and MLT video framework. It is designed to answer all needs, from basic video editing to semi-professionnal work. Kdenlive can read, edit and export Flash video. Kdenlive supports most audio formats for reading, mixing and exporting. It also offers experimental support for non-destructive audio and video codec.

Ant Media Server - RTMP, RTSP, WebRTC and Adaptive Bitrate. It can also record videos in MP4, HLS and FLV

  •    Java

Ant Media Server is an open source media server that supports RTMP, RTSP, WebRTC and Adaptive Bitrate. It can also record videos in MP4, HLS and FLV. It also supports WebRTC to RTMP Adapter, IP camera.

EVK Educational video codec

  •    Assembly

Evk is a simple lossy video codec. Project aims at developing a clean and functional implementation of basic algorithms used in video compression. Next goal is to create a detailed documentation together with tutorial about video compression.

ffmpeg-libav-tutorial - [WIP] Learn FFmpeg libav the Hard Way

  •    C

I was looking for a tutorial/book that would teach me how to start to use FFmpeg as a library (a.k.a. libav) and then I found the "How to write a video player in less than 1k lines" tutorial. Unfortunately it was deprecated, so I decided to write this one. Most of the code in here will be in c but don't worry: you can easily understand and apply it to your preferred language. FFmpeg libav has lots of bindings for many languages like python, go and even if your language doesn't have it, you can still support it through the ffi (here's an example with Lua).


mpv - Video player based on MPlayer/mplayer2

  •    C

mpv is a media player based on MPlayer and mplayer2. It supports a wide variety of video file formats, audio and video codecs, and subtitle types. mpv has an OpenGL based video output that is capable of many features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more.

OpenShot - Video Editor

  •    C++

OpenShot is a video editor which supports many video, audio, and image formats (based on FFmpeg), Clip resizing, scaling, trimming, snapping, and cutting, Video transitions with real-time previews Compositing, image overlays, watermarks, Key Frame animation, Digital zooming of video clips, Audio mixing and editing and lot more.

ogv.js - JavaScript media player using Ogg/Vorbis/Theora/Opus/WebM libs compiled with Emscripten

  •    Javascript

Media decoder and player for Ogg Vorbis/Opus/Theora and WebM video. Based around libogg, libvorbis, libtheora, libopus, libvpx, and libnestegg compiled to JavaScript with Emscripten.

FFmpeg - Mirror of git://source.ffmpeg.org/ffmpeg.git

  •    C

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. The offline documentation is available in the doc/ directory.

Ardour - Digital Audio Workstation

  •    C++

Ardour is a hard disk recorder and digital audio workstation application. It supports unlimited audio tracks and buses. Its features include Non-destructive, non-linear editing with unlimited undo, and anything-to-anywhere signal routing. It supports Standard file formats BWF, WAV, WAV64, AIFF, CAF and Windows VST plugins. Ardour can be used as an audio mastering environment. Its integration with JACK makes it possible to use mastering tools such as JAMin to process the audio data.

HPC cluster video encoder

  •    CSharp

HPC cluster video encoder is a cluster application that provides near real-time encoding of video different formats and size. It's developed in C# using Microsoft Expression Encoder 3 object model, Microsoft Advanced VC-1 video codec and Microsoft HPC Pack 2008 SDK.

FFmpeg

  •    C

FFmpeg is an audio/video conversion tool. It includes libavcodec, the leading open source codec library. An experimental streaming server for live broadcasts is also included.

Hdot264 video codec

  •    C

Hdot264 is an experimental video codec project that is compliant with the latest and most efficient video compression standard. That standard has many aliases, including H.26L, JVT, MPEG-4 part 10, AVC and H.264 .

KSYLive_iOS - 金山云直播SDK [ iOS推流+播放 ]融合版 支持美颜滤镜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Audio Mixer)、混响(Reverb)、画中画(PIP)

  •    Objective-C

金山云直播SDK [ iOS推流+播放 ]融合版 支持美颜滤镜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Audio Mixer)、混响(Reverb)、画中画(PIP)

hls.js - JavaScript HLS client using Media Source Extension

  •    Javascript

hls.js is a JavaScript library which implements an HTTP Live Streaming client. It relies on HTML5 video and MediaSource Extensions for playback. hls.js does not need any player, it works directly on top of a standard HTML<video>element.

ExoPlayer - Media Player for Android

  •    Java

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API (as of KitKat), including DASH and SmoothStreaming adaptive playbacks, persistent caching and custom renderers.

laravel-ffmpeg - This package provides an integration with FFmpeg for Laravel 5

  •    PHP

This package provides an integration with FFmpeg for Laravel 5.7. The storage of the files is handled by Laravel's Filesystem. This version of the package is only compatible with Laravel 5.7. If you're still using Laravel 5.1 - 5.5, please use version 1.3, for Laravel 5.6 use version 2.1. Mind that older versions are not supported anymore.

shaka-packager - A media packaging SDK intended for C++ programmers writing MPEG-DASH packaging applications with Widevine DRM and Common Encryption support

  •    C++

Media packaging SDK intended for C++ programmers writing DASH/HLS packager applications with common encryption support, Widevine DRM support, Live, and Video-On-Demand.This document provides the information needed to create a DASH/HLS packager that is able to remux and encrypt a video into fragmented ISO BMFF format with common encryption (CENC) support. The DASH/HLS packaging API is also designed in such a way for easy extension to more source and destination formats.

Jave - Java Audio Video Encoder Library

  •    Java

The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can take take advantage of JAVE to transcode audio and video files from a format to another. You can separate and transcode audio and video tracks, you can resize videos, changing their sizes and proportions and so on. Many other formats, containers and operations are supported by JAVE.