This project is an example of developing a C# library that can use features from FFmpeg native libraries and that inegrates with the SIPSorcery real-time communications library.
This project has been tested successfully on Windows, MacOs and Linux.
The classes in this project provide functions to:
- Video codecs: VP8, H264
- Audio codecs: PCMU (G711), PCMA (G711), G722, G729 and Opus
- Video input:
- using local file or remote using URI (like this)
- using camera
- using screen
- Audio input:
You can set any Video input (or none) with any Audio input (or none)
There is no Audio ouput in this library. For this you can use SIPSorcery.SDL2
Install the FFmpeg binaries using the packages at https://www.gyan.dev/ffmpeg/builds/#release-builds and include the FFMPEG executable in your PATH to find them automatically.
As of 14 Jan 2024 the command below works on Windows 11 and installs the required FFmpeg binaries and lbraries wheer teh can be found by SIPSorceryMedia.FFmpeg:
winget install "FFmpeg (Shared)" --version 7.0
Install the FFmpeg binaries using the package manager for the distribution.
sudo apt install ffmpeg
Install homebrew
brew install ffmpeg
brew install mono-libgdiplus
Test
- with FFmpegFileAndDevicesTest project
- or with the WebRTC Test Pattern demo