<p>No need to extract, you can downmix two audio channels and keep video channel and generate a new file in one command.</p>
<pre><code>ffmpeg -i input.mp4 -c:v copy -ac 1 mono-output.mp4
</code></pre>
<p>Here <code>-ac 1</code> says 1 audio channel, downmixed from stereo, look in <a href="https://trac.ffmpeg.org/wiki/AudioChannelManipulation" rel="nofollow noreferrer">ffmpeg docs</a>.
Now make a loop. Assuming you are using bash or similar unix shell</p>
<pre><code>for i in *.mp4; do ffmpeg -i $i -c:v copy -ac 1  mono-$i; done
</code></pre>

CC BY-SA 4.0
2022-05-23T23:28:24.127Z
Is there a way to do this without re-encoding the audio? (I assume not, ∵ lossy stereo codecs are a single stream.)
Geremia
CC BY-SA 4.0
2022-09-14T12:39:48.390Z
@Geremia it is not re encoded, the stream is simply copied
Abdullah Ibn Fulan
CC BY-SA 4.0
2021-08-05T05:19:02.687Z
2021-08-05T05:19:02.687Z
Abdullah Ibn Fulan
<p>I have a folder of video files listing:</p>
<p>1H.mp4;
1L.mp4;
2H.mp4;
2L.mp4;
....</p>
<p>The sounds are unbalanced for two ears - it is probably due to the recording is stereo.  How can I change the audio tracks from stereo to mono for all the video files?</p>
<p>I assume the workflow would be extract (copy) the audio tracks out, change to mono, then insert (copy) back. I have found codes for individual files, but with hundreds of such short mp4 files, I'd like to know if I can use a 'loop' to deal with them all.</p>
<p>Thank you!</p>

<ffmpeg>
ffmpeg convert stereo to mono for multiple video files
Cocoa
# ffmpeg convert stereo to mono for multiple video files

(Asked by: username_0 on 2021-05-01)

I have a folder of video files listing:

1H.mp4;
1L.mp4;
2H.mp4;
2L.mp4;
....

The sounds are unbalanced for two ears - it is probably due to the recording is stereo. How can I change the audio tracks from stereo to mono for all the video files?

I assume the workflow would be extract (copy) the audio tracks out, change to mono, then insert (copy) back. I have found codes for individual files, but with hundreds of such short mp4 files, I'd like to know if I can use a 'loop' to deal with them all.

Thank you!

**Tags:** ffmpeg


---

## 1 answers

### Answer by username_1 on 2021-08-05. Score: 2

No need to extract, you can downmix two audio channels and keep video channel and generate a new file in one command.
ffmpeg -i input.mp4 -c:v copy -ac 1 mono-output.mp4

Here -ac 1 says 1 audio channel, downmixed from stereo, look in ffmpeg docs.
Now make a loop. Assuming you are using bash or similar unix shell
for i in *.mp4; do ffmpeg -i $i -c:v copy -ac 1  mono-$i; done

> **Comments:**
> **username_2**: Is there a way to do this without re-encoding the audio? (I assume not, ∵ lossy stereo codecs are a single stream.)  
> **username_1**: @username_2 it is not re encoded, the stream is simply copied  

---

