WINK Forge

Enterprise Video Transcoding Platform
Technical Manual & User Guide
Version 8.x - 2025 Edition
WINK Streaming, Inc.
Document Updated: August 2025

Table of Contents

Chapter 1: Introduction to WINK Forge

1.1 Overview

WINK Forge is an enterprise-grade video transcoding and streaming platform that transforms video content for optimal delivery across diverse networks and devices. As the cornerstone of the WINK Streaming ecosystem, WINK Forge provides robust video processing capabilities that enable organizations to deploy comprehensive video streaming solutions.

Key Capabilities

Note: WINK Forge is always paired with WINK Media Router for complete functionality. Together, they form the core platform for all WINK solutions.

1.2 System Architecture

WINK Forge operates on a modular architecture designed for scalability and reliability:

Component Function Description
Input Manager Video Ingestion Handles multiple simultaneous video sources with automatic format detection
Transcoding Engine Video Processing Real-time encoding with H.264, H.265/HEVC, and VP9 support
Output Manager Stream Distribution Manages multiple output formats and destinations simultaneously
API Gateway Control Interface RESTful API for programmatic control and monitoring
Web Admin Management UI Browser-based configuration and monitoring interface

1.3 Deployment Options

Hardware Appliance

Pre-configured hardware solutions optimized for video processing:

Virtual Appliance (V-Forge)

Deploy on your existing virtualization infrastructure:

Cloud Deployment (Cloud Forge)

Fully managed cloud instances:

Chapter 2: Getting Started

2.1 Web Interface Access

The WINK Forge web administration interface provides complete control over all system functions. Access methods vary by firmware version:

Firmware 8.x (Current)

Legacy Firmware

Version HTTP Port HTTPS Port
Firmware 5.x 88 444
Firmware 4.x 80 443
Security Warning: Always use HTTPS for administration access. HTTP access should be disabled in production environments.

2.2 Default Credentials

Initial system access requires the default credentials:

Username: admin
Password: admin_pass
Shared Key: admin_key
    
Important: You must change these credentials upon first login. The system will enforce a strong password policy requiring:

2.3 Security Configuration

SSL Certificate Management

Configure SSL certificates for secure access:

  1. Navigate to Settings → System Options → SSL Certificate
  2. Choose one of the following options:
  3. Apply changes and restart web services

Shared Key Authentication

The shared key system provides an additional layer of security, particularly useful for:

To configure shared key authentication:

# API call example
curl -X POST https://forge.example.com/api/ \
  --data-urlencode "<wink_api user='admin' pass='password' key='shared_key'>
    <req id='1' command='version'></req>
  </wink_api>"
    

Chapter 3: Input Configuration

3.1 Supported Input Types

WINK Forge supports a comprehensive range of input protocols and formats:

RTSP (Real Time Streaming Protocol)

Most common for IP cameras and encoders:

rtsp://username:password@192.168.1.100:554/stream1
rtsp://camera.example.com/live/channel1
    

RTMP (Real Time Messaging Protocol)

Popular for live streaming applications:

rtmp://server.example.com/live/streamkey
rtmp://localhost/live/camera1
    

HTTP/HTTPS Streams

Including MJPEG and HLS sources:

http://camera.example.com/mjpeg.cgi
https://server.example.com/hls/stream.m3u8
    

UDP/RTP Streams

For multicast and specialized applications:

udp://239.1.1.1:1234
rtp://224.0.0.1:5004
    

VMS Integrations

3.2 Input Settings

Basic Configuration

Parameter Description Example
Title Friendly name (45 chars max) Main Entrance Camera
Description Detailed description (255 chars) HD camera covering main building entrance
Input Type Protocol selection RTSP
Input Path Source URL/URI rtsp://192.168.1.100:554/stream1

Video Parameters

Parameter Range Default Notes
FPS 0-60 0 (auto) 0 = variable frame rate
Width 1-8192 Auto-detect Pixels
Height 1-8192 Auto-detect Pixels
Rotation 0, 90, 180, 270 0 Degrees clockwise
Pro Tip: Use VLC Media Player to inspect source streams and determine correct resolution and codec parameters before configuration.

Cropping Options

Remove unwanted portions of the video frame:

Caution: Excessive cropping may result in aspect ratio distortion. Always maintain proportional dimensions in your output settings.

3.3 Advanced Input Options

Authentication Methods

Configure authentication for protected sources:

# Basic Authentication
rtsp://username:password@host/path

# Digest Authentication (automatic)
Input will negotiate digest auth when required

# Custom Headers (HTTP/HTTPS only)
Add in Advanced Options:
http_headers="Authorization: Bearer TOKEN"
    

Network Optimization

Parameter Purpose Recommended Value
buffer_size Input buffer in KB 1024-4096
rtsp_transport RTSP transport mode tcp (more reliable)
timeout Connection timeout (µs) 10000000 (10 sec)

Metadata Mapping

Associate metadata with streams for downstream applications:

Chapter 4: Output Configuration

4.1 Output Formats

WINK Forge supports multiple simultaneous outputs per input, enabling diverse distribution strategies:

Streaming Protocols

Protocol Use Case Latency Compatibility
HLS Web/Mobile streaming 6-30 seconds Universal
LL-HLS Low latency web 2-5 seconds Modern browsers
MPEG-DASH Adaptive streaming 3-10 seconds Wide support
RTMP Live streaming 1-3 seconds Flash/CDN
RTSP VMS/Surveillance <1 second Professional
WebRTC Real-time communication <500ms Modern browsers

Output Path Configuration

Configure output destinations based on protocol:

# HLS Output
/hls/stream_name

# RTMP Push
rtmp://cdn.example.com/live/streamkey

# RTSP Server
rtsp://0.0.0.0:8554/stream1
    

4.2 Encoding Settings

Video Encoding Parameters

Parameter Description Recommended Range
Resolution Output dimensions 360p to 4K
Bitrate Target bitrate (Kbps) 500-15000
FPS Output frame rate 15-60
Keyframe Interval GOP size (frames) 30-150
H.264 Profile Encoding profile Baseline/Main/High

Bitrate Guidelines

Resolution Low Quality Standard High Quality
360p (640x360) 400 Kbps 800 Kbps 1200 Kbps
480p (854x480) 500 Kbps 1200 Kbps 2000 Kbps
720p (1280x720) 1500 Kbps 2500 Kbps 4000 Kbps
1080p (1920x1080) 3000 Kbps 5000 Kbps 8000 Kbps
4K (3840x2160) 13000 Kbps 20000 Kbps 35000 Kbps

Audio Configuration

Codec Bitrate Range Use Case
AAC-LC 64-320 Kbps General purpose
HE-AAC 32-128 Kbps Low bandwidth
Opus 16-256 Kbps WebRTC/Modern
MP3 96-320 Kbps Legacy compatibility

4.3 Adaptive Streaming

Creating Adaptive Bitrate Ladders

Configure multiple outputs with different qualities for adaptive streaming:

Name Resolution Bitrate Profile
stream_low 640x360 800 Kbps Baseline
stream_med 1280x720 2500 Kbps Main
stream_high 1920x1080 5000 Kbps High
Best Practice: Maintain consistent keyframe intervals across all adaptive bitrate variants to ensure smooth quality switching.

Chapter 5: Media Protocols

5.1 RTMP Configuration

RTMP Server Mode

Accept incoming RTMP streams:

# Input configuration
Type: RTMP
Path: rtmp://0.0.0.0:1935/live/stream1

# Publishers connect to:
rtmp://forge.example.com:1935/live/stream1
    

RTMP Push Mode

Send streams to CDN or streaming services:

# Output configuration
Format: RTMP
Path: rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx
    

RTMP Authentication

Secure RTMP endpoints with token authentication:

# Enable in Settings → RTMP Rebroadcast
Authentication: Token
Token Lifetime: 3600 seconds

# Client URL with token
rtmp://forge.example.com/live/stream1?token=abc123
    

5.2 RTSP Configuration

RTSP Server Setup

# Output configuration
Format: RTSP
Path: rtsp://0.0.0.0:8554/stream1

# Access URL
rtsp://forge.example.com:8554/stream1
    

RTSP Transport Modes

Mode Protocol Use Case
RTP/UDP UDP Low latency, LAN
RTP/TCP TCP Firewall friendly
RTP/RTSP Interleaved Single connection

RTSP Authentication

# Basic authentication
rtsp://username:password@forge.example.com:8554/stream1

# Digest authentication (automatic negotiation)
Configured in user management
    

5.3 HLS/LL-HLS

Standard HLS Configuration

# Output settings
Format: HLS
Path: /hls/stream1
Segment Duration: 6 seconds
Playlist Length: 5 segments

# Access URL
https://forge.example.com/hls/stream1/playlist.m3u8
    

Low-Latency HLS (LL-HLS)

# Enable LL-HLS
Format: LL-HLS
Part Duration: 0.33 seconds
Segment Duration: 2 seconds

# Client requirements
- HTTP/2 support
- Byte-range requests
- Modern player (HLS.js 1.0+)
    

HLS Encryption

Protect content with AES-128 encryption:

  1. Generate encryption keys
  2. Configure key server URL
  3. Enable encryption in output settings

5.4 MPEG-DASH

DASH Configuration

# Output settings
Format: DASH
Path: /dash/stream1
Segment Duration: 4 seconds
Min Buffer Time: 1.5 seconds

# Manifest URL
https://forge.example.com/dash/stream1/manifest.mpd
    

DASH Features

Chapter 6: VMS Integration

6.1 Genetec Integration

Genetec Security Center

WINK Forge provides native integration with Genetec Security Center through the SDK:

Virtual Encoder Configuration

  1. In Security Center Config Tool, add new encoder
  2. Select "WINK Streaming" from manufacturer list
  3. Enter WINK Forge IP address and credentials
  4. Discover available streams automatically

Stream URL Format

# Genetec-compatible RTSP URL
rtsp://forge.example.com:554/genetec/[GUID]_[quality]

# Example
rtsp://forge.example.com:554/genetec/WF05-1234-5678-90AB-CDEF_high
    

Virtual Decoder Setup

Use WINK Forge as a Genetec Virtual Decoder:

# Input configuration
Type: Genetec
Path: [Genetec server details configured in plugin]

# Capabilities
- Multi-stream decoding
- PTZ passthrough
- Event forwarding
    
Integration Tip: Enable the Genetec plugin in WINK Forge before attempting Security Center discovery. Navigate to Plugins → Genetec → Enable.

6.2 Milestone Integration

Milestone XProtect

Configure WINK Forge as a universal driver device:

Setting Value
Driver Universal Driver
Protocol HTTP or RTSP
Port 80 (HTTP) or 554 (RTSP)
Path /mjpeg/[stream] or /rtsp/[stream]

Stream Configuration

# MJPEG for maximum compatibility
Output Format: MJPEG
Path: /mjpeg/camera1
FPS: 10-15 (reduce bandwidth)

# RTSP for better quality
Output Format: RTSP
Path: rtsp://0.0.0.0:554/camera1
    

6.3 VMS to VMS Bridging

WINK Forge excels at bridging between incompatible VMS platforms:

Common Bridging Scenarios

Source VMS Target VMS Method
Genetec Milestone Genetec SDK → RTSP output
Milestone Genetec Universal driver → Genetec encoder
Legacy DVR Modern VMS RTSP input → Multiple outputs
Cloud VMS On-premise RTMP pull → Local RTSP

Camera Protocol Emulation

Make any source appear as a standard IP camera:

Bandwidth Consideration: When bridging VMS systems, configure appropriate transcoding to avoid bandwidth multiplication. Use the same codec and bitrate when possible.

Chapter 7: API Reference

7.1 API Overview

The WINK Forge API provides complete programmatic control over all system functions. All API calls require SSL and authentication.

API Endpoint

https://forge.example.com/api/

Authentication

<wink_api user='username' pass='password' key='shared_key'>
    <req id='1' command='command_name'>payload</req>
</wink_api>
    

Response Format

<wink_api>
    <resp id="1" command="command_name" status="ok">response_data</resp>
</wink_api>
    

7.2 Stream Control Commands

Start/Stop/Restart Streams

Command Description Payload
start Start transcoding GUID or 'all'
stop Stop transcoding GUID or 'all'
restart Restart transcoding GUID or 'all'

Example: Restart Stream

<wink_api user='apiuser' pass='apipass'>
    <req id='1' command='restart'>WF05-2657-1C04-7F1B-5EC0</req>
</wink_api>
    

Stream Status

Get GUID Status

<wink_api user='apiuser' pass='apipass'>
    <req id='1' command='guidstatus'>WF05-1EDA-1C04-6E33-ABF9</req>
</wink_api>

Response values:
0 = Not publishing
1 = Publishing
2 = Blocked
3 = Unavailable
    

Block/Unblock Streams

Command Function Usage
blockguid Block video output Shows placeholder image
unblockguid Restore video output Resumes normal stream
blockip Block by IP:Port Block without GUID

Input Management

Create/Update Input

<wink_api user='apiuser' pass='apipass'>
    <req id='1' command='input_source'>
        <input title='Camera 1' 
               desc='Main entrance' 
               type='RTSP' 
               path='rtsp://192.168.1.100:554/stream1'
               enabled='1' />
    </req>
</wink_api>
    

Input Parameters

Parameter Required Description
title Yes (new) Stream title
desc Yes (new) Description
path Yes (new) Source URI
type Yes (new) Protocol type
guid Yes (update) Existing GUID
fps No Frame rate
width No Video width
height No Video height

7.3 User Management API

Create User

<wink_api user='admin' pass='adminpass'>
    <req id='1' command='createuser'>
        <name>John Smith</name>
        <username>jsmith</username>
        <password>SecurePass123!</password>
        <access>2</access>
    </req>
</wink_api>

Access Levels:
1 = Admin
2 = Operator  
3 = Viewer
4 = API Only
    

Change Password

<wink_api user='admin' pass='adminpass'>
    <req id='1' command='changepassword'>
        <username>jsmith</username>
        <password md5='false'>NewPass456!</password>
    </req>
</wink_api>
    

Chapter 8: Advanced Features

8.1 One-Time Password (OTP) Authentication

OTP provides temporary access tokens for secure stream viewing, ideal for:

OTP Workflow

  1. Application requests OTP token from WINK Media Router
  2. Token generated with specified duration
  3. Client uses token to access stream
  4. Token expires after duration or single use

API Commands

Create OTP Token

curl -d "apiuser=apiuser&apipass=apipass&action=create&duration=60&hash_type=alphanumeric&hash_length=32" \
     -X POST https://router.example.com/otp/api/

Response: 24814928371014572819abc123def456
    

OTP Parameters

Parameter Default Description
duration 60 Token lifetime (minutes)
hash_type alphanumeric alpha, numeric, alphanumeric
hash_length 32 Token length (max 128)
expiry_url None Redirect on expiry

Using OTP Tokens

# Append token to stream URL
https://forge.example.com/hls/stream1/playlist.m3u8?token=24814928371014572819abc123def456
    

8.2 Watermarking

Image Watermarks

Add logos or branding to video streams:

  1. Upload watermark image (PNG with transparency recommended)
  2. Configure in output settings:

Text Overlays

Add dynamic text to streams:

Variable Output Example
%TIME% Current time 14:35:22
%DATE% Current date 2025-08-02
%TITLE% Stream title Main Entrance
%FPS% Current FPS 29.97 fps

Timestamp Formats

# Predefined formats
YYYY-MM-DD HH:MM:SS
MM/DD/YYYY HH:MM:SS
DD/MM/YYYY HH:MM:SS

# Custom format (strftime)
%Y-%m-%d %I:%M:%S %p
    

8.3 PTZ Control

PTZ Passthrough

WINK Forge can relay PTZ commands between VMS systems and cameras:

Protocol Support Features
ONVIF Full Pan, Tilt, Zoom, Presets
VAPIX Full Axis camera control
Pelco-D Basic RS-485 control
VISCA Basic Sony cameras

PTZ Configuration

  1. Enable PTZ in input settings
  2. Configure control protocol
  3. Map PTZ URLs for passthrough
  4. Test with VMS PTZ controls
PTZ Latency: Expect 100-500ms latency for PTZ commands depending on network conditions and protocol.

Chapter 9: Troubleshooting

Common Issues and Solutions

Stream Not Starting

Symptom Possible Cause Solution
Status: "Failed" Invalid source URL Verify URL with VLC player
Status: "Timeout" Network connectivity Check firewall, ping source
Status: "Auth Failed" Wrong credentials Verify username/password
No status change Licensing issue Check license limits

Poor Video Quality

High CPU Usage

  1. Check transcoding load:
    top -n 1 | grep ffmpeg
  2. Reduce quality settings:
  3. Optimize encoder settings:
    Preset: ultrafast (lowest CPU)
    Profile: baseline (simpler encoding)

Network Diagnostics

Built-in Tools

Access via Tools menu in web interface:

Tool Purpose Usage
Ping Test Connectivity check Test camera reachability
MTR Route analysis Diagnose network path
TCPDump Packet capture Debug protocol issues
RTSP Probe Stream testing Verify RTSP sources

Log Analysis

Check system logs for errors:

# Web interface
Tools → Logs → System Logs

# Command line
tail -f /var/log/winkforge/stream.log
grep ERROR /var/log/winkforge/system.log
    

Common Log Messages

Message Meaning Action
Connection refused Source unreachable Check IP and port
Invalid data found Codec mismatch Verify source format
Buffer underflow Network congestion Increase buffer size
License exceeded Stream limit reached Upgrade license

Appendices

Appendix A: SSL Certificate Management

Exporting Certificates (Windows)

  1. Open MMC (Win+R, type mmc)
  2. Add Certificates snap-in
  3. Navigate to Personal → Certificates
  4. Right-click certificate → All Tasks → Export
  5. Export with private key (PFX format)
  6. Set strong password
  7. Save PFX file

Uploading to WINK Forge

  1. Navigate to Settings → System Options → SSL Certificate
  2. Choose "Upload Certificate"
  3. Select PFX file
  4. Enter PFX password
  5. Apply and restart services

Let's Encrypt Integration

# Requirements
- Public domain name
- Port 80 accessible from internet
- DNS pointing to WINK Forge

# Automatic renewal
Certificates renew automatically every 60 days
        

Appendix B: Network Configuration

Firewall Ports

Port Protocol Direction Purpose
443 TCP Inbound HTTPS (Web/API)
444 TCP Inbound Admin HTTPS
554 TCP In/Out RTSP
1935 TCP In/Out RTMP
8080-8090 TCP Inbound HTTP Streams
5000-5999 UDP In/Out RTP/RTCP

Network Bonding

Configure multiple network interfaces for redundancy:

Mode Description Use Case
Active-Backup Failover only High availability
Balance-RR Round-robin Load distribution
802.3ad LACP Switch support required
Balance-ALB Adaptive load No switch config needed

Appendix C: Performance Tuning

Hardware Recommendations

Workload CPU RAM Storage
10 HD streams 8 cores 16 GB 500 GB SSD
50 HD streams 16 cores 32 GB 1 TB SSD
100+ HD streams 32 cores 64 GB 2 TB NVMe
4K streaming Add GPU +16 GB +50% storage

GPU Acceleration

Enable hardware encoding for better performance:

GPU Codec Support Streams
NVIDIA T4 H.264, H.265 40+ HD
NVIDIA A2 H.264, H.265, AV1 20+ HD
Intel QuickSync H.264, H.265 10+ HD

System Optimization

# Increase file descriptors
ulimit -n 65536

# Optimize network buffers
sysctl -w net.core.rmem_max=134217728
sysctl -w net.core.wmem_max=134217728

# CPU governor for performance
cpupower frequency-set -g performance
        

© 2025 WINK Streaming, Inc. All rights reserved.

Document Version: 2025.08

For support: support@wink.co | +1-312-281-5433