Files
Ai/video-converter-suite/config/app.php
Claude 6c56306873 Add PHP Video Converter Suite with live stream pipelines and nuclear control panel UI
Full-featured video conversion platform with:
- FFmpeg-based pipeline system with composable stages (transcode, scale, filter, audio, bitrate, framerate, trim, deinterlace, denoise, stabilize)
- Live stream management with real-time format switching (RTMP/RTSP/HTTP)
- Industrial/nuclear power plant control room themed UI with gauges, switches, LED indicators
- Format switchboard for instant conversion between 16+ video/audio formats
- Pipeline designer with visual flow editor and drag-and-drop stage composition
- Job queue with priority scheduling and batch conversion
- WebSocket server for real-time progress broadcasting
- REST API for all operations (upload, convert, streams, pipelines, queue)
- System monitoring (CPU, memory, disk) with animated gauge displays
- Docker Compose setup with web, websocket, and worker services

https://claude.ai/code/session_01WxmHGnVFXGm2bwbFREHkHb
2026-02-07 18:11:04 +00:00

75 lines
3.2 KiB
PHP

<?php
return [
'app_name' => 'Video Converter Suite',
'version' => '1.0.0',
'debug' => true,
'ffmpeg' => [
'binary' => getenv('FFMPEG_PATH') ?: '/usr/bin/ffmpeg',
'ffprobe' => getenv('FFPROBE_PATH') ?: '/usr/bin/ffprobe',
'threads' => (int)(getenv('FFMPEG_THREADS') ?: 4),
'timeout' => 3600,
'nice' => 10,
],
'storage' => [
'uploads' => __DIR__ . '/../storage/uploads',
'outputs' => __DIR__ . '/../storage/outputs',
'thumbnails' => __DIR__ . '/../storage/thumbnails',
'logs' => __DIR__ . '/../storage/logs',
'temp' => __DIR__ . '/../storage/temp',
],
'limits' => [
'max_upload_size' => 5 * 1024 * 1024 * 1024, // 5 GB
'max_concurrent_jobs' => 3,
'max_pipeline_depth' => 10,
],
'websocket' => [
'host' => '0.0.0.0',
'port' => 8081,
],
'formats' => [
'video' => [
'mp4' => ['codec' => 'libx264', 'ext' => 'mp4', 'mime' => 'video/mp4'],
'webm' => ['codec' => 'libvpx-vp9', 'ext' => 'webm', 'mime' => 'video/webm'],
'mkv' => ['codec' => 'libx264', 'ext' => 'mkv', 'mime' => 'video/x-matroska'],
'avi' => ['codec' => 'mpeg4', 'ext' => 'avi', 'mime' => 'video/x-msvideo'],
'mov' => ['codec' => 'libx264', 'ext' => 'mov', 'mime' => 'video/quicktime'],
'flv' => ['codec' => 'flv1', 'ext' => 'flv', 'mime' => 'video/x-flv'],
'wmv' => ['codec' => 'wmv2', 'ext' => 'wmv', 'mime' => 'video/x-ms-wmv'],
'ts' => ['codec' => 'libx264', 'ext' => 'ts', 'mime' => 'video/mp2t'],
'hls' => ['codec' => 'libx264', 'ext' => 'm3u8', 'mime' => 'application/x-mpegURL'],
'dash' => ['codec' => 'libx264', 'ext' => 'mpd', 'mime' => 'application/dash+xml'],
],
'audio' => [
'aac' => ['codec' => 'aac', 'ext' => 'aac', 'mime' => 'audio/aac'],
'mp3' => ['codec' => 'libmp3lame', 'ext' => 'mp3', 'mime' => 'audio/mpeg'],
'ogg' => ['codec' => 'libvorbis', 'ext' => 'ogg', 'mime' => 'audio/ogg'],
'wav' => ['codec' => 'pcm_s16le', 'ext' => 'wav', 'mime' => 'audio/wav'],
'flac' => ['codec' => 'flac', 'ext' => 'flac', 'mime' => 'audio/flac'],
'opus' => ['codec' => 'libopus', 'ext' => 'opus', 'mime' => 'audio/opus'],
],
],
'presets' => [
'ultrafast' => ['preset' => 'ultrafast', 'crf' => 28],
'fast' => ['preset' => 'fast', 'crf' => 23],
'balanced' => ['preset' => 'medium', 'crf' => 20],
'quality' => ['preset' => 'slow', 'crf' => 18],
'lossless' => ['preset' => 'veryslow', 'crf' => 0],
],
'resolutions' => [
'4k' => ['width' => 3840, 'height' => 2160, 'label' => '4K UHD'],
'1440p' => ['width' => 2560, 'height' => 1440, 'label' => '2K QHD'],
'1080p' => ['width' => 1920, 'height' => 1080, 'label' => 'Full HD'],
'720p' => ['width' => 1280, 'height' => 720, 'label' => 'HD'],
'480p' => ['width' => 854, 'height' => 480, 'label' => 'SD'],
'360p' => ['width' => 640, 'height' => 360, 'label' => 'Low'],
],
];