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

  •        463

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

rtsp-simple-server - ready-to-use server and proxy that allows to read, publish and proxy video and audio streams with RTSP, RTMP, HLS

  •    Go

rtsp-simple-server is a ready-to-use and zero-dependency server and proxy that allows users to publish, read and proxy live video and audio streams through various protocols like RTSP, RTMP, HLS. It publish and read live streams to the server. It acts as a proxy and serve streams from other servers or cameras, always or on-demand.

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.

Pion WebRTC - A pure Go implementation of the WebRTC API

  •    Go

Pion is the Modern Stack for Web Real-Time Communication. It implements the WebRTC API. Spend more time building and less time learning a new API. Its feature include PeerConnection API support for DataChannels, Send/Receive audio and video, Renegotiation. It provides API with direct RTP/RTCP access, API also allows developer to pass their own packetizer, Opus, PCM, H264, VP8 and VP9 packetizer, Sender/Receiver Reports, Easy integration with x264, libvpx, GStreamer and ffmpeg and lot more.

Ant Media Server - Streaming engine software that provides adaptive, ultra low latency streaming by using WebRTC technology

  •    Java

Ant Media Server is designed to provide live video streaming technology infrastructure with ultra-low latency(WebRTC) and low-latency(HLS, CMAF available in v2.2+). It can be used to enable streaming any type of live or on demand video to any devices including mobiles, PCs or IPTV boxes.

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.


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.

janus-webrtc-gateway-docker - Perfect Docker Image for Media Streaming Expert User ( https://github

  •    Dockerfile

This is a docker image for Janus Webrtc Gateway. Janus Gateway is still under active development phase. So, as the official docs says, some minor modification of the middleware library versions happens frequently. I try to deal with such a chage as much as I can. If you need any request about this repo, free to contact me. About the details of setup for this docker image, you should read the official docs https://janus.conf.meetecho.com/index.html carefully. I think that janus is better for webinar(web seminar), and jitsi is better for web conference system. The scalability of the current Jitsi Video Bridge(20181007) is poor because of having no local recording file(I'm not sure of this..). https://www.youtube.com/watch?v=OHHoqKCjJ0E Jitsi last-n + VP8 simulcasting has the very good performance for web conference https://jitsi.org/wp-content/uploads/2016/12/nossdav2015lastn.pdf For the video format, janus recording is per video streaming, jitsi is for mixed video conference by using chrome headlesss + ffmpeg(alsa, libxcb). From these points, janus is suitable for webinar, jitsi is for web conference. Of course, both WebRTC SFU are amazing work!! I'm using both.

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.

AVideo Platform - Designed for easy video sharing, With Video On Demand (VOD) and LiveStream support

  •    PHP

AVideo is an audio and video platform designed for easy audio and video sharing, with Video On Demand (VOD), streaming, and LiveStream support. It allows you to import and encode videos from other sites directly from the Internet, as well as support for mobile devices, through the responsive layout of the site or through a hybrid application that allows you to directly view and stream videos of your mobile devices.

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 .

SRS (Simple Realtime Server)- Simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

  •    C++

SRS (Simple Realtime Server) is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT. SRS is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation. SRS provides variety of inputs, for example, Push RTMP to SRS, Push RTSP/UDP/FLV to SRS, Pull Stream to SRS. SRS can transform the RTMP to other protocols or deliveries, for example, RTMP Transcode, Snapshot, Forward to Other Servers, Transmux to HTTP-FLV, Transmux to HLS, Transmux to HDS, Transmux SRT, DVR to FLV/MP4. SRS canbe used in CDN for large stream clusters, for example, RTMP Cluster、 OriginCluster, VHOST, Reload, HTTP-FLV Cluster.

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)

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.