在使用ffmpeg进行转码后,我发现音频比特率不是我预期的值

时间:2017-05-16 05:13:21

标签: audio ffmpeg transcoding bitrate

我使用ffmpeg将某些文件转码为新格式并使用某些参数。转码后,我发现一些输出文件的元数据不符合我的预期,输出值与我在cmd行中设置的不一样。

在转码之前,我检查输入文件的媒体信息:

ffmpeg -i dz2015082000010.mpg
  

ffmpeg版本3.2.4版权所有(c)2000-2017 FFmpeg开发人员
  用gcc 4.8.3(GCC)20140911(Red Hat 4.8.3-9)建造   配置: - enable-static --enable-memalign-hack --enable-libx264   --enable-gpl --enable-pthreads --enable-version3 --enable-avisynth --enable-bzlib --enable-iconv --enable-zlib --enable-nonfree --extra-cflags = -I / usr / local / include / --extra-ldflags = -L / usr / local / lib --enable-debug = 3 --disable-optimizations --enable-nonfree --enable-libmp3lame libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.101 /   57. 56.101 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 /   54. 1.100输入#0,mpeg,来自' dz2015082000010.mpg':持续时间:00:01:49.30,开始:0.685389,比特率:15723 kb / s
      流#0:0 [0x1e0]:视频:mpeg2video(主),yuv420p(电视,顶部优先),1920x1080 [SAR 1:1 DAR 16:9],15000 kb / s,25 fps,25 tbr,   9万tbn,50 tbc
      流#0:1 [0x1c0]:音频:mp2,48000 Hz,立体声,s16p,384 kb / s必须至少指定一个输出文件

接下来,使用cmd行进行转码:

ffmpeg -i dz2015082000010.mpg -vcodec libx264 -b:v 4000k -s 1920x1080 -r 25 -g 25  -vprofile main -acodec aac -strict -2 -b:a 128k -ac 2 -ar 44100 -y output.ts

转码后,我检查输出文件的媒体信息:

ffmpeg -i output.ts    
  

ffmpeg版本3.2.4版权所有(c)2000-2017 FFmpeg开发人员使用gcc 4.8.3(GCC)20140911构建(Red Hat   4.8.3-9)配置: - enable-static --enable-memalign-hack --enable-libx264 --enable-gpl --enable-pthreads --enable-version3 --enable-avisynth --enable-bzlib --enable-iconv --enable-zlib --enable-nonfree --extra-cflags = -I / usr / local / include / --extra-ldflags = -L / usr / local / lib --enable-debug = 3 --disable-optimizations --enable-nonfree --enable-libmp3lame libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101   / 57. 64.101 libavformat 57. 56.101 / 57. 56.101
  libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100   / 6. 65.100 libswscale 4. 2.100 / 4. 2.100
  libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100   / 54. 1.100输入#0,mpegts,来自' full-2.ts':持续时间:   00:01:49.30,开始时间:1.456778,比特率:4455 kb / s程序1
      元数据:
        service_name:Service01
        service_provider:FFmpeg
      流#0:0 [0x100]:视频:h264(主要)([27] [0] [0] [0] / 0x001B),yuv420p(逐行),1920x1080 [SAR 1:1 DAR 16:9],25 fps,25 tbr,   9万tbn,50 tbc
      流#0:1 [0x101]:音频:aac(LC)([15] [0] [0] [0] / 0x000F),44100 Hz,立体声,fltp,4 kb / s必须至少有一个输出文件   指定的

我不知道为什么在转码后音频比特率变为4 kb / s,我用-b设置了值:之前是128k,有人可以帮我吗?顺便说一句,输出文件听起来还不错。

1 个答案:

答案 0 :(得分:0)

本机编码器不会在静音部分浪费比特。它没有严格的CBR。如果你真的需要输出在目标比特率附近,你可以混合非常低的噪声水平。