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.
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 |
Pre-configured hardware solutions optimized for video processing:
Deploy on your existing virtualization infrastructure:
Fully managed cloud instances:
The WINK Forge web administration interface provides complete control over all system functions. Access methods vary by firmware version:
Version | HTTP Port | HTTPS Port |
---|---|---|
Firmware 5.x | 88 | 444 |
Firmware 4.x | 80 | 443 |
Initial system access requires the default credentials:
Username: admin Password: admin_pass Shared Key: admin_key
Configure SSL certificates for secure access:
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>"
WINK Forge supports a comprehensive range of input protocols and formats:
Most common for IP cameras and encoders:
rtsp://username:password@192.168.1.100:554/stream1 rtsp://camera.example.com/live/channel1
Popular for live streaming applications:
rtmp://server.example.com/live/streamkey rtmp://localhost/live/camera1
Including MJPEG and HLS sources:
http://camera.example.com/mjpeg.cgi https://server.example.com/hls/stream.m3u8
For multicast and specialized applications:
udp://239.1.1.1:1234 rtp://224.0.0.1:5004
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 |
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 |
Remove unwanted portions of the video frame:
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"
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) |
Associate metadata with streams for downstream applications:
WINK Forge supports multiple simultaneous outputs per input, enabling diverse distribution strategies:
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 |
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
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 |
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 |
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 |
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 |
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
Send streams to CDN or streaming services:
# Output configuration Format: RTMP Path: rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx
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
# Output configuration Format: RTSP Path: rtsp://0.0.0.0:8554/stream1 # Access URL rtsp://forge.example.com:8554/stream1
Mode | Protocol | Use Case |
---|---|---|
RTP/UDP | UDP | Low latency, LAN |
RTP/TCP | TCP | Firewall friendly |
RTP/RTSP | Interleaved | Single connection |
# Basic authentication rtsp://username:password@forge.example.com:8554/stream1 # Digest authentication (automatic negotiation) Configured in user management
# 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
# 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+)
Protect content with AES-128 encryption:
# 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
WINK Forge provides native integration with Genetec Security Center through the SDK:
# 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
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
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] |
# 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
WINK Forge excels at bridging between incompatible VMS platforms:
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 |
Make any source appear as a standard IP camera:
The WINK Forge API provides complete programmatic control over all system functions. All API calls require SSL and authentication.
https://forge.example.com/api/
<wink_api user='username' pass='password' key='shared_key'> <req id='1' command='command_name'>payload</req> </wink_api>
<wink_api> <resp id="1" command="command_name" status="ok">response_data</resp> </wink_api>
Command | Description | Payload |
---|---|---|
start | Start transcoding | GUID or 'all' |
stop | Stop transcoding | GUID or 'all' |
restart | Restart transcoding | GUID or 'all' |
<wink_api user='apiuser' pass='apipass'> <req id='1' command='restart'>WF05-2657-1C04-7F1B-5EC0</req> </wink_api>
<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
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 |
<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>
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 |
<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
<wink_api user='admin' pass='adminpass'> <req id='1' command='changepassword'> <username>jsmith</username> <password md5='false'>NewPass456!</password> </req> </wink_api>
OTP provides temporary access tokens for secure stream viewing, ideal for:
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
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 |
# Append token to stream URL https://forge.example.com/hls/stream1/playlist.m3u8?token=24814928371014572819abc123def456
Add logos or branding to video streams:
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 |
# 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
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 |
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 |
top -n 1 | grep ffmpeg
Preset: ultrafast (lowest CPU) Profile: baseline (simpler encoding)
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 |
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
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 |
mmc
)# Requirements - Public domain name - Port 80 accessible from internet - DNS pointing to WINK Forge # Automatic renewal Certificates renew automatically every 60 days
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 |
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 |
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 |
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 |
# 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