--- schema_version: '1.3' metadata: author_name: Ze Ma author_email: ze.ma@columbia.edu difficulty: hard category: media-content-production subcategory: video-processing category_confidence: high task_type: - detection - transformation modality: - video - audio interface: - terminal - python skill_type: - tool-workflow - library-api-usage tags: - video - audio-analysis - ffmpeg - signal-processing verifier: type: test-script timeout_sec: 240.0 service: main hardening: cleanup_conftests: true agent: timeout_sec: 3600.0 environment: network_mode: public build_timeout_sec: 600.0 os: linux cpus: 1 memory_mb: 4096 storage_mb: 10240 gpus: 0 --- # Video Silence Remover Task ## Objective You are provided with a teaching video around 10min. In this video, there are durations with silence and non-teaching content. For example: 1. Opening 2. Pause in the video ## Input - **Video file**: data/input_video.mp4 ## Expected Output You need to give the following files and put them under the current workspace 1. **compressed_video.mp4**: The result video with silence clips removed. 2. **compression_report.json**: This is the annotation json file. Please follow the format: ```json { "original_duration_seconds": , "compressed_duration_seconds": , "removed_duration_seconds": , "compression_percentage": , "segments_removed": [ { "start": , "end": , "duration": } ] } ``` We need to make sure the following items are satisfied: 1. The unnecessary opening needs to be removed. 2. The long pauses (usually > 2 sec) need to be removed. 3. Keep the teaching content as much as possible. ## Evaluation Criteria The output will be evaluated by: 1. if the output files are complete and valid 2. if the compression rate is in the right range 3. if the removed/compressed duration is close to expected 4. if the JSON report has correct structure and valid segment values 5. if the math is consistent (original ≈ compressed + removed) ## Notes 1. The input video usually contains an opening followed by content. 2. The opening usually is of static frames with noise. 3. You could analyze the pauses by audio. 4. You can use any tools such as ffmpeg or Python. 5. The processing time shouldn't be too long (>10 min)