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, VP9, and AV1 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. While it can handle any codec, H.264 inputs are strongly preferred for field deployments:
Most common for IP cameras and encoders. WINK Forge automatically detects RTSP streams and negotiates the best transport method:
rtsp://username:password@192.168.1.100:554/stream1 rtsp://camera.example.com/live/channel1 rtsps://secure-camera.example.com:8554/stream # RTSP over TLS
Popular for live streaming applications:
rtmp://server.example.com/live/streamkey rtmp://localhost/live/camera1 rtmps://secure.example.com:443/live/stream # RTMP over TLS
Including MJPEG, HLS, and MPEG-DASH sources:
http://camera.example.com/mjpeg.cgi https://server.example.com/hls/stream.m3u8 https://cdn.example.com/dash/manifest.mpd https://camera.local/snapshot.jpg?fps=1 # Image sequence
For multicast, low-latency, and secure reliable transport:
udp://239.1.1.1:1234 rtp://224.0.0.1:5004 srt://192.168.1.100:9000?mode=caller&passphrase=mykey srt://srt-server.example.com:9000?streamid=mystream
WINK Forge automatically detects and handles incoming codecs:
Codec | Support | Notes |
---|---|---|
H.264 (AVC) | Full | All profiles including High 4:4:4 |
H.265 (HEVC) | Full | Main, Main10, Main 4:4:4 |
VP8/VP9 | Full | WebRTC and WebM sources |
MJPEG | Full | Legacy camera support |
MPEG-4 | Full | Legacy compatibility |
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 (Auto-detect available) | Auto / RTSP / RTMP / SRT / HTTP |
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 |
WINK Forge intelligently detects input parameters when "Auto" is selected:
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) |
srt_latency | SRT latency (ms) | 120-1000 |
timeout | Connection timeout (µs) | 10000000 (10 sec) |
reconnect | Auto-reconnect on failure | enabled |
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 |
SRT | Remote production | <1 second | Internet streaming |
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 # SRT Push srt://backup.site.com:9000?streamid=camera1&passphrase=secret # WebRTC /webrtc/stream_name
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 |
H.265 Profile | HEVC profile | Main/Main10 |
Codec | Video codec | H.264 (default) / H.265 / VP9 / AV1 |
IMPORTANT: H.264 is the default and recommended codec for almost all field deployments, especially traffic cameras and any camera connected via wireless, cellular, or high-latency networks. While newer codecs exist, H.264 remains the gold standard for reliability.
While WINK Forge fully supports H.265 (HEVC), it should only be used in specific controlled environments:
Feature | H.264 | H.265 |
---|---|---|
Compression Efficiency | Baseline | 25-50% better |
Max Resolution | 4K (common) | 8K native |
Processing Power | Lower | 2-4x higher |
Browser Support | Universal | Safari, Edge |
# Efficient H.265 encoding Codec: libx265 Preset: medium (balance quality/speed) Profile: main or main10 (for HDR) Level: auto (based on resolution/framerate) # Example for CONTROLLED ENVIRONMENT ONLY Resolution: 3840x2160 Bitrate: 15000 Kbps (vs 25000 for H.264) Keyframe: 60 frames WARNING: Never use H.265 for cameras on wireless/cellular networks!
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 |
PCM/WAV | Uncompressed | Professional audio |
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
SRT provides encrypted, reliable streaming over unpredictable networks:
Mode | Use Case | Configuration |
---|---|---|
Caller | Initiate connection | srt://host:port?mode=caller |
Listener | Accept connections | srt://0.0.0.0:9000?mode=listener |
Rendezvous | Firewall traversal | srt://host:port?mode=rendezvous |
# Input with encryption Type: SRT Path: srt://source.com:9000?passphrase=SecureKey123&latency=200 # Output with stream ID Format: SRT Path: srt://backup.site:9000?streamid=camera1&passphrase=key # Key SRT options: latency=120 # Latency in milliseconds (default: 120) maxbw=0 # Max bandwidth (0 = unlimited) pbkeylen=16 # Encryption key length (16, 24, or 32) lossmaxttl=0 # Packet loss tolerance
# 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 |
WINK Forge's intelligent auto-detection system eliminates manual configuration for most streams:
Source Type | Auto-Detected Parameters | Success Rate |
---|---|---|
IP Cameras | Protocol, resolution, codec, FPS | 98% |
Streaming Servers | All parameters + audio config | 95% |
VMS Systems | Authentication method, streams | 90% |
CDN Sources | Adaptive bitrate ladder | 85% |
When auto-detection needs assistance:
# Force specific codec detection advanced_options="analyzeduration=5000000" # Override detected parameters force_codec="h265" force_fps="30" force_resolution="1920x1080" # Custom probe size for difficult streams probesize="10M"
WINK Forge provides comprehensive monitoring through its web interface dashboard:
Status | Color | Meaning |
---|---|---|
Publishing | Green | Stream active and healthy |
Starting | Yellow | Initialization in progress |
Reconnecting | Orange | Temporary connection loss |
Failed | Red | Stream error, check logs |
Blocked | Gray | Administratively disabled |
Click on any stream to view detailed statistics:
Metric | Description | Healthy Range |
---|---|---|
Input Bitrate | Incoming data rate | Within 10% of source |
Output Bitrate | Encoded output rate | 90-110% of target |
Frame Rate | Actual FPS | ±1 FPS of target |
Dropped Frames | Frames not processed | <0.1% |
Latency | End-to-end delay | Protocol dependent |
Packet Loss | Network packets lost | <0.05% |
Export historical data for analysis:
Configure automatic notifications for critical events:
Alert Type | Trigger | Default Action |
---|---|---|
Stream Failed | Input connection lost | Email + Log |
High CPU | CPU > 85% for 5 min | Email + SNMP |
Storage Full | Disk > 90% | Email + API call |
License Limit | 90% streams used | Email admin |
Network Issue | Packet loss > 1% | Log + SNMP |
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) Codec: Consider H.265 for better compression
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
Issue | Cause | Solution |
---|---|---|
H.265 not playing | Browser incompatibility | Add H.264 output for web viewers |
High CPU with H.265 | Complex encoding | Use faster preset or reduce resolution |
H.265 → H.264 quality loss | Bitrate too low | Increase H.264 bitrate by 40% |
HDR lost in output | Profile mismatch | Use Main10 profile for HDR |
Error | Meaning | Fix |
---|---|---|
Connection timeout | Firewall blocking | Open UDP port (default 9000) |
Authentication failed | Wrong passphrase | Verify passphrase matches |
High latency warning | Network congestion | Increase latency parameter |
Stream ID rejected | Invalid stream ID | Check streamid format |
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 | Additional cores | +16 GB | +50% storage |
WINK Forge uses intelligent resource management:
# 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
Use Case | Recommended Codec | Reason |
---|---|---|
Traffic Cameras | H.264 | Proven reliability over cellular/wireless |
Field Deployments | H.264 | Handles packet loss gracefully |
Web Streaming | H.264 | Universal browser support |
Low Latency | H.264 (Baseline) | Minimal processing delay |
Wireless/Cellular | H.264 | Error resilience + compatibility |
Archive Only | H.265 (maybe) | Only for controlled storage |
Real-world experience shows H.264's superiority for field cameras:
Feature | H.264 | H.265 | VP9 | AV1 |
---|---|---|---|---|
Max Resolution | 4K | 8K | 8K | 8K |
10-bit Support | Limited | Yes | Yes | Yes |
HDR Support | No | Yes | Yes | Yes |
Encoding Speed | Fast | 2-4x Slower | 5x Slower | 10x Slower |
Error Recovery | Excellent | Poor | Poor | Poor |
Wireless Performance | Excellent | Problematic | Problematic | Unsuitable |
Patent Status | Licensed | Licensed | Open | Open |
Standard configuration for field cameras (ALWAYS use H.264):
Input: Type: RTSP Path: rtsp://camera.local:554/stream1 Auto-detect: Enabled Outputs: 1. HLS Low (360p) Resolution: 640x360 Bitrate: 800 Kbps Path: /hls/camera1_low 2. HLS Medium (720p) Resolution: 1280x720 Bitrate: 2500 Kbps Path: /hls/camera1_med 3. HLS High (1080p) Resolution: 1920x1080 Bitrate: 5000 Kbps Path: /hls/camera1_high Master Playlist: /hls/camera1/master.m3u8 CODEC NOTE: All outputs use H.264 - DO NOT use H.265 for field cameras!
Fix problematic H.265 field cameras by converting to reliable H.264:
Input: Type: RTSP Path: rtsp://4k-camera.local/h265stream Codec: H.265 (auto-detected) Output: Format: RTMP Path: rtmp://cdn.example.com/live/camera Codec: H.264 Profile: High Bitrate: 8000 Kbps (40% higher than source) Preset: fast (balance quality/CPU) NOTE: This is fixing a deployment mistake. New cameras should use H.264 from the start.
Reliable streaming over internet:
Input: Type: SRT (Listener) Path: srt://0.0.0.0:9000?mode=listener Passphrase: ProductionKey2025 Latency: 500ms Outputs: 1. Program Feed Format: RTSP Path: rtsp://0.0.0.0:554/program 2. Backup Stream Format: SRT (Caller) Path: srt://backup.site:9000?streamid=main 3. Web Preview Format: HLS Path: /hls/preview Bitrate: 1000 Kbps
Connect incompatible VMS systems:
Input: Type: Genetec Source: Via SDK integration Original: H.265 + G.711 audio Outputs: 1. Milestone Compatible Format: RTSP Codec: H.264 Baseline Audio: AAC Resolution: Maintain original 2. Archive Copy Format: File (MP4) Codec: H.265 (preserve) Segment: 1 hour files
Reduce bandwidth for remote sites:
Input: Type: RTSP Original: 4K @ 15 Mbps Outputs: 1. Remote Site A (Limited bandwidth) Resolution: 1280x720 Bitrate: 1500 Kbps FPS: 15 Codec: H.265 (better compression) 2. Remote Site B (Very limited) Resolution: 640x360 Bitrate: 500 Kbps FPS: 10 Codec: H.264 # Still H.264 for reliability! 3. Local Recording Resolution: Original (4K) Codec: H.264 # H.265 only if on fiber/local network Quality: High IMPORTANT: Even for "bandwidth optimization", H.264 is preferred. The minor savings from H.265 don't justify the reliability risks.
© 2025 WINK Streaming, Inc. All rights reserved.
Document Version: 2025.08
For support: support@wink.co | +1-312-281-5433