# Use ffprobe to get media info cmd = [ 'ffprobe', '-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', filepath ]
if "error" in info: print(f"❌ {info['error']}") return
# Stream analysis streams = info['streams'] video_streams = [s for s in streams if s['codec_type'] == 'video'] audio_streams = [s for s in streams if s['codec_type'] == 'audio'] subtitle_streams = [s for s in streams if s['codec_type'] == 'subtitle']
# Subtitle details for i, stream in enumerate(subtitle_streams): print(f"\n📝 Subtitle Stream {i}:") print(f" Codec: {stream.get('codec_name', 'Unknown')}") print(f" Language: {stream.get('tags', {}).get('language', 'Unknown')}") display_mkv_info("1234.mkv") 2. Stream Extraction Feature def extract_streams(filepath="1234.mkv"): """Extract individual streams from MKV""" streams = analyze_mkv(filepath)
# Audio details for i, stream in enumerate(audio_streams): print(f"\n🔊 Audio Stream {i}:") print(f" Codec: {stream.get('codec_name', 'Unknown')}") print(f" Channels: {stream.get('channels', '?')}") print(f" Sample Rate: {stream.get('sample_rate', '?')} Hz")