mitchellporter / SwiftVideo

Swift Video Framework for Linux, macOS, and iOS/iPadOS

Home Page:https://www.unpause.live

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftVideo

GitHub Actions

Video streaming and processing framework for Linux, macOS, and iOS/iPadOS (maybe even tvOS). Swift 5.1+ because I'm just opening this up and I really don't feel like dealing with older versions of Swift.

This is very much a WIP. Support is currently better for Linux than macOS and even less-so for iOS devices. Work needs to be done on the Podfile for better Xcode interop (swift package manager doesn't do such a great job there).

Getting Started

For now, check the Examples directory for some hints about how to use this framework. I promise I will be creating documentation to clarify how it all fits together and how you can do useful, interesting things with this framework.

Current Features

  • RTMP Client and Server
  • "Flavor" Client and Server (toy protocol, see flavor.md)
  • OpenCL Support
  • Metal Support
  • Audio Decode/Encode (via FFmpeg and CoreAudio)
  • Video Decode/Encode (via FFmpeg and CoreVideo)
  • Camera capture (macOS/iOS)
  • Text rendering (via FreeType)
  • Video Mixer
  • Audio Mixer
  • Audio Resampler (via FFmpeg+SOX)

FFmpeg support is thanks to https://github.com/sunlubo/SwiftFFmpeg

About

Swift Video Framework for Linux, macOS, and iOS/iPadOS

https://www.unpause.live

License:Apache License 2.0


Languages

Language:Swift 94.5%Language:Metal 1.6%Language:Dockerfile 1.4%Language:C++ 1.3%Language:Ruby 0.9%Language:C 0.3%