OBS's own guide tells you to switch to the Advanced Output Mode to get the multi-track recording options — that, in its words, "will allow you to record multiple audio track (up to 6)." A player will still hand you one of them. So when your microphone is on track 2 and the recording sounds like nothing but game audio, the voice is almost certainly in the file — it is just on a track nothing is reading.
FFmpeg is how you get it out.
The command
ffmpeg -i recording.mkv -map 0:a:1 -c:a copy track2.m4aThat pulls the second audio track out of the recording and writes it to its own file without re-encoding it.
The trap is right there in the command: 0:a:1 is the second audio stream, not the first. FFmpeg's stream indexes start at zero, so the audio you assigned to OBS's track 2 is the one you ask for with -map 0:a:1. If you reach for 0:a:1 expecting "the first track," you get the wrong audio and conclude the command is broken.
What each flag does
-
-i recording.mkv— the input. Point it at the original OBS recording, not at a copy something else has already processed. -
-map 0:a:1— input 0, audio streams, index 1. FFmpeg's documentation flags a property of this option that matters more than it looks:"When
-mapis used, only user-mapped streams are included in that output file, with one possible exception for filtergraph outputs."It is an all-or-nothing switch. The moment
-mapappears once, FFmpeg stops choosing streams for you, and anything you did not map is silently missing from the output. That is what you want here — mapping one audio stream is also how the video gets dropped — but it is also why people who map an audio track and expect the picture to come along are surprised. -
-c:a copy— copy the audio packets rather than decode and re-encode them. FFmpeg's docs describe stream copy as copying packets "without decoding, filtering, or encoding them," and state the consequence plainly:"Streamcopy is useful for changing the elementary stream count, container format, or modifying container-level metadata. Since there is no decoding or encoding, it is very fast and there is no quality loss."
Note the stated scope. Stream copy changes stream count, container format, and container-level metadata — it does not change the codec.
-
track2.m4a— the output extension picks the container. Because copying cannot change the codec, the container you name has to be one that already accepts whatever codec is in the track.
Which OBS track is which
Before you can ask for the right index you need to know what OBS put where. OBS's own advanced recording guide walks through a worked example, and it is worth reading as the shape of a typical layout:
"In this example, I'm going to leave all my source enabled on "Track 1", because that is the default for the stream, and I want it to contain all sources."
"Track 2, only "comms" (discord, skype etc) is selected, so that I can add/remove, mute it later."
"Track 3, only has "desktop-game", because I might choose to change the volume, or change the speed."
"Track 4, only has "mic/aux" so that I can potentially change volume, or add effects/noise removal."
One thing follows from that: Track 1 holding the full mix is the documented convention, not a community trick — which is why -map 0:a:0 so often sounds "correct but unseparated." The rest of that example is one person's layout, not a rule about where OBS puts things.
Your own layout is whatever you assigned in OBS's Advanced Audio Properties, and that is the screen to check before you pick an index. OBS's knowledge base documents how to assign sources to tracks and how to enable them, but it does not state how those tracks are labelled or ordered once they are written into the container — for that, check the official documentation rather than assuming the numbering carried over.
Variations
Every track at once, each to its own file — map the group instead of one index:
ffmpeg -i recording.mkv -map 0:a:0 -c:a copy t1.m4a -map 0:a:1 -c:a copy t2.m4aVideo plus one chosen track, for handing an editor a single clean file:
ffmpeg -i recording.mkv -map 0:v:0 -map 0:a:1 -c copy video-plus-track2.mkvBoth streams are mapped explicitly, which is mandatory once -map is in play.
If you do not want to install FFmpeg
For a single file where you just need to hear what is on the audio, a browser tool is quicker to reach for.
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
Be aware of exactly what this does, because it matters for multi-track OBS files: our extractor is hardcoded to -map 0:a:0. It always takes the first audio track and nothing else. That makes it a good way to answer "is there any sound in track 1 at all" — but it cannot retrieve track 2. For that you need the command above, or another tool that lets you pick a stream index.
See all Clapr tools for the rest of them, or go straight to extract audio from video.
Troubleshooting
The index you asked for does not exist. Before blaming the command, check whether the recording ever had more than one audio stream in it. A file with one track usually means the recording itself only ever had one: OBS splits track assignment across two different screens — sources are assigned to tracks in Advanced Audio Properties, and tracks are switched on separately under Settings → Output. Doing only the first step gives you a file that looks planned and records flat. See how many audio tracks OBS can record for the full setup.
The output has no video. Expected, and usually intended. -map is all-or-nothing, so map the video stream too if you want it.
The container refuses the codec. Stream copy cannot transcode, so an extension naming a container that does not carry your codec fails. OBS's formats guide publishes the container-by-codec table for the audio side, and it is the fastest way to see which way round the mismatch runs: MKV and MP4 accept AAC, ALAC, FLAC, Opus and PCM; MOV accepts AAC, ALAC and PCM but not FLAC or Opus; HLS narrows to AAC and Opus, and FLV to AAC alone. So AAC — the codec OBS's guide calls "very widely supported," and the one nearly all streaming services use — will go into whichever of these you name, while Opus out of an MKV has fewer places to land. Pick an extension that matches, or drop -c:a copy and encode deliberately. Extracting audio without re-encoding covers the codec-to-extension matching in detail.
You are working from a remuxed MP4. OBS suggests recording multi-track to MKV in the first place — "We suggest using mkv (you can remux later to mp4)" — and it ships a Remux Recordings entry under File to convert afterwards. OBS's guide describes that step only as converting the file; it does not state what happens to extra audio tracks along the way. When you have the original recording, work from that.
The track is FLV. Do not bother looking for a second track: OBS's formats guide says FLV "only supports a single audio track." For other containers, the official docs say only that "Not all recording formats (container) allow for multi track audio" without listing per-container counts — check the official documentation rather than assuming a number.
FAQ
How do I extract the second audio track from an OBS recording?
ffmpeg -i recording.mkv -map 0:a:1 -c:a copy track2.m4a. The 1 is an index counted from zero, so it selects OBS's Track 2.
Why does -map 0:a:1 give me the wrong audio?
Most likely the source you are after was never assigned to the track you think it was. Check the assignment in Advanced Audio Properties, and remember that FFmpeg's indexes start at zero, so 0:a:1 is the second stream. OBS's docs do not state how the tracks are labelled or ordered inside the file, so check the official documentation before assuming a mapping.
Why does my OBS recording sound like it has no microphone? Most likely the mic is on a track your player ignores. OBS's guide states that "all standard video players will only play back one audio track at a time," and recommends sending every source to track 1 if you are not editing the file afterwards. OBS recording has no audio walks through telling the two cases apart.
Does extracting a track this way reduce quality?
Not with -c:a copy. FFmpeg's documentation states that because there is no decoding or encoding, "there is no quality loss." Re-encoding in the same step is a separate operation, with separate consequences.
Can I pull out all the tracks in one pass?
Yes — give FFmpeg one -map 0:a:N and one output filename per track in the same command. Remember that once -map is used, only what you map ends up in each output.
OBS quotes from OBS Studio's own knowledge base — "Multiple Audio Track Recording Guide," "Advanced Recording Guide And Multi Track Audio," "Audio/Video Formats Guide" and "Standard Recording Output Guide" — checked 16 September 2026; start at obsproject.com/help. FFmpeg quotes from the FFmpeg documentation, sections "Streamcopy" and "Main options." More command-line walkthroughs in the ffmpeg guides.