StreamPlayerCore.WPF.Control 1.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package StreamPlayerCore.WPF.Control --version 1.1.1
                    
NuGet\Install-Package StreamPlayerCore.WPF.Control -Version 1.1.1
                    
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="StreamPlayerCore.WPF.Control" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="StreamPlayerCore.WPF.Control" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="StreamPlayerCore.WPF.Control" />
                    
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 StreamPlayerCore.WPF.Control --version 1.1.1
                    
#r "nuget: StreamPlayerCore.WPF.Control, 1.1.1"
                    
#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 StreamPlayerCore.WPF.Control@1.1.1
                    
#: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=StreamPlayerCore.WPF.Control&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=StreamPlayerCore.WPF.Control&version=1.1.1
                    
Install as a Cake Tool

StreamPlayerCore

NuGet NuGet

WPF and WinForms controls for video streaming using FFmpeg. Built with .Net9 and .Net Framework 4.8.

Based on the WebEye library.

Usage

WinForms

  1. Install the StreamPlayerCore.WinForms.Control NuGet package.
  2. Add the StreamPlayerControl to your form.
    using StreamPlayerCore.WinForms.Control;
    
    public partial class MainForm : Form
    {
        private StreamPlayerControl streamPlayerControl;
    
        public MainForm()
        {
            InitializeComponent();
    
            streamPlayerControl = new StreamPlayerControl
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(streamPlayerControl);
        }
    
        private void MainForm_Load(object sender, EventArgs e)
        {
            streamPlayerControl.StartPlay(new Uri("your_stream_url"), 
                TimeSpan.FromSeconds(1.0), TimeSpan.FromSeconds(3.0), // according to your needs
                RtspTransport.Tcp, // select appropriate transport protocol
                RtspFlags.None,
                0, 5000000 // analyzeduration and probesize parameters, experiment for best results
                );
        }
    }
    

WPF

  1. Install the StreamPlayerCore.WPF.Control NuGet package.
  2. Add the StreamPlayerControl to your XAML.
    <Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:spc="clr-namespace:StreamPlayerCore.WPF.Control;assembly=StreamPlayerCore.WPF.Control"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    
        <Grid>
            <spc:StreamPlayerControl x:Name="streamPlayerControl"/>
        </Grid>
    </Window>
    
  3. Start playing the stream in the code-behind.
    using StreamPlayerCore.WPF.Control;
    using System;
    using System.Windows;
    
    namespace WpfApp
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                streamPlayerControl.StartPlay(new Uri("your_stream_url"), 
                    TimeSpan.FromSeconds(1.0), TimeSpan.FromSeconds(3.0), // according to your needs
                    RtspTransport.Tcp, // select appropriate transport protocol
                    RtspFlags.None,
                    0, 5000000 // analyzeduration and probesize parameters, experiment for best results
                    );
            }
        }
    }
    

Build instructions

Requirements

Building libraries

  1. Install all requirements.
  2. Create a C:\StreamPlayerCore-build folder and navigate to it in a terminal.
  3. Clone the FFmpeg repository for a 32-bit build:
    git clone --branch <version tag> https://github.com/FFmpeg/FFmpeg FFmpeg32
    
  4. Clone the FFmpeg repository for a 64-bit build:
    git clone --branch <version tag> https://github.com/FFmpeg/FFmpeg FFmpeg64
    
  5. Download the latest Boost release
  6. Extract the Boost archive to C:\StreamPlayerCore-build\boost.
  7. Download the latest NASM release (Executable only), extract it to C:\StreamPlayerCore-build and rename to nasm.exe.
  8. Add C:\StreamPlayerCore-build to your system PATH.
  9. Create an MSYS2_PATH_TYPE environment variable with the value inherit.
  10. Navigate to C:\StreamPlayerCore-build\boost and run:
    .\bootstrap.bat
    
    and then
    .\b2 runtime-link=static
    
  11. Open the x86 Native Tools Command Prompt for VS 2022
  12. Navigate to C:\msys64 and open the msys2_shell.cmd file.
  13. run
    pacman -Syu pkg-config diffutils make
    
  14. Navigate to C:\StreamPlayerCore-build\FFmpeg32 and run:
    ./configure --toolchain=msvc --arch=i686 --enable-version3 --enable-static --disable-shared --disable-programs --disable-doc
    
    and then:
    make
    
  15. Open the x64 Native Tools Command Prompt for VS 2022
  16. Navigate to C:\msys64 and open the msys2_shell.cmd file.
  17. Navigate to C:\StreamPlayerCore-build\FFmpeg64 and run:
    ./configure --toolchain=msvc --arch=amd64 --target-os=win64 --enable-version3 --enable-static --disable-shared --disable-programs --disable-doc
    
    and then:
    make
    

Building StreamPlayerCore

  1. Clone the StreamPlayerSharp repository:
     git clone https://github.com/BlazekWasTaken/StreamPlayerCore
    
  2. Open the StreamPlayerCore.sln file in Jetbrains Rider.
  3. Open the StreamPlayer project and edit the StreamPlayer.vcxproj. Replace:
     C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x86
    
    with the path to your Windows SDK x86 libraries. And:
     C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64
    
    with the path to your Windows SDK x64 libraries.
  4. Change the StreamPlayer build configuration to Release | Win32.
  5. Build the project.
  6. Change the StreamPlayer build configuration to Release | x64.
  7. Build the project again.
  8. Open the StreamPlayerCore.WinForms.Control project and open the Resources.resx file. This will remove the lingering errors.
  9. Build the project.
  10. Open the StreamPlayerCore.WPF.Control project and open the Resources.resx file. This will remove the lingering errors.
  11. Build the project.

Testing

  1. Run the StreamPlayerCore.WinForms.Demo project.
  2. Run the StreamPlayerCore.WPF.Demo project.

Tested versions

  • Dotnet sdk - 9.0.305
  • Windows SDK - 10.0.26100.4654
  • MSVC - v143 - VS 2022
  • MSYS2 - 20250830
  • Boost - 1.89.0
  • FFmpeg - 8.0
  • NASM - 3.0.1
Product Compatible and additional computed target framework versions.
.NET net9.0-windows7.0 is compatible.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
3.0.0 98 2/1/2026
2.1.5 191 12/4/2025
2.1.4 191 12/4/2025
2.1.2 236 11/22/2025
2.1.1 287 11/21/2025
2.1.0 397 11/20/2025
2.0.4 398 11/18/2025
2.0.0 233 11/16/2025
1.1.1 180 10/14/2025
1.1.0 362 10/14/2025
1.0.0 178 10/14/2025