bloomtom.DEnc 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package bloomtom.DEnc --version 1.0.0
NuGet\Install-Package bloomtom.DEnc -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="bloomtom.DEnc" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add bloomtom.DEnc --version 1.0.0
#r "nuget: bloomtom.DEnc, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install bloomtom.DEnc as a Cake Addin
#addin nuget:?package=bloomtom.DEnc&version=1.0.0

// Install bloomtom.DEnc as a Cake Tool
#tool nuget:?package=bloomtom.DEnc&version=1.0.0

DEnc

Easy dotnet DASH.

This library acts as a simplification interface wrapping around ffmpeg and mp4box. Simply pass in a file and the desired qualities, and the complicated commands and output processing is handled for you. The result is a set of media files and an mpd file.

Nuget Packages

Package Name Target Framework Version
DEnc .NET Standard 2.0 NuGet

Usage

Usage is fairly straightforward. Create a new instance of DEnc.Encoder then call encoder.GenerateDash. Everything has a docstring, but the more esoteric bits are covered below.

FAQ

What do I give for ffmpegPath, ffprobePath and boxPath?

You'll need an ffmpeg, ffprobe and mp4box executable on the system you're running from. If you put these in your path variable then the defaults can be left.

You can get executables for your platform here:

What are stdoutLog and stderrLog?

These parameters are optional on construction of DEnc.Encoder, but it's highly recommended you provide an action for them. Both callbacks are called to reflect the std output streams for ffmpeg and mp4box. Don't be fooled by the name "stderr", that's actually the logging output for most messages, not just errors. DEnc also writes its own info log entries to this callback.

What are qualities?

Qualities are sets of parameters which direct an ffmpeg output stream. You can have several qualities to support DASH adaptive streaming

When you call encoder.GenerateDash a collection of qualities is required. It's important that the collection you provide is distinct on the bitrate, because the bitrate is used in output filenames to ensure they have unique names. Also, it doesn't make much sense to make multiple files at the same bitrate for a DASH encode anyway.

I asked for quality x,y,z but instead I got x,y,q or even just x,q instead. What gives?

The qualities you give may not be what's actually output. The desired Qualities list is crushed against the input file. Quality crushing happens when you ask for output bitrates higher than the input file bitrate by more than 5%. All bitrates that meet this criteria are removed from the qualities list, and they're replaced by a single copy quality that will mirror the input media exactly, or at least as close as ffmpeg can get it to be. This feature is definitely recommended to save disk space and reduce encode time, but it is optional. Set DisableQualityCrushing to true to disable crushing.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on bloomtom.DEnc:

Package Downloads
Sclinker.Infrastructure

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.0 348 3/20/2023
2.0.1-rc 393 8/15/2020
2.0.0-rc 320 8/13/2020
1.4.2 1,040 2/2/2020
1.4.1 592 1/29/2020
1.4.0 565 12/11/2019
1.3.6 480 12/6/2019
1.3.5 505 9/29/2019
1.3.4 505 9/4/2019
1.3.3 543 4/11/2019
1.3.2 579 3/19/2019
1.3.1 543 3/13/2019
1.3.0 564 3/12/2019
1.2.2 586 3/11/2019
1.2.1 541 3/10/2019
1.2.0 556 3/5/2019
1.1.4 641 2/8/2019
1.1.3 627 2/8/2019
1.1.2 626 1/26/2019
1.1.1 638 1/26/2019
1.1.0 706 1/18/2019
1.0.0 721 1/3/2019
0.2.8 679 11/28/2018
0.2.7 671 11/26/2018
0.2.6 821 9/11/2018
0.2.5 737 9/10/2018
0.2.4 737 9/10/2018
0.2.3 762 9/6/2018
0.2.2 801 8/15/2018
0.2.1 773 8/8/2018
0.2.0 806 8/7/2018
0.1.7 787 7/29/2018
0.1.6 823 7/28/2018
0.1.5 789 7/27/2018