# Video details for i, stream in enumerate(video_streams): print(f"\nš„ Video Stream {i}:") print(f" Codec: {stream.get('codec_name', 'Unknown')}") print(f" Resolution: {stream.get('width', '?')}x{stream.get('height', '?')}") print(f" FPS: {eval(stream.get('r_frame_rate', '0/1')):.2f}")
# 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)
# Get file size file_size = os.path.getsize(filepath) 1234 mkv
Overview This feature analyzes the MKV file 1234.mkv and provides detailed information about its contents, including video/audio/subtitle streams, codecs, and metadata. Core Features 1. File Information Display import subprocess import json import os def analyze_mkv(filepath="1234.mkv"): """Extract detailed MKV file information"""
# 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") # Video details for i, stream in enumerate(video_streams):
# Basic file info format_info = info['format'] print(f"š File: {filepath}") print(f"š Size: {int(format_info['size'])/1024/1024:.2f} MB") print(f"ā±ļø Duration: {float(format_info['duration']):.2f} seconds") print(f"š¬ Bitrate: {int(format_info['bit_rate'])/1000:.0f} kbps")
# Extract audio subprocess.run([ 'ffmpeg', '-i', filepath, '-map', '0:a:0', '-c', 'copy', '1234_audio.aac' ]) 'Unknown')}") print(f" Channels: {stream.get('channels'
# Use ffprobe to get media info cmd = [ 'ffprobe', '-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', filepath ]