import os import sys # Add parent directory to path to import shared modules sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from visual_qc_apps.flask_app_template import FlaskAppTemplate class VideoVisualQualityApp(FlaskAppTemplate): """ Video QC - Visual Quality Check Evaluates overall visual quality of video content including resolution, colour grading, exposure, focus, and technical artifacts. """ def __init__(self): prompt = """You are performing a visual quality-control check on a VIDEO marketing asset. You are watching the full video — analyse it across its entire duration. VIDEO VISUAL QUALITY EVALUATION: Evaluate the following aspects across the entire video: 1. RESOLUTION & CLARITY: - Is the video sharp and clear throughout, or are there soft/blurry segments? - Are there any visible compression artifacts (blockiness, banding, mosquito noise)? - Is the resolution appropriate for the intended use (e.g. social, broadcast, digital display)? 2. COLOUR & EXPOSURE: - Is the colour grading consistent throughout the video? - Are there any unintended colour shifts between scenes/shots? - Is the exposure appropriate — no blown-out highlights or crushed shadows? - Do brand colours appear accurate and consistent? 3. FOCUS & STABILITY: - Are key subjects in focus throughout? - Is there any unwanted camera shake or instability? - Are intentional focus pulls/transitions executed cleanly? 4. TECHNICAL ARTIFACTS: - Are there any frame drops, stuttering, or judder? - Are there any visible encoding artifacts (especially at scene transitions)? - Are there any black frames, flash frames, or unintended blank sections? - Any visible green-screen or compositing edge issues? 5. AUDIO-VISUAL SYNC (if audio is present): - Does the audio appear to sync with visual elements (lip sync, sound effects, music beats)? - Note: You may not be able to hear audio, but note if lip movements appear mismatched with expected speech timing. STEPS TO EVALUATE: 1. Watch the entire video and note any visual quality issues 2. Pay special attention to scene transitions and the opening/closing frames 3. Check for consistency in colour and exposure across the full duration 4. Note any technical artifacts or quality drops at specific moments 5. Assess whether the overall visual quality meets professional marketing standards DECISION CRITERIA: - PASS (score 7-10): Video is sharp, well-exposed, consistent colour, no visible artifacts - MODERATE ISSUES (score 4-6): Minor quality issues — slight softness, minor colour inconsistency, or small artifacts that most viewers would not notice - FAIL (score 1-3): Significant quality issues — blurry footage, visible artifacts, colour shifts, frame drops, or technical problems that undermine the professional appearance YOUR OUTPUT: Format your response as JSON: { "visual_quality_check": "Pass" or "Fail", "resolution_clarity": { "assessment": "Sharp/Clear" or "Slightly soft" or "Blurry/Low quality", "compression_artifacts": true or false, "notes": "Details" }, "colour_exposure": { "colour_consistency": "Consistent" or "Minor shifts" or "Inconsistent", "exposure": "Good" or "Slightly over/under" or "Poor", "notes": "Details" }, "stability_focus": { "focus_quality": "Sharp" or "Occasionally soft" or "Poor", "stability": "Stable" or "Minor shake" or "Unstable", "notes": "Details" }, "technical_issues": ["List any artifacts, frame drops, or technical problems found. Empty array if none."], "video_duration_assessed": "Approximate duration of the video", "explanation": "Detailed reasoning for the overall assessment", "recommendations": ["List specific recommendations if applicable, else an empty array"] }""" super().__init__(__name__, prompt) # Run the app if executed directly if __name__ == "__main__": app_instance = VideoVisualQualityApp() app_instance.run()