diff --git a/audio_splitter/formats.py b/audio_splitter/formats.py index 3af08d9..e549500 100644 --- a/audio_splitter/formats.py +++ b/audio_splitter/formats.py @@ -105,11 +105,13 @@ def validate_format_compatibility( "Please use --drop-video or choose a container that supports video (e.g., MKV, MP4)." ) - # Check if audio codec is supported - if audio_codec and audio_codec != 'copy': - if not is_audio_codec_supported(container, audio_codec): + # Determine actual audio codec for validation + # When 'copy' is used, we must still validate the input codec against the container + actual_audio_codec = audio_codec if audio_codec and audio_codec != 'copy' else stream_info.get('audio_codec') + if actual_audio_codec: + if not is_audio_codec_supported(container, actual_audio_codec): raise ValueError( - f"Container '{container}' does not support audio codec '{audio_codec}'. " + f"Container '{container}' does not support audio codec '{actual_audio_codec}'. " f"Please choose a different container or audio codec." ) @@ -119,7 +121,11 @@ def validate_format_compatibility( if video_codec is None and input_file: from .ffmpeg import get_video_codec video_codec = get_video_codec(input_file) - if video_codec and video_codec != 'copy': + # When 'copy' is used, validate the input video codec against the container + if video_codec == 'copy' and input_file: + from .ffmpeg import get_video_codec + video_codec = get_video_codec(input_file) + if video_codec: if not is_video_codec_supported(container, video_codec): raise ValueError( f"Container '{container}' does not support video codec '{video_codec}'. "