ffmpeg不断将第二个ac3音频流转换为mp2

时间:2011-12-29 15:58:09

标签: ffmpeg

我是这个论坛的新手,希望有人可以提供帮助。 我正在尝试将第二个音轨(chinese.ac3)添加到已经有ac3音轨的XVID视频(vts_01.avi)。

这些音轨被编码为ac3,48000 Hz,立体声,128 kb / s,我想保持这种方式 - 只需多路复用流而无需转码。

这是我正在使用的命令:

ffmpeg -i vts_01.avi -vcodec copy -i Chinese.ac3 -acodec copy -map 0:0 -map 0:1 -map 1:0 muxed2.avi -newaudio

ffmpeg完成其工作,除了它将第二首曲目转换为mp2,64 kb / s这一事实。

以下是输出的相关摘录,其中关键部分是'Stream#0.2:Audio:mp2,48000 Hz,stereo,s16,64 kb / s'我想要'Stream#0.2:Audio:ac3 ,48000 Hz,立体声,128 kb / s':

Input #0, avi, from 'vts_01.avi':
  Metadata:
    encoder         : Lavf53.5.0
  Duration: 02:03:26.40, start: 0.000000, bitrate: 1954 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 720x352 [PAR 1:1 DAR 45:22], 23.98 tbr,
23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 128 kb/s
[ac3 @ 018A7440] max_analyze_duration 5000000 reached at 5024000
[ac3 @ 018A7440] Estimating duration from bitrate, this may be inaccurate
Input #1, ac3, from 'Chinese.ac3':
  Duration: 02:03:26.36, start: 0.000000, bitrate: 128 kb/s
    Stream #1.0: Audio: ac3, 48000 Hz, stereo, s16, 128 kb/s
File 'muxed2.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'muxed2.avi':
  Metadata:
    ISFT            : Lavf53.5.0
    Stream #0.0: Video: mpeg4, yuv420p, 720x352 [PAR 1:1 DAR 45:22], q=2-31, 23.
98 tbn, 23.98 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, 128 kb/s
    Stream #0.2: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
  Stream #1.0 -> #0.2

我尝试了许多不同的组合,包括使用以下方法明确强制流到ac3:

ffmpeg -i vts_01.avi -vcodec copy -i chinese.ac3 -acodec ac3 -ac 2 -ar 48000 -ab 128k -map 0:0 -map 0:1 -map 1:0 muxed2.avi -newaudio

结果相同。

我还尝试使用流说明符(基于http://ffmpeg.org/ffmpeg.html#toc-Stream-specifiers-1)为流分配编解码器,但我的ffmpeg无法识别这些选项。

我的事情已经不多了。

1 个答案:

答案 0 :(得分:0)

(OP编辑了问题的答案。见Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

我想我刚刚找到了解决方案

     

来自http://ffmpeg-users.933282.n4.nabble.com/Encoding-with-multiple-Audio-tracks-td1289403.html在那里,詹姆斯达利说:

So your command line should look like:  
ffmpeg -i INPUT [output options] OUTPUT [audio options] -newaudio [subtitle options] -newsubtitle
  

然后我相应地重新安排了我的选项,即输出后新曲目的音频选项:

ffmpeg -i vts_01.avi -vcodec copy -acodec copy -i Chinese.ac3 muxed3.avi -acodec copy -newaudio 
  

我现在以正确的比特率获得我的两个ac3音轨。