#!/usr/bin/env python3
"""
对比两个音频文件的差异
"""
import subprocess

# 原始音频文件
original_file = "\\\\ll\\d\\wxvddata\\我们人类到底是怎么一步步走到今天这个样子的_枪炮_病菌与钢铁__高晓松__矮大紧__文学.mp3"

# 桌面上的音频文件
desktop_file = r"C:\Users\ad\Desktop\bandicam 2026-03-24 07-47-23-429.mp3"

def get_audio_duration(file_path):
    """获取音频时长"""
    cmd = ["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", file_path]
    result = subprocess.run(cmd, capture_output=True, text=True, encoding='utf-8', errors='ignore')
    return float(result.stdout.strip())

def get_audio_bitrate(file_path):
    """获取音频比特率"""
    cmd = ["ffprobe", "-v", "error", "-show_entries", "format=bit_rate", "-of", "default=noprint_wrappers=1:nokey=1", file_path]
    result = subprocess.run(cmd, capture_output=True, text=True, encoding='utf-8', errors='ignore')
    return int(result.stdout.strip())

def get_audio_samplerate(file_path):
    """获取音频采样率"""
    cmd = ["ffprobe", "-v", "error", "-show_entries", "stream=sample_rate", "-of", "default=noprint_wrappers=1:nokey=1", file_path]
    result = subprocess.run(cmd, capture_output=True, text=True, encoding='utf-8', errors='ignore')
    return int(result.stdout.strip())

print("=" * 80)
print("音频文件对比分析")
print("=" * 80)

# 获取两个文件的信息
print(f"\n【原始音频文件】")
print(f"  文件: {original_file.split('\\')[-1]}")
original_duration = get_audio_duration(original_file)
original_bitrate = get_audio_bitrate(original_file)
original_samplerate = get_audio_samplerate(original_file)
print(f"  时长: {original_duration:.3f}秒 ({original_duration/60:.2f}分钟)")
print(f"  比特率: {original_bitrate} bps ({original_bitrate//1000}k)")
print(f"  采样率: {original_samplerate} Hz")

print(f"\n【桌面音频文件】")
print(f"  文件: {desktop_file.split('\\')[-1]}")
desktop_duration = get_audio_duration(desktop_file)
desktop_bitrate = get_audio_bitrate(desktop_file)
desktop_samplerate = get_audio_samplerate(desktop_file)
print(f"  时长: {desktop_duration:.3f}秒 ({desktop_duration/60:.2f}分钟)")
print(f"  比特率: {desktop_bitrate} bps ({desktop_bitrate//1000}k)")
print(f"  采样率: {desktop_samplerate} Hz")

print(f"\n【差异分析】")
duration_diff = desktop_duration - original_duration
bitrate_diff = desktop_bitrate - original_bitrate

print(f"  时长差异: {duration_diff:.3f}秒 (桌面文件更长)")
print(f"  比特率差异: {bitrate_diff} bps (桌面文件比特率更高)")

print(f"\n【关键发现】")
print(f"  1. 桌面文件比原始文件长约{duration_diff:.1f}秒")
print(f"  2. 桌面文件比特率更高({desktop_bitrate//1000}k vs {original_bitrate//1000}k)")
print(f"  3. 两个文件采样率相同({original_samplerate}Hz)")

print("=" * 80)
