VL.FFmpeg 1.0.2

dotnet add package VL.FFmpeg --version 1.0.2
                    
NuGet\Install-Package VL.FFmpeg -Version 1.0.2
                    
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="VL.FFmpeg" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VL.FFmpeg" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="VL.FFmpeg" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VL.FFmpeg --version 1.0.2
                    
#r "nuget: VL.FFmpeg, 1.0.2"
                    
#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.
#:package VL.FFmpeg@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VL.FFmpeg&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=VL.FFmpeg&version=1.0.2
                    
Install as a Cake Tool

VL.FFmpeg

A video player node for vvvv gamma. FFmpeg does the decoding, so you can play the files you actually have — not only the formats a built-in player happens to like.

Connect Video Source to the usual Skia or Stride nodes. Connect Audio Source to AudioSourceToAudioSignal from VL.Audio and then to AudioOut.

Windows x64.

Features

  • Play, pause, seek, end-of-file and basic looping
  • Optional VideoPlayer (Advanced Controls) node with a reusable transport-control object
  • Works with Skia and Stride through the standard video nodes
  • Decodes audio through the standard VL.Audio IAudioSource consumer
  • D3D11VA decode when available
  • GPU upload and color conversion for supported software-decoded pixel formats
  • BT.601/BT.709/BT.2020 matrix and full/limited-range conversion
  • Nonlinear BGRA8 or linear RGBA16F output according to the consumer
  • Keeps decoding off the render thread

Decode Mode defaults to Auto: D3D11VA when the consumer and stream support it, software decode otherwise. A software-decoded frame still stays on the GPU after one plane upload when the consumer supplies a D3D11 device. Explicit Hardware mode requires D3D11VA and fails instead of falling back. HDR tone mapping is not implemented.

Use VideoPlayer for conventional pin-based transport. Use VideoPlayer (Advanced Controls) when separate parts of a patch need to call Open, Play, Pause, Stop, Close or Seek on the same player.

Build

powershell -NoProfile -ExecutionPolicy Bypass -File eng\Acquire-FFmpegRuntime.ps1
dotnet test tests\VL.FFmpeg.Tests\VL.FFmpeg.Tests.csproj -c Release
powershell -NoProfile -ExecutionPolicy Bypass -File eng\Pack.ps1

The precompiled HLSL bytecode is committed and embedded in VL.FFmpeg.dll. After changing src\VL.FFmpeg\Shaders\VideoConvert.hlsl, rebuild it with eng\Compile-Shaders.ps1; normal builds do not require the Windows SDK shader compiler.

The five FFmpeg 8.1 shared libraries and their LGPL text are committed. The acquire script verifies their SHA-256; it does not download anything. Pack.ps1 requires those files.

Pack.ps1 writes VL.FFmpeg.dll to lib/net8.0 and packs deployment/VL.FFmpeg.nuspec with NuGet.exe. It does not compile the .vl document; validate the package in Gamma.

Publish

.github/workflows/push_nuget.yml publishes to nuget.org as antokhio. Trigger it with a v* tag or a manual workflow run. NuGet.org must trust this GitHub repository for that account.

Layout

VL.FFmpeg.vl
deployment/VL.FFmpeg.nuspec
lib/net8.0/
runtimes/win-x64/native/
help/

The NuGet has no VL.Core dependency. Gamma hosts the VL runtime; the C# project references VL.Core only at compile time. The package ships one managed assembly, VL.FFmpeg.dll.

See docs/ARCHITECTURE.md.

License

MIT. Native FFmpeg libraries are LGPL 3. See LICENSE and THIRD-PARTY-NOTICES.md.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 50 9/17/2026
1.0.1 48 9/16/2026
1.0.0 51 9/14/2026