11

I have an old "stereo" movie as a mp4 file.

The sound is only in the left channel, the right channel is silent.

I'd like to use ffmpeg to copy the video stream :

ffmpeg -hide_banner -i video.mp4 -c:v copy ...

and convert the audio to mono by selecting only the left channel :

-map_channel 0.1.0 -map_channel -1

But that didn't change anything :-(

What is the correct ffmpeg command line for that ?

Is it also possible to do that whithout re-encoding ?

SebMa
  • 2,035

2 Answers2

19

There are at least two methods to select the left audio channel and output as mono.

Using -map_channel

Assuming the input only contains audio:

ffmpeg -i input -map_channel 0.0.0 output
  • The first number is the input file id: you only have one input so that will be 0. The second number is the stream specifier: if the audio is the second stream, such is often the case in a typical video file, then you would use 1 instead. The third number is the channel number: in a stereo input the first channel is usually the Front Left, and the second is usually the Front Right.

  • If you want the right channel instead use -map_channel 0.0.1.

  • If the input contains video, then the audio will likely (but not always) be listed as the second stream, so you would need to use 0.1.0 instead.

Using pan audio filter

ffmpeg -i input -af "pan=mono|c0=FL" output
  • Alternatively, you could use pan=mono|c0=c0.
  • If you want the right channel instead use pan=mono|c0=FR (or pan=mono|c0=c1).

Also see

llogan
  • 63,280
1

@LordNeckbeard : Found the reason why my resulting file had only audio on the left channel like my source file.

It was because I used :

-map_channel 0.1.0 -map_channel -1

which muted the second audio channel, instead of just using :

-map_channel 0.1.0

Thanks for your help :)

SebMa
  • 2,035