5. Saving a multichannel audio to one channel per file

[1]:
import pathlib

import cutcutcodec
[2]:
from cutcutcodec.utils import get_project_root
input_file = get_project_root().parent / "media" / "audio" / "cutcutcodec.ogg"  # your audio path
[3]:
with cutcutcodec.read(input_file) as container:  # open the audio file
   stream = container.out_streams[0]  # get the audio stream
   for channel, name in stream.layout.channels:  # iterate on each channel
       mono = container.apply_audio_equation(f"{channel}_0")   # extract only one channel
       cutcutcodec.write(
           mono.out_streams,
           f"/tmp/audio_{name.replace(' ', '_')}.mp3",
           streams_settings=[{"encodec": "libmp3lame"}]
       )  # lossly
       # write(
       #     mono.out_streams,
       #     f"/tmp/audio_{name.replace(' ', '_')}.wav",
       #     streams_settings=[{"encodec": "pcm_f32le"}],
       # )  # lossless
WARNING:root:audio frame overlap of 0.051833 seconds detected                                  | 0.00s/1.99s [00:00<?]
Encoding audio_front_left.mp3: 100%|███████████████████████████████████████████████████████| 1.99s/1.99s [00:02<00:00]
WARNING:root:audio frame overlap of 0.051833 seconds detected                                  | 0.00s/1.99s [00:00<?]
Encoding audio_front_right.mp3: 100%|██████████████████████████████████████████████████████| 1.99s/1.99s [00:01<00:00]