FFMPEG Command to Remove All or Specific Audio Track Streams From Video in Command Line

 

 

The most efficient method is to use negative mapping in the -map option to exclude specific stream(s) (“tracks”) while keeping all other streams.

Remove a specific audio stream / track

  • -map 0 selects all streams from the input.
  • -map -0:a:2 then deselects audio stream 3. The stream index starts counting from 0, so audio stream 10 would be 0:a:9.

Remove all audio streams / tracks

  • -map 0 selects all streams from the input.
  • -map -0:a then deselects all audio streams from the input.

Remove specific audio streams / tracks

Keep everything except audio streams #4 (at offset 3) and #7 (at offset 6):

Remove all subtitles and data

Only include video and audio

This example does not need to use any negative mapping.

Removing other stream / track types

If you want to remove other stream types you can use the appropriate stream specifier.

  • v – video, such as -map -0:v
  • a – audio, such as -map -0:a (as shown above)
  • s – subtitles, such as -map -0:s
  • d – data, such as -map -0:d
  • t – attachments, such as -map -0:t

Extract or remove a specific audio channel

Using a stereo input and channelsplit filter. Example to get the right channel only and output a mono audio file:

  • channel_layout is the channel layout of the input stream. The default is stereo.
  • channels lists the channels to be extracted as separate output streams. The default is all which extracts each input channel as a separate, individual stream.
  • See ffmpeg -layouts for a list of accepted channel layouts (for channel_layout option) and channel names (for channels option).

 

Leave a Reply