video-comparer
Audited by Runlayer on Feb 21, 2026
Malicious tool definition detected
Tool: .security-scan-passed Description: Security scan passed
Malicious tool definition detected
Tool: README.md [1/2] Description: # Video Comparer A professional video comparison tool that analyzes compression quality and generates interactive HTML reports.
Tool: README.md [2/2] Description: report template ├── references/ │ ├── video_metrics.md # Quality metrics reference │ └── ffmpeg_commands.md # FFmpeg command examples └── scripts/ └── compare.py # Main comparison script (696 lines) ``` ### Code Organization - **compare.py**: Main script with all functionality - Input validation and security checks - FFmpeg integration and command execution - Video metadata extraction - Quality metrics calculation (PSNR, SSIM) - Frame extraction and processing
Malicious tool definition detected
Tool: SKILL.md Description: --- name: video-comparer description: This skill should be used when comparing two videos to analyze compression results or quality differences.
Malicious tool definition detected
Tool: assets/template.html [1/2]
Tool: assets/template.html [2/2] Description: <div class="metric-value multiline">6.89 → 6.91<br>Mbps</div> <div class="metric-subtitle">+0.3%</div> </div> <div class="metric-card"> <h3>文件大小</h3> <div class="metric-value multiline">89 → 89.3<br>MB</div> <div class="metric-subtitle">+0.3 MB</div> </div> <div class="metric-card"> <h3>画质保留</h3> <div class="metric-value">87.3%</div> <div class="metric-subtitle">SSIM</div> </div> <div class="metric-card"> <h3>PSNR</h3> <div class="metric-value">23.37
Malicious tool definition detected
Tool: references/configuration.md Description: # Script Configuration Reference ## Contents - [Adjustable Constants](#adjustable-constants) - Modifying script behavior - [File Processing Limits](#file-processing-limits) - Size and timeout constraints - [Frame Extraction Settings](#frame-extraction-settings) - Visual comparison parameters - [Configuration Impact](#configuration-impact) - Performance and quality tradeoffs ## Adjustable Constants All configuration constants are defined at the top o
Malicious tool definition detected
Tool: references/ffmpeg_commands.md Description: # FFmpeg Commands Reference ## Contents - [Video Metadata Extraction](#video-metadata-extraction) - Getting video properties with ffprobe - [Frame Extraction](#frame-extraction) - Extracting frames at intervals - [Quality Metrics Calculation](#quality-metrics-calculation) - PSNR, SSIM, VMAF calculations - [Video Information](#video-information) - Duration, resolution, frame rate, bitrate, codec queries - [Image Processing](#image-processing) - Sca
Malicious tool definition detected
Tool: references/video_metrics.md Description: # Video Quality Metrics Reference ## Contents - [PSNR (Peak Signal-to-Noise Ratio)](#psnr-peak-signal-to-noise-ratio) - Pixel-level similarity measurement - [SSIM (Structural Similarity Index)](#ssim-structural-similarity-index) - Perceptual quality measurement - [VMAF (Video Multimethod Assessment Fusion)](#vmaf-video-multimethod-assessment-fusion) - Machine learning-based quality prediction - [File Size and Bitrate Considerations](#file-size-and-b
Malicious tool definition detected
Tool: scripts/compare.py [1/4] Description: #!/usr/bin/env python3 """ Video Comparison Tool Compare two videos (original vs compressed) and generate interactive HTML report.
Tool: scripts/compare.py [2/4] Description: efficiency args = [ 'ffmpeg', '-i', str(video1), '-i', str(video2), '-lavfi', '[0:v][1:v]psnr=stats_file=-;[0:v][1:v]ssim=stats_file=-', '-f', 'null', '-' ] output = run_ffmpeg_command( args, timeout=FFMPEG_TIMEOUT, description="Quality metrics calculation" ) # Parse PSNR from stderr (ffmpeg outputs to stderr) # Example: "PSNR mean:38.123456 min:35.123456 max:42.123456" psnr_match = re.search(r'PSNR.*?mean:([\d.]+)', output) psnr = float(psnr_match.gro
Tool: scripts/compare.py [3/4] Description: = original_metadata['bitrate'] / 1_000_000 comp_bitrate_mbps = compressed_metadata['bitrate'] / 1_000_000 orig_size_mb = original_metadata['size'] / (1024 * 1024) comp_size_mb = compressed_metadata['size'] / (1024 * 1024) bitrate_change_pct = ( (compressed_metadata['bitrate'] - original_metadata['bitrate']) / original_metadata['bitrate'] * 100 ) if original_metadata['bitrate'] > 0 else 0 psnr_val = quality_metrics['psnr'] ssim_val = quality_metrics['ss
Tool: scripts/compare.py [4/4] Description: file=sys.stderr) return 2 except IOError as e: logging.error(f"I/O error: {e}") print(f"