All Projects → h4tr3d → Avcpp

h4tr3d / Avcpp

Licence: other
C++ wrapper for FFmpeg

Programming Languages

cpp
1120 projects
cpp17
186 projects

Labels

Projects that are alternatives of or similar to Avcpp

Wallop
📺 A transcoding server for your HDHomeRun Prime
Stars: ✭ 165 (-24.66%)
Mutual labels:  ffmpeg
Gear360pano
Simple script to create equirectangular panorama by stitching images from Samsung Gear 360
Stars: ✭ 178 (-18.72%)
Mutual labels:  ffmpeg
Videostreamer
Stream video (e.g. RTSP) to an HTML5 video element (MP4)
Stars: ✭ 208 (-5.02%)
Mutual labels:  ffmpeg
Caincamera
CainCamera is an Android Project to learn about development of beauty camera, image and short video
Stars: ✭ 2,397 (+994.52%)
Mutual labels:  ffmpeg
Video Downloader Deploy
Video Downloaders (you-get, youtube-dl, annie) One-Click Deployment Batch. || 视频下载器 (you-get, youtube-dl, annie) 一键配置脚本。
Stars: ✭ 178 (-18.72%)
Mutual labels:  ffmpeg
Weixinrecordeddemo
仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑
Stars: ✭ 2,197 (+903.2%)
Mutual labels:  ffmpeg
Sgplayer
A powerful media play framework for iOS, macOS, and tvOS.
Stars: ✭ 1,974 (+801.37%)
Mutual labels:  ffmpeg
Ffplayer
a video player based on ffmpeg for win32 and android platform.
Stars: ✭ 210 (-4.11%)
Mutual labels:  ffmpeg
Autosubsync
Automatically synchronize subtitles with audio using machine learning
Stars: ✭ 179 (-18.26%)
Mutual labels:  ffmpeg
Puppeteer Lottie
Renders Lottie animations via Puppeteer to image, GIF, or MP4.
Stars: ✭ 208 (-5.02%)
Mutual labels:  ffmpeg
Online Video Editor
API based Online Video Editing using FFMPEG & NodeJs for Backend Editing
Stars: ✭ 176 (-19.63%)
Mutual labels:  ffmpeg
Ffmpeg.js
Port of FFmpeg with Emscripten
Stars: ✭ 2,447 (+1017.35%)
Mutual labels:  ffmpeg
Ffmpegrecorder
An Android video recorder using JavaCV and FFmpeg.
Stars: ✭ 184 (-15.98%)
Mutual labels:  ffmpeg
Puppeteer Recorder
Record animations using puppeteer. Based on electron-recorder.
Stars: ✭ 169 (-22.83%)
Mutual labels:  ffmpeg
Ffmpegandroid
android端基于FFmpeg实现音频剪切、拼接、转码、编解码;视频剪切、水印、截图、转码、编解码、转Gif动图;音视频合成与分离,配音;音视频解码、同步与播放;FFmpeg本地推流、H264与RTMP实时推流直播;FFmpeg滤镜:素描、色彩平衡、hue、lut、模糊、九宫格等;歌词解析与显示
Stars: ✭ 2,858 (+1205.02%)
Mutual labels:  ffmpeg
Android Media Converter
Android open source media converter build on top of FFmpeg
Stars: ✭ 164 (-25.11%)
Mutual labels:  ffmpeg
Jaffree
Java ffmpeg and ffprobe command-line wrapper
Stars: ✭ 184 (-15.98%)
Mutual labels:  ffmpeg
Cloud Morph
Decentralize, Self-host Cloud Gaming/Application
Stars: ✭ 207 (-5.48%)
Mutual labels:  ffmpeg
Ffmpeg Android Maker
Contains a script that assembles FFmpeg library for Android
Stars: ✭ 207 (-5.48%)
Mutual labels:  ffmpeg
Giph
simple gif recorder
Stars: ✭ 193 (-11.87%)
Mutual labels:  ffmpeg

AvCpp Build Status Language grade: C/C++ PRs Welcome

Wrapper for the FFmpeg that simplify usage it from C++ projects.

Currently covered next functionality:

  • Core helper & utility classes (AVFrame -> av::AudioSample & av::VideoFrame, AVRational -> av::Rational and so on)
  • Container formats & contexts muxing and demuxing
  • Codecs & codecs contexts: encoding and decoding
  • Streams (AVStream -> av::Stream)
  • Filters (audio & video): parsing from string, manual adding filters to the graph & other
  • SW Video & Audio resamplers

You can read the full documentation here.

Requirements

  • FFmpeg >= 2.0
    • libavformat >= 54.x.x
    • libavcodec >= 54.x.x
    • libavfilter >= 3.x.x
    • libavutil >= 51.x.x
    • libswscale >= 2.x.x
    • libswresample >= 0.x.x
    • libpostproc >= 52.x.x
  • GCC >= 5.0 (C++11 is required)
  • CMake (> 3.11) or Meson(> 50.0)

Debian, Ubuntu 19.10 and Linux Mint 20.x or newer

You should install FFmpeg packages from the deb-multimedia.org site:

sudo apt-get install libavformat-dev \
                     libavcodec-dev \
                     libavutil-dev \
                     libavfilter-dev \
                     libswscale-dev \
                     libswresample-dev \
                     libpostproc-dev

Note 1: I did not test building on Debian.

Note 2: Debian Wheezy repo contains only FFmpeg 1.0.8. I tested building only with 2.x. So it is strongly recoment use Wheezy back-ports repo.

Ubuntu 18.04 and Linux Mint 19.x

If you are on Ubuntu bionic or Linux Mint 19.x you should add ffmpeg-4 PPA:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4 -y
sudo apt update && sudo apt upgrade

After that just install the same packages as above.


Build

There are two ways to compile eitehr with CMake or with meson. By default meson is faster, but if your project uses CMake, those instructions might be better for integration.

Building with CMake

git clone --recurse-submodules https://github.com/h4tr3d/avcpp.git avcpp-git
cd avcpp-git
mkdir build
cd build
cmake ..
make -j8

If your Git version so old (refer to the SO for clarification) you can just replace --recurse-submodules with pair of git submodule init && git submodule update.

If FFmpeg located in non-standard place:

cmake -DPC_FFMPEG_LIBRARY_DIRS=<some_path> -DPC_FFMPEG_INCLUDE_DIRS=<some_path> ..

To point install prefix:

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

Install:

sudo make install

or (for packaging)

sudo make DESTDIR=<some_prefix> install

Refer to CMake documentation for more details that can cover some special cases.

Building with meson

Before you can begin with the building you have to clone the repository like this:

git clone https://github.com/h4tr3d/avcpp.git avcpp-git
cd avcpp-git

IDE Integration:

There are extentions for various IDEs like VS Code/Codium, Eclipse, Xcode, etc. Refer to the docs for more information.

Building the project:

If you don't have the dependencies installed, meson will download and compile them. Because ffmpeg is so large (~2000 c files), you should consider using your package manager to install them. You can then build the project with the following commands:

mkdir build
cd build
meson ..
meson compile

Configuring the project:

By default the sample projects and the test are compiled. If you don't want this you can disable it with the following commands:

meson configure -Dbuild_tests=false
meson configure -Dbuild_samples=false

You can set the install prefix using meson --prefix <your/own/prefix>. To see all of the available options just type meson configure and meson configure --help to get more insormation.

Installing the project:

Just type meson install and the project will be installed in the configured prefix (/usr/local by default).

Running the tests:

To run the test just use meson test. If you disabled the test this will do nothing.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].