Would like to change audio codec, but keep video settings with ffmpeg

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\ Scala-Talk.mov 
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 Scala-Talk.mov':
  Metadata:
    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 thing 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 changed.


Solution 1:

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

Solution 2:

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.

Solution 3:

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 -vcodec copy -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 https://stackoverflow.com/questions/3377300/what-are-all-codecs-supported-by-ffmpeg