Need help with SwiftVideo?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

unpause-live
133 Stars 18 Forks Apache License 2.0 72 Commits 12 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

SwiftVideo

GitHub Actions Swift version License

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

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.

Using with SwiftPM

  1. Add
    .package(url: "https://github.com/unpause-live/SwiftVideo.git", from: "0.2.0")
    to your package dependencies
  2. In your target dependencies, add either
    SwiftVideo
    or
    SwiftVideo_Bare
    depending on whether or not you wish to build with FFmpeg and Freetype support.

Using with Xcode + iOS

You can use this project in Xcode for iOS as a Swift Package as of 0.2.0.

  1. Go to File -> Swift Packages -> Add Package Dependency, or in your Project settings go to the Swift Packages tab and press +
  2. Set the package repository URL to https://github.com/unpause-live/SwiftVideo
  3. Select the branch or version you want to reference. Only 0.2.0 and above will be usable on iOS unless you also compile FFmpeg and Freetype for it.
  4. Choose the
    SwiftVideo_Bare
    product when prompted. This will build SwiftVideo without FFmpeg and Freetype. If you have built those libraries for iOS and wish to use them with SwiftVideo, choose the
    SwiftVideo
    product instead.
  5. If you are using the VideoMixer you will need to include
    Sources/SwiftVideo/kernels.metal
    in your project directly so that they are included. This will be changed when Swift 5.3 is released.

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.