我有一个视频,我想将其音频编解码器转换为 AAC 320 kbps / 44.100 kHz。我应该使用什么来进行 ffmpeg 切换,以便所有视频设置和编解码器保持不变,但只有音频编解码器和设置会发生变化?
这是我的视频:
$ 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
提前致谢!关于 ffmpeg,我一直无法理解的一件事是如何只“调整”文件,而不必重新设置每个你不想更改的小设置。
答案1
将 Ehsan 的回答与 fletom 的评论汇总在一起,对我很有用,感谢两者。
ffmpeg -i input.avi -acodec mp3 -vcodec copy out.avi
答案2
如果您只想更改音频和/或视频编解码器,您可以将它们添加为参数,如下所示:
只需将音频编解码器更改为 mp3(无论原始编解码器是什么)
ffmpeg -i input.avi -vcodec copy -acodec mp3 out.avi
只需将视频编解码器更改为h264即可
ffmpeg -i input.avi -vcodec h264 out.avi
值得注意的是,ffmpeg 必须支持新编解码器的编码。请参阅https://stackoverflow.com/questions/3377300/what-are-all-codecs-supported-by-ffmpeg
答案3
很难判断你在做什么,因为你的帖子中的 ffmpeg 命令有点混乱。
要替换音轨:
ffmpeg -i test.avi -i normalized.mp3 -map 0:0 -map 1:0 -vcodec copy -acodec copy new_test.avi
有关上述参数的更多信息,请参见:FFmpeg 文档。
答案4
你为什么不使用 Handbrake,它可以保留视频并更改音频,它是 FFmpeg 的 GUI,而且运行良好。