Title here
Summary here
Get-Service StreamDelayController, StreamDelayInputhttp://localhost:8080# Check status
Get-Service StreamDelayController, StreamDelayInput
# Start services (Input Receiver first)
Start-Service StreamDelayInput
Start-Service StreamDelayController
# Stop services (Controller first)
Stop-Service StreamDelayController
Stop-Service StreamDelayInput
# Restart both
Restart-Service StreamDelayInput
Restart-Service StreamDelayControllerNote: Start Input Receiver first, then Controller. Stop in reverse order. The Controller depends on Input Receiver generating HLS files.
The dashboard at http://localhost:8080 auto-updates every 2 seconds with service status, stream info, and buffer usage.
# Tail controller log
Get-Content C:\ProgramData\StreamDelay\logs\controller.log -Tail 50
# Tail input receiver log
Get-Content C:\ProgramData\StreamDelay\logs\input-receiver.log -Tail 50
# Find errors
Select-String -Path C:\ProgramData\StreamDelay\logs\*.log -Pattern "ERROR"Get-EventLog -LogName Application -Source StreamDelay* -Newest 20# Check processes
Get-Process mediamtx, tk-delay-controller, tk-delay-input-receiver -ErrorAction SilentlyContinue
# Check ports
netstat -an | findstr "8080 8888 9000 9997"# Controller status
Invoke-RestMethod http://localhost:8080/api/status
# Current delay
Invoke-RestMethod http://localhost:8080/api/delay/current
# MediaMTX health
Invoke-RestMethod http://localhost:9997/v3/paths/list# Count segments
(Get-ChildItem C:\ProgramData\StreamDelay\hls\*.ts).Count
# Check buffer size
(Get-ChildItem C:\ProgramData\StreamDelay\hls | Measure-Object -Property Length -Sum).Sum / 1MB
# Verify playlist updates
Get-Item C:\ProgramData\StreamDelay\hls\delayed.m3u8 | Select-Object LastWriteTimeServices append to logs indefinitely. Implement rotation when logs reach ~100 MB:
# Archive and clear logs
Stop-Service StreamDelayController, StreamDelayInput
Compress-Archive C:\ProgramData\StreamDelay\logs\*.log -DestinationPath "logs-archive-$(Get-Date -Format 'yyyyMMdd').zip"
Remove-Item C:\ProgramData\StreamDelay\logs\*.log
Start-Service StreamDelayInput, StreamDelayController| Frequency | Task |
|---|---|
| Weekly | Check log sizes, Event Viewer, service status, disk space |
| Monthly | Archive logs, backup config, review performance |
| Quarterly | Full system test, review config, check for updates |
Copy-Item C:\ProgramData\StreamDelay\.env -Destination backup\.env
Copy-Item C:\ProgramData\StreamDelay\state.json -Destination backup\state.json -ErrorAction SilentlyContinueStop-Service StreamDelayController, StreamDelayInput
Copy-Item backup\.env -Destination C:\ProgramData\StreamDelay\.env
Copy-Item backup\state.json -Destination C:\ProgramData\StreamDelay\state.json -ErrorAction SilentlyContinue
Start-Service StreamDelayInput, StreamDelayControllerStop-Service StreamDelayController, StreamDelayInput
Remove-Item C:\ProgramData\StreamDelay\hls\* -Force
Remove-Item C:\ProgramData\StreamDelay\logs\*.log -Force
Start-Service StreamDelayInput, StreamDelayControllerStop-Service StreamDelayController, StreamDelayInput -Force
Get-Process mediamtx -ErrorAction SilentlyContinue | Stop-Process -ForceC:\ProgramData\StreamDelay\.envC:\ProgramData\StreamDelaynetstat -an | findstr "8080 9000"StreamDelayInput service is runningnetstat -an | findstr 9000srt://localhost:9000?streamid=publish:srtinput-receiver.log for errorsStreamDelayController service is runningnetstat -an | findstr 8080http://127.0.0.1:8080Get-ChildItem C:\ProgramData\StreamDelay\hls\*.tsdelayed.m3u8 exists and is being updatedcontroller.log for playlist generation errors| Error | Solution |
|---|---|
| Service Cannot Be Started (1053) | Check logs, port conflicts, missing dependencies |
| Failed to Connect to MediaMTX | Ensure Input Receiver running, verify MediaMTX process |
| Insufficient Segments for Delay | Reduce delay or increase HLS_LIST_SIZE |
| Port Already in Use | Find conflicting process, change port in .env |
| Access Denied | Grant proper permissions on C:\ProgramData\StreamDelay |