Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/larryaasen/dive
Dive is a Flutter toolkit for video recording and streaming. A complete set of packages to build the next generation of Flutter media apps.
https://github.com/larryaasen/dive
audio dart flutter livestreaming media recording streaming toolkit video
Last synced: 1 day ago
JSON representation
Dive is a Flutter toolkit for video recording and streaming. A complete set of packages to build the next generation of Flutter media apps.
- Host: GitHub
- URL: https://github.com/larryaasen/dive
- Owner: larryaasen
- License: mit
- Created: 2020-11-17T03:12:24.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-05T03:19:03.000Z (about 1 month ago)
- Last Synced: 2024-10-27T22:22:50.118Z (13 days ago)
- Topics: audio, dart, flutter, livestreaming, media, recording, streaming, toolkit, video
- Language: Dart
- Homepage:
- Size: 16.6 MB
- Stars: 13
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dive
Introducing Dive! A new Flutter toolkit for video recording and streaming.
A complete set of packages to build the next generation of Flutter media apps.## Introduction
Dive is a video recording and streaming toolkit built on top of Dart and
Flutter with native extensions on macOS. It is a group of Flutter packages for
building media apps. In the future, support for multiple
platforms will be added.**dive** - A Flutter package that provides video capabilities.
**dive_ui** - A Flutter package for Dive containing Widgets for building Flutter
apps for video recording and streaming.**dive_obslib** - A Flutter plugin package for Dive that provides low level access
to obslib using FFI.## dive
The dive package is a Flutter package that provides basic services for
video playback, camera devices, audio, and streaming. This package relies
heavily on the dive_obslib package but remains platform indepenent.## dive_ui
The dive_ui package is a Flutter package containing Widgets to build video based
Flutter apps. This package relies heavily on the dive package but remains
platform indepenent.This package contains many examples on using dive_ui widgets and dive
classes. The examples use the macOS platform folder that contains a Podfile
that references the obslib CocoaPods library.## dive_obslib
The dive_obslib package is a Flutter plugin that provides low level access
to obslib. This package
contains platform-specific implementations with native extensions for Android,
iOS, and macOS.dive_obslib is powered by obslib, a CocoaPods library built from the core of OBS Studio.
It utilizes all of the underlying features of OBS Studio excluding the UI code.
It includes inputs, sources, outputs, encoders, services, and more.dive_obslib contains the DiveObsLibPlugin and the dive_obslib CocoaPods library. The
dive_obslib pod has a dependency on the obslib CocoaPods library.## obslib CocoaPods library
The obslib CocoaPods library is a wrapper around the obslib Framework that can
be consumed by the DiveApp macOS platform Podfile.## obslib Framework
The obslib framework (obslib-framework) is the core of OBS Studio,
and is the non-UI code and resources compiled into a reusable framework. The framework
is built by an Xcode project.The framework folder contains an example macOS application that consumes the
obslib framework without using CocoaPods and is used to test the framework.### Components of the obslib framework
* header files
* data files
* libraries
* pluginsLibraries:
* libobs-opengl.so
* libobsglad.0.dylib
* libobs-frontend-api.dylib
* libobs-scripting.dylib
* libobs.0.dylib
* libavformat.58.dylib
* libpostproc.55.dylib
* libavfilter.7.dylib
* libjansson.4.dylib
* libavcodec.58.dylib
* libavutil.56.dylib
* libswscale.5.dylib
* libavdevice.58.dylib
* libx264.160.dylib
* libswresample.3.dylib
* libmbedx509.2.16.5.dylib
* libfreetype.6.dylib
* libmbedx509.2.16.5.dylib
* librnnoise.0.dylib
* liblaujit-5.1.2.1.0.dylib
* libmbedcrypto.2.16.5.dylibPlugins:
* mac-capture.so
* obs-ffmpeg.so
* linux-jack.so
* obs-libfdk.so
* obs-x264.so
* obs-transitions.so
* obs-filters.so
* vlc-video.so
* obs-browser.so
* obs-outputs.so
* mac-syphon.so
* text-freetype2.so
* mac-vth264.so
* image-source.so
* coreaudio-encoder.so
* obs-vst.so
* rtmp-services.so
* mac-avcapture.so
* mac-decklink.so## Dive Folder Structure
```
dive
|-- apps
|-- dive_app
|-- packages
|-- dive
|-- dive_obslib
|-- dive_ui
```## Concepts
### Input Source
An input source is a camera, microphone, virtual camera, screen capture,
or NDI source.### Sources
### channel
### output
### Encoders
### Services
## VS Code Editor
The Dart line length has been changed from 80 (default) to 110, a
much wider and more readable width. Most developers are using displays
that can easily display wider rows of text, making code easier to
read when a simple method is so long.