1414
1515### Key Capabilities
1616- 📹 ** Complete Video Analysis** : Technical specs, quality metrics, HLS/DASH support
17+ - 🔍 ** Enhanced Quality Control** : 16 additional QC parameters including GOP analysis, content detection
1718- 🤖 ** AI-Powered Insights** : Professional video engineering assessment with recommendations
1819- 📊 ** Quality Comparison** : VMAF, PSNR, SSIM analysis with before/after validation
1920- 🏗️ ** Production Grade** : Hardened security, scalable architecture, comprehensive monitoring
@@ -89,6 +90,8 @@ docker compose -f compose.yml -f compose.enterprise.yml up -d
8990
9091### 🎬 Professional Video Analysis
9192- ** Complete FFprobe Integration** : All metadata, streams, formats, chapters
93+ - ** Enhanced Quality Control** : 16 additional QC parameters (GOP analysis, chroma subsampling, bitrate mode detection)
94+ - ** Content Analysis** : Blackness detection, freeze frames, audio clipping, interlacing artifacts
9295- ** Quality Metrics** : VMAF, PSNR, SSIM analysis with Netflix-grade models
9396- ** HLS/DASH Support** : Streaming protocol validation and optimization
9497- ** Batch Processing** : Handle multiple files efficiently with progress tracking
@@ -142,8 +145,8 @@ docker compose -f compose.yml -f compose.enterprise.yml up -d
142145
143146| Endpoint | Method | Description | Authentication |
144147| ----------| --------| -------------| ---------------|
145- | ` /api/v1/probe/file ` | POST | Analyze uploaded video | API Key/JWT |
146- | ` /api/v1/probe/url ` | POST | Analyze video from URL | API Key/JWT |
148+ | ` /api/v1/probe/file ` | POST | Analyze uploaded video (supports ` content_analysis: true ` ) | API Key/JWT |
149+ | ` /api/v1/probe/url ` | POST | Analyze video from URL (supports ` content_analysis: true ` ) | API Key/JWT |
147150| ` /api/v1/probe/quick ` | POST | Fast basic analysis | API Key/JWT |
148151| ` /api/v1/batch/analyze ` | POST | Batch video processing | API Key/JWT |
149152| ` /api/v1/quality/compare ` | POST | Quality comparison | API Key/JWT |
@@ -165,6 +168,25 @@ curl -H "Authorization: Bearer your-jwt-token" \
165168 http://localhost:8080/api/v1/probe/file
166169```
167170
171+ ### Enhanced Analysis Request
172+ ``` bash
173+ # Standard analysis
174+ curl -X POST http://localhost:8080/api/v1/probe/file \
175+ -H " X-API-Key: your-api-key" \
176+ -d ' {
177+ "file_path": "/path/to/video.mp4",
178+ "content_analysis": false
179+ }'
180+
181+ # Enhanced analysis with content analysis
182+ curl -X POST http://localhost:8080/api/v1/probe/file \
183+ -H " X-API-Key: your-api-key" \
184+ -d ' {
185+ "file_path": "/path/to/video.mp4",
186+ "content_analysis": true
187+ }'
188+ ```
189+
168190### Response Format
169191``` json
170192{
@@ -184,6 +206,41 @@ curl -H "Authorization: Bearer your-jwt-token" \
184206 "r_frame_rate" : " 30/1"
185207 }
186208 ],
209+ "enhanced_analysis" : {
210+ "stream_counts" : {
211+ "video_streams" : 1 ,
212+ "audio_streams" : 2 ,
213+ "subtitle_streams" : 0
214+ },
215+ "video_analysis" : {
216+ "chroma_subsampling" : " 4:2:0" ,
217+ "matrix_coefficients" : " ITU-R BT.709" ,
218+ "bit_rate_mode" : " CBR" ,
219+ "has_closed_captions" : false
220+ },
221+ "gop_analysis" : {
222+ "average_gop_size" : 30.0 ,
223+ "keyframe_count" : 120 ,
224+ "gop_pattern" : " Regular (GOP=30)"
225+ },
226+ "frame_statistics" : {
227+ "total_frames" : 3600 ,
228+ "i_frames" : 120 ,
229+ "p_frames" : 2400 ,
230+ "b_frames" : 1080
231+ },
232+ "content_analysis" : {
233+ "black_frames" : {
234+ "detected_frames" : 0 ,
235+ "percentage" : 0.0
236+ },
237+ "loudness_meter" : {
238+ "integrated_loudness_lufs" : -23.0 ,
239+ "broadcast_compliant" : true ,
240+ "standard" : " EBU R128"
241+ }
242+ }
243+ },
187244 "quality_metrics" : {
188245 "vmaf_score" : 85.6 ,
189246 "psnr" : 42.3 ,
0 commit comments