Video Processor
Overview
The Video Processor Dashboard is a real-time monitoring interface for tracking video processing operations in ComusThumbz. It provides comprehensive visibility into queue status, processing performance, error tracking, and hourly trends. The dashboard auto-refreshes every 30 seconds and supports time range filtering for detailed analysis of processing metrics.
Location: Navigate to this page via Admin Panel → Videos → Video Processing Dashboard or access directly via ct/admin/videoprocessordashboard.php
[Screenshot: video-processor-dashboard-main]
Getting to This Page
- Navigate to Admin Panel → Videos
- Click Video Processing Dashboard link
- Alternatively, access directly via
ct/admin/videoprocessordashboard.php
This dashboard monitors the videoprocessor.php cron job which handles video transcoding, thumbnail generation, HLS creation, and CDN uploads. Use it to track processing performance and identify issues.
System Requirements
This page requires the video processing system to be configured and running. Processing jobs are created by ftpvideoprocessor.php and executed by videoprocessor.php cron jobs.
PHP Requirements
Required PHP Extensions
Required PHP Functions
Folder Permissions
Network Requirements
Features & UI Elements
Page Header
[Screenshot: video-processor-dashboard-header]
Time Range Filter
[Screenshot: video-processor-dashboard-time-filter]
Navigation Buttons
[Screenshot: video-processor-dashboard-navigation]
Auto-Refresh Toggle
[Screenshot: video-processor-dashboard-auto-refresh]
Queue Overview Cards
[Screenshot: video-processor-dashboard-overview-cards]
Six stat cards displaying real-time metrics:
Job Type Breakdown Table
[Screenshot: video-processor-dashboard-job-types]
Job Types:
extractmetadata- FFprobe metadata extractiontranscode- Video transcoding to web formatgeneratethumbnails- Timeline thumbnail generationgeneratesprites- Sprite sheet creationgeneratepreview- Preview clip generationgenerategif- Animated GIF creationgeneratecontactsheet- Contact sheet generationuploadcdn- CDN uploadcleanup- Temporary file cleanup
Recent Errors Section
[Screenshot: video-processor-dashboard-errors]
Clear All Errors Button
Hourly Processing Trend Chart
[Screenshot: video-processor-dashboard-chart]
Line chart showing:
- Completed jobs (green line) - Successfully processed
- Failed jobs (red line) - Failed processing
X-axis shows hours, Y-axis shows job count.
The trend chart helps identify processing patterns and bottlenecks. Spikes in failures may indicate system resource issues or problematic video uploads.
Currently Processing Section
[Screenshot: video-processor-dashboard-processing]
Real-time view of active jobs:
Pending Queue Preview
[Screenshot: video-processor-dashboard-pending]
Shows next 10 pending jobs:
Step-by-Step Usage
Monitoring Processing Status
- Navigate to Admin Panel → Videos → Video Processing Dashboard
- View overview cards for quick status
- Check "Currently Processing" for active jobs
- Review "Pending Queue" for upcoming work
Investigating Processing Errors
- Scroll to "Recent Errors" section
- Click video title to view video details
- Review error message for root cause
- Click "Acknowledge" after resolving issue
Clearing All Errors
- Click "Clear All Errors" button
- Confirm action in dialog
- All errors marked as acknowledged
- Fresh errors will appear as they occur
Adjusting Time Range
- Click time range button (1h, 24h, 7d, 30d)
- Dashboard reloads with new time range
- All metrics recalculated for selected period
Managing Auto-Refresh
- Click auto-refresh toggle to enable/disable
- Select interval from dropdown (10s, 30s, 60s)
- Dashboard updates automatically when enabled
AJAX Actions
The dashboard uses POST requests with CSRF protection:
Dashboard Refresh Behavior
Troubleshooting
Common Errors
Jobs stuck in "processing" status
Cause: videoprocessor.php crashed or was killed during processing
Solution:
- Check if cron job is running:
ps aux | grep videoprocessor - Review processor logs:
ct/logs/videoprocessor/ - Jobs will auto-retry up to maxattempts
- Reset stuck jobs manually if needed:
UPDATE tblVideoProcessingJobs
SET status = 'pending', processingstartedat = NULL, workerid = NULL
WHERE status = 'processing'
AND processingstartedat < DATESUB(NOW(), INTERVAL 1 HOUR);
High failure rate for specific job type
Cause: System dependency issue (FFmpeg, disk space, CDN)
Solution:
- Check FFmpeg installation:
ffmpeg -version - Verify disk space:
df -h - Test CDN connectivity
- Review specific error messages
Pending jobs not being processed
Cause: Cron job not running
Solution:
- Verify cron job is configured:
crontab -l | grep videoprocessor
- Test manual execution:
php /path/to/ct/admin/cron/videoprocessor.php
- Check processor logs for errors
High average wait time
Cause: More jobs being created than processed
Solution:
- Increase processor frequency (run more often)
- Reduce concurrent upload volume
- Add additional processing workers
- Prioritize important videos with higher priority values
Database Performance
For optimal dashboard performance:
- Ensure indexes exist on tblVideoProcessingJobs
- Consider archiving old completed jobs
- Views are pre-calculated for efficiency
-- Archive completed jobs older than 30 days
INSERT INTO tblVideoProcessingJobsArchive
SELECT * FROM tblVideoProcessingJobs
WHERE status = 'completed'
AND processingcompletedat < DATESUB(NOW(), INTERVAL 30 DAY);
DELETE FROM tblVideoProcessingJobs
WHERE status = 'completed'
AND processingcompletedat < DATESUB(NOW(), INTERVAL 30 DAY);
Color Coding Reference
Status Colors
Priority Levels
Translatable Strings
The following strings should be added to backendtranslations.md:
videoprocessordashboardtitle = "Video Processing Dashboard"
videoprocessordashboardbreadcrumb = "Video Processing Dashboard"
videoprocessordashboardsubtitle = "Real-time monitoring and status of video processing queue"
videoprocessordashboardsettings = "Settings"
videoprocessordashboardqueuevisualizer = "Queue Visualizer"
videoprocessordashboardrefresh = "Refresh"
videoprocessordashboardautorefresh = "Auto Refresh"
videoprocessordashboardautorefreshon = "On"
videoprocessordashboardautorefreshoff = "Off"
videoprocessordashboard1h = "1h"
videoprocessordashboard24h = "24h"
videoprocessordashboard7d = "7d"
videoprocessordashboard30d = "30d"
videoprocessordashboardpendingjobs = "Pending Jobs"
videoprocessordashboardprocessingjobs = "Processing Jobs"
videoprocessordashboardcompletedtoday = "Completed Today"
videoprocessordashboardfailedtoday = "Failed Today"
videoprocessordashboardavgwaittime = "Avg Wait Time"
videoprocessordashboardavgprocessingtime = "Avg Processing Time"
videoprocessordashboardjobtypebreakdown = "Job Type Breakdown"
videoprocessordashboardjobtype = "Job Type"
videoprocessordashboardtotal = "Total"
videoprocessordashboardcompleted = "Completed"
videoprocessordashboardfailed = "Failed"
videoprocessordashboardavgtime = "Avg Time"
videoprocessordashboardsuccessrate = "Success Rate"
videoprocessordashboardrecenterrors = "Recent Processing Errors"
videoprocessordashboardclearall = "Clear All Errors"
videoprocessordashboardjobid = "Job ID"
videoprocessordashboardvideo = "Video"
videoprocessordashboarderror = "Error"
videoprocessordashboardattempts = "Attempts"
videoprocessordashboardtime = "Time"
videoprocessordashboardactions = "Actions"
videoprocessordashboardacknowledge = "Acknowledge"
videoprocessordashboardhourlytrend = "Hourly Processing Trend"
videoprocessordashboardcurrentlyprocessing = "Currently Processing"
videoprocessordashboardstarted = "Started"
videoprocessordashboardduration = "Duration"
videoprocessordashboardworker = "Worker"
videoprocessordashboardpendingqueue = "Pending Queue Preview"
videoprocessordashboardpriority = "Priority"
videoprocessordashboardwaittime = "Wait Time"
videoprocessordashboardnoerrors = "No unacknowledged errors"
videoprocessordashboardnoprocessing = "No jobs currently processing"
videoprocessordashboardnopending = "No pending jobs"
videoprocessordashboardclearconfirm = "Are you sure you want to acknowledge all errors?"
Version History
Related Documentation
- Video Queue Visualizer - Visual queue management
- Video Processor Settings - Processor configuration
- Video Upload System - Upload workflow documentation
- Storage Server System - CDN and storage