Back to Programs

Media

FFmpeg

Record, convert and stream audio & video

assemblycgit

Participation history

11 GSoC years

2026

3 projects

Official year page

Improve WHIP(WebRTC-HTTP Ingest Protocol) Support

FFmpeg already supports WHIP, allowing users to publish WebRTC streams using HTTP signaling. This project aims to extend WHIP support by adding...

WebRTC-HTTP Egress Protocol (WHEP)

FFmpeg can send WebRTC streams via WHIP but has no way to receive them. This project fills that gap by implementing a WHEP demuxer in libavformat,...

Modernizing LibTorch Backend with Zero Copy and Batching

Building upon the recently merged asynchronous execution infrastructure in the FFmpeg LibTorch backend, this project targets two high-impact...

2025

3 projects

Official year page

ProRes Vulkan decoder

ProRes is a video codec developed by Apple, and is frequently used as an intermediate in video editing, sitting in-between raw formats and consumer...

ProRes Vulkan Encoder

ProRes is a popular codec for video editors and professional due to its high quality. FFmpeg has supported it for a while, but lacks hardware...

Implementation of WHIP (WebRTC-HTTP Ingestion Protocol) in FFmpeg

Synopsis: Support WebRTC-HTTP ingestion protocol for FFmpeg but do minimal changes to current code. Support basic ICE candidate exchange and basic...

2024

7 projects

Official year page

eSSIM: video filter implementation

eSSIM presents a solution to the limitations of the widely adopted SSIM metric in accurately assessing human visual perception and performance. This...

Addition of PU21 Transform Filter

The project incorporates addition of a new video filter to FFmpeg, PU21 transform. PU21 has been developed to convert absolute high dynamic range...

Update SITI filter to match with latest specification.

This proposal aims to update the SITI video filter within FFmpeg to align with the latest ITU-T P.910 specification. The current implementation...

Vulkan VC-2 encoder

VC-2 is a relatively recent codec for high definition video in high bitrate applications. While hardware encoders for it exist, they come with many...

Performance enhancement of VVC decoder via x86 SIMD assembly

VVC is the successor to the well-known codec HEVC and is currently being implemented in FFmpeg. This project will focus on improving the performance...

VC-2 decoder Vulkan Implementation

This projects's aim is to implement the VC-2 decoder for FFmpeg in vulkan. VC-2 is a low-latency video codec that uses wavelet transforms and entropy...

Enhancement of FFmpeg's libvmaf Filter

Project aims to enhance current implementation of the libvmaf filter in FFmpeg, which calculates the Video Multimethod Assessment Fusion (VMAF) for a...

2023

3 projects

Official year page

Future-proofing FFmpeg — VVC Decoder Improvements

Versatile video coding (VVC) is a recent standard for video compression. It is the newest in a line of standards which have proven extremely...

Implementing an Audio Overlay Filter

The Audio Overlay Filter aims to provide the functionality of replacing specified sections of an audio stream with other input audio streams. I will...

x86_64 Assembly code for VVC decoding filters

Versatile Video Codec (a.k.a VVC, H.266) is the successor to the popular High Efficiency Video Codec (a.k.a HEVC, H.265) video compression standard....

2022

2 projects

Official year page

GPU (CUDA) accelerate common software video filters

FFmpeg has existing widely used filters that runs perfectly but on the CPU without using the GPU, so I will be working on writing some of these...

Add support for Part 15 to the JPEG 2000 (HT) decoder

This proposal aims to implement an ISO ITU-T Rec. T.814 compliant High Throughput jpeg2000 decoder for ffmpeg. The new jpeg2000 standard while being...

2021

5 projects

Official year page

FFmpeg x86-64 assembly FFT

The new frequency transformation infrastructure in libavutil is lacking 64-bit float versions of FFTs and MDCTs for x86. This projects aims at...

FFT assembly

libavutil is being expanded with a modern way of handling frequency transformation. The project aims to significantly increase the speed of this code...

H264/HEVC ARM64 10-bit assembly

Modern codecs require handwritten SIMD assembly for good performance, much of this has been implemented for 8-bit depth in h264 and hevc but there...

TX AArch64 Doubles SIMD Assembly

I plan to write SIMD assembly for the new tx (transform) subsystem in FFmpeg, targeted at AArch64 for double precision inputs.

Guided Filter in FFmpeg

Dehaze, derain, and denoise are very common image processing tasks, aiming to improve the visual quality of images. Even worse, the low-quality...

2020

5 projects

Official year page

JPEG 2000 Decoder improvements

FFMPEG has a native JPEG2000 decoder. However, the decoder is incomplete and does not support all types of JPEG2000 files. The aim of this project is...

ABR module for FFmpeg

The goal of this project is to implement an adaptive bitrate (ABR) module into video streaming protocols over HTTP such as DASH / HLS to achieve...

FLIF Encoder & Decoder Project

FLIF is a modern lossless image format with very good compression ratio compared to other formats. I worked to implement this codec under FFmpeg...

Audio Tones Source Filter

The aim of this project is to create an audio tones source filter that generates music algorithmically. The filter uses Fluidsynth API and gives the...

Implementation of a FLIF Codec in libavcodec

Free Lossless Image Format (FLIF) is a relatively new lossless image format which claims to have a higher compression ratio than most conventional...

2019

6 projects

Official year page

Implement OpenCL Deshake Filter

The goal of this project is to write a solid, feature-complete, and reasonably performant implementation of the deshake video filter in OpenCL. This...

Derain Filter in FFmpeg

Rain and fog are very common weather in actual life. However, it can affect the visibility. Especially in heavy rain, rain streaks from various...

HEIF Support

The aim of this project is to add support for HEIF/HEIC files in FFmpeg. High Efficiency Image File Format (HEIF) specifies the storage of individual...

360° video filter

For the past several years 360° cameras have become far more accessible, and several video-sharing services enabled support for 360° videos (for...

DICOM Support

The project aims to program a demuxer in the libavformat and a parser and decoder in the libavcodec library. As DICOM files contain lots of metadata...

DNG Raw Image Format Support

Digital Negative (DNG) image format decoding support for the FFmpeg project. DNG is an open lossless/raw image format meant to standardize and...

2018

5 projects

Official year page

Super Resolution Filter

For the past two years several image and video super resolution methods have been proposed that are based on convolutional neural networks. This work...

FFserver replacement

The goal of this project is to write a replacement for the now removed ffserver component. It should meet the criteria proposed for the work on...

OpenCL support for Libavfilter

This project focuses on implementing OpenCL support for Libavfilter, with other parts of the project (including scaling, color conversion and...

Color Constancy Filter

Various implementations of color constancy filter using machine learning and low-level image statistics.

Cineform Decoder Improvements

The GoPro Cineform codec is a cross-platform intermediate codec designed for editing high-resolution footage. It was original designed for compressed...

2017

6 projects

Official year page

Fully featured Ambisonic decoder implemented as a filter

Ambisonics is a full-sphere surround sound technique: in addition to the horizontal plane, it covers sound sources above and below the listener....

FITS image encoder and decoder

The project aims at implementing the FITS image encoder and decoder in ffmpeg. FITS is an open standard defining a digital file format useful for...

mInterpolate Improvements

Improve quality of frames generated by currently implemented Motion Compensated Frame Rate Conversion video filter - mInterpolate by implementing...

VP9 decoder improvements

Assembly optimizations that take advantage of avx2 instruction set to provide performance improvements to the vp9 decoder. Tile threading support.

Vorbis Encoder Improvements

Vorbis as a lossy audio codec provides excellent quality audio compared to other codecs at a similar bit rate, including MP3, and even comparable to...

VMAF video filter

VMAF is a perceptual video quality assessment algorithm developed by Netflix. The project aims to create a fully functional video filter inside...

2016

7 projects

Official year page

FFv1 P frame support

This project proposed implementation of P frames with motion compensation and motion estimation support for FFv1 FFmpeg codec and its fine-tuning...

Motion Interpolation Filter

Generate video frames by means of interpolation between existing ones by estimating the "true" motion using various algorithms, in attempt to make...

MPEG-4 Audio Lossless Coding (ALS) encoder implementation

The project aims at enhancing and merging the MPEG-4 ALS encoder, which has been written already, into the official FFmpeg codebase. Second, the...

Tee muxer improvement

Tee muxer is capable of writing same coded packets to multiple outputs. However in current implementation outputs are being blocked by each other and...

VDPAU filter

FFmpeg has implemented VDPAU video decoding for quite a time.This project focuses on adding VDPAU filtering support to FFmpeg, allowing to further...

TrueHD Encoder

Dolby TrueHD is one of the lossless audio codecs used on Blu-ray discs. FFmpeg is capable of decoding TrueHD content, but encoding functionality is...

Improve selftest coverage

Doing changes on large projects can break the project, besides finding bugs can be hard and tedious. Tests help to prevent, find and fix bugs much...