Installation on Windows (fully manual; USP versions before 1.14.0)
Attention
Please note that these installation instructions apply to versions older than 1.14.0 of the Unified Streaming Platform. For version 1.14.0 or later, please see Installation on Windows (USP version 1.14.0 or later).
Attention
This pages details all of the manual steps to install our software on Windows. However, do note that we recommend to use our scripted installation instead: Installation on Windows (USP versions before 1.14.0).
Preparation
Install dependency: Microsoft Visual C++ Redistributable
Executables and DLLs are self-contained and have no dependencies other than the Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019 and 2022. Please install this package if you did not do so already:
Invoke-WebRequest -UseBasicParsing `
-Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" `
-OutFile vc_redist.x64.exe
# After downloading the package, run it to install it
.\vc_redist.x64.exe /install /quiet /norestart
Download and verify integrity of packages
You don't use a package manager to install our software on Windows, meaning you
will need to verify the integrity of the packages you download. You can do this
verify that the hash of a package corresponds with a checksum we provide for
each package. You can do this like so ((where the value for $usp_tool
should
be the 'name' in the zip that you downloaded):
$repo = "stable"
$usp_tool = "mp4split"
$usp_version = "1.14.4"
$package = "$usp_tool-$usp_version-win64.zip"
$baseurl = "https://$repo.zip.unified-streaming.com/windows/x86_64"
Invoke-WebRequest -UseBasicParsing -Uri "$baseurl/$package" -OutFile $package
$checksum = (Invoke-WebRequest -UseBasicParsing `
-Uri "$baseurl/win.sha256sum").rawcontent `
-split "[`r`n]" | Select-String "$package"
$package_checksum = ($checksum.ToString().ToUpper() -split " ")[0]
(Get-FileHash $package).Hash -eq $package_checksum
This process verifies the integrity of the package against the checksum only. It doesn't verify that the checksum is authentic. If you want to check this as well, please see: Extra: How to verify the signature and prove the authenticity of our Windows packages.
Extra: How to verify the signature and prove the authenticity of our Windows packages
Verifying the integrity of our packages is relatively straightforward on Windows: Download and verify integrity of packages. However, if you also want to verify the authenticity of the checksums that can be used to check the integrity of our packages, things become more complicated because Windows does not offer the right tools for this.
You will need two Unix command-line tools to fully verify the authenticity of
our Windows packages: openssl
and sha256sum
. And you will also need the
following files from our repository:
List of checksums (hashes) per zipped package, per version:
win.sha256sum
Signature of
win.sha256sum
:win.sha256sum.asc
Our public key to verify the signature's authenticity:
usp-win-2019-public.pem
You can download these files from the following locations:
Invoke-WebRequest -UseBasicParsing -Uri https://stable.zip.unified-streaming.com/windows/x86_64/win.sha256sum -OutFile win.sha256sum
Invoke-WebRequest -UseBasicParsing -Uri https://stable.zip.unified-streaming.com/windows/x86_64/win.sha256sum.asc -OutFile win.sha256sum.asc
Invoke-WebRequest -UseBasicParsing -Uri https://stable.zip.unified-streaming.com/usp-win-2019-public.pem -OutFile usp-win-2019-public.pem
As both openssl
and sha256sum
are shipped with most Linux distributions,
there are several options you have to check our Windows packages after you have
downloaded them:
On a machine running Linux
On a machine running Windows, by running Linux using Windows Subsystem for Linux
On a machine running Windows, by running Cygwin (with both tools installed)
On 'any' machine, by using Docker to spin up Linux container
In all of the above scenarios you need to make sure the directory you
downloaded the zipped package(s) also contains the file with checksums
(win.sha256sum
), the signature of that file (win.sha256sum.asc
) and our
public key (usp-win-2019-public.pem
).
In the first three scenarios run the following two commands in this directory:
#!/bin/bash
openssl dgst -sha256 -verify usp-win-2019-public.pem -signature win.sha256sum.asc win.sha256sum
sha256sum -c win.sha256sum 2>&1 | grep OK
In the fourth scenario using Docker, run the following in this directory:
$install_openssl = "apk add --no-cache openssl"
$verify_signature = "openssl dgst -sha256 -verify usp-win-2019-public.pem -signature win.sha256sum.asc win.sha256sum"
$verify_checksum = "sha256sum -c win.sha256sum 2>&1 | grep OK"
docker run --rm -v ${pwd}:/data -w /data alpine:latest sh -c "$install_openssl && $verify_signature && $verify_checksum"
All scenarios should result in a Verified OK
message being printed to
confirm the authenticity of the signature, followed by the name(s) of the zipped
packages you have downloaded along with an OK
. For example, when you are
verifying mp4split-1.10.18-win64.zip
the result should be:
Verified OK
mp4split-1.11.14-win64.zip: OK
Installation
Command-line tools 'mp4split', 'manifest_edit', 'unified_capture' and 'unified_remix'
To use Unified Packager or any of our other command-line tools when you don't need the Unified Origin or Unified Remix web server modules, install 'mp4split' and our other command-line tools will be installed as dependencies alongside it. Assuming you have already downloaded and verified the packages (see sections above), installing is done like so:
$usp_tool = "mp4split"
$usp_version = "1.14.4"
$package = "$usp-tool-$usp_version-win64.zip"
$target_dir = "C:\Program Files\Unified Streaming"
# Create a 'Unified Streaming' directory if it does not already exist
if ( -Not (Test-Path -PathType Container -Path $target_dir)) {
New-Item -ItemType Directory $target_dir
}
# Expand archive package into the 'Unified Streaming' directory
Write-Host "Extracting $package into $target_dir"
Expand-Archive $package -DestinationPath $target_dir -Force
Add 'mp4split' and other command-line tools to system-wide path settings
In order to run 'mp4split' and the other Unified Streaming command-line tools without explicitly specifying the paths to their executables, you can add the path to where they are installed to the system-wide 'path' settings. To do this, follow the instructions below (but be aware that these will make changes to your registry):
$usp_path = "C:\Program Files\Unified Streaming"
# Get current system-wide 'path' settings, store them in variable and print result
(Get-ItemProperty `
-Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' `
-Name PATH).path | `
Set-Variable -Name "old_path" -PassThru | `
Select-Object -ExpandProperty value
# Add the path to where 'mp4split' was installed to the system-wide 'path' settings and print result
Set-ItemProperty `
-Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' `
-Name PATH -Value "$old_path;$usp_path" -PassThru | `
Select-Object -ExpandProperty PATH
# Reload 'path' settings while maintaining the same shell session
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") `
+ ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Unified Origin web server module ('mp4split' and 'mod_smooth_streaming')
To run Unified Origin, you need to:
Install 'mp4split' (which will also install our other command-line tools)
Install Apache
Install 'mod_smooth_streaming' module
Install 'mod_unified_s3_auth' if you need Amazon S3 authentication
How to install 'mp4split' is described in the section above.
Then, to install Apache:
Download the latest version (e.g., https://www.apachelounge.com/download/)
Verify its authenticity (i.e., https://www.apache.org/info/verification.html)
Expand the downloaded package to
C:\
, installing Apache inC:\Apache24
Note
Apache Lounge blocks downloads from a shell.
Finally, assuming you have already downloaded and verified the 'apache_mod_smooth_streaming' package, run the following:
$usp_tool = "apache_mod_smooth_streaming"
$usp_version = "1.14.4"
$package = "$usp-tool-$usp_version-win64.zip"
$apache_dir = "C:\Apache24"
# Expand archive package into 'modules' sub-directory of Apache installation
Write-Host "Extracting $package into $target_dir\modules"
Expand-Archive $package -DestinationPath $apache_dir\modules -Force
And, for 'mod_unified_s3_auth':
$usp_tool = "apache_mod_unified_s3_auth"
$usp_version = "1.14.4"
$package = "$usp-tool-$usp_version-win64.zip"
$apache_dir = "C:\Apache24"
# Expand archive package into 'modules' sub-directory of Apache installation
Write-Host "Extracting $package into $target_dir\modules"
Expand-Archive $package -DestinationPath $apache_dir\modules -Force
Configure Apache
After you have installed our software and Apache you still need to configure several things before you can successfully stream video. Please see the How to Configure (Unified Origin) section for the necessary information on how to do this.