Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a video for which I'd like to convert the audio codec to AAC 320 kbps / 44.100 kHz. What would I use for ffmpeg switches such that all the video settings and codec remain the same, but only the audio codec and settings change?

Here's my video:

$ ffmpeg -i Winnipeg.rb\ 
FFmpeg version SVN-r25375, Copyright (c) 2000-2010 the FFmpeg developers
  built on Oct  6 2010 13:02:41 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
  libavutil     50.32. 2 / 50.32. 2
  libavcore      0. 9. 1 /  0. 9. 1
  libavcodec    52.92. 0 / 52.92. 0
  libavformat   52.80. 0 / 52.80. 0
  libavdevice   52. 2. 2 / 52. 2. 2
  libavfilter    1.48. 0 /  1.48. 0
  libswscale     0.12. 0 /  0.12. 0

Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 10.00 (10/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Winnipeg.rb':
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
  Duration: 01:10:53.00, start: 0.000000, bitrate: 283 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 800x598, 94 kb/s, 10 fps, 10 tbr, 1k tbn, 2k tbc
    Stream #0.1(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
    Stream #0.2(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
At least one output file must be specified

Many thanks in advance! One with with ffmpeg I've never been able to grok is how to just "tweak" files without having to regurgitate every little setting for things you don't want changes.

share|improve this question
The audio (as well as the video) appears to be fairly low quality. Note that you won't actually increase the quality of the audio by changing format, increasing sampling rate, and increasing bitrate. – Force Flow Nov 27 '10 at 1:18
up vote 1 down vote accepted

An aggregation of Ehsan's answer with fletom's comment that works for me, thanks to both.

ffmpeg -i input.avi -acodec mp3 -vcodec copy out.avi

share|improve this answer
just for self reference since I always forget this -vcodec copy part – Gosha May 29 at 18:27
Can you expand your answer a little to explain it? Thanks. – fixer1234 May 29 at 19:12

If you just want to change the audio and/or video codec(s) you could just add them as parameters like so:

Just change the audio codec to mp3 (what ever the original codec was)

ffmpeg -i input.avi -acodec mp3 out.avi

Just change the video codec to h264

ffmpeg -i input.avi -vcodec h264 out.avi

It's good to note that ffmpeg must support encoding of the new codec. See

share|improve this answer
This worked for me, but I needed to add -vcodec copy in order to prevent it from trying to transcode my video into h.264. Dunno why it did that by default. – fletom Jan 14 at 5:29

Hard to judge what you are doing, since the ffmpeg command was a bit garbled in your post.

To replace an audio track:

ffmpeg -i test.avi -i normalized.mp3 -map 0:0 -map 1:0 -vcodec copy -acodec copy new_test.avi

More information about the above parameters is found in: FFmpeg Documentation.

share|improve this answer

Why don't you use Handbrake which lets keep the video and change the audio and it is a GUI for FFmpeg and it works like a charm.

share|improve this answer
HandBrake actually can't do this; it can do a simple copy of audio or subtitle streams, but it always re-encodes the video. – evilsoup Dec 19 '12 at 12:02

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.