LeanScreen 1.1.0
dotnet add package LeanScreen --version 1.1.0
NuGet\Install-Package LeanScreen -Version 1.1.0
<PackageReference Include="LeanScreen" Version="1.1.0" />
paket add LeanScreen --version 1.1.0
#r "nuget: LeanScreen, 1.1.0"
// Install LeanScreen as a Cake Addin #addin nuget:?package=LeanScreen&version=1.1.0 // Install LeanScreen as a Cake Tool #tool nuget:?package=LeanScreen&version=1.1.0
LeanScreen
Overview
Provides a set of tools for working with multimedia. Some key features:
- Extract video data and stills, directly from stream with managed .NET code!
- Compiling a collection of stills into a single file
- Some basic media organisation capability
The Extensions package provides default implementation for video and image handling (ffmpeg and sixlabors respectively).. However the abstractions package is designed so that you can roll your own if you so choose.
The extensions are exposed to the command line in the form of a Cli tool named leanctl
.
(NB: This tool is currently not published anywhere, and needs to be built from source - see the dotnet publish ...
commands below for reference).
Binaries
The calling assembly needs to have ffmpeg binaries available. The x64 versions for the appropriate ffmpeg version are provided for windows in the Rendering.Ffmpeg project.
In the case of linux, ffmpeg (v7.x) must be installed separately. For example, on Ubuntu 24.04, this can be achieved via:
sudo add-apt-repository ppa:ubuntuhandbook1/ffmpeg7
In the case of windows, the dlls were obtained from here: https://www.gyan.dev/ffmpeg/builds/
In either case, the assembly looks for ffmpeg binaries at runtime. By default, it will be in "ffmpeg" folder, relative to your invocation path.
To provide control, you can set the environment variable, FFMPEG_BINARIES_PATH
to an absolute path to override this.
In Ubuntu 24.04, these could be seen in /usr/lib/x86_64-linux-gnu after ffmpeg was installed.
Further Notes
Handy Commandies
# Restore tools
dotnet tool restore
# General clean up
rd -r **/bin/; rd -r **/obj/;
# Run unit tests
rd -r ../**/TestResults/; dotnet test -c Release -s .runsettings; dotnet reportgenerator -targetdir:coveragereport -reports:**/coverage.cobertura.xml -reporttypes:"html;jsonsummary"; start coveragereport/index.html;
# Run mutation tests
rd -r ../**/StrykerOutput/; dotnet stryker -o;
# Pack and publish a pre-release to a local feed
$suffix="alpha001"; dotnet pack -c Release -o nu --version-suffix $suffix; dotnet nuget push "nu\*.*$suffix.nupkg" --source localdev; rd -r ../**/nu/;
# Publish examples
dotnet publish LeanScreen.CliTool -p:PublishSingleFile=true -p:DebugType=Embedded -r win-x64 -c Release --sc false
dotnet publish LeanScreen.CliTool -p:PublishSingleFile=true -p:DebugType=Embedded -r linux-x64 -c Release --self-contained
# Allow execute (Linux)
sudo chmod +x leanctl
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Analyse (>= 1.0.0)
- LeanScreen.Abstractions (>= 1.1.0)
- System.Memory (>= 4.5.5)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on LeanScreen:
Package | Downloads |
---|---|
LeanScreen.Rendering.Ffmpeg
Av multimedia ffmpeg video rendering. |
|
LeanScreen.MediaRepo.FileSystem
Av multimedia filesystem repository. |
|
LeanScreen.Extensions
Av multimedia. This library also contains default implementation for video frame and image rendering. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Upgraded to ffmpeg7