我使用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,有人可以帮我吗?顺便说一句,输出文件听起来还不错。
答案 0 :(得分:0)
本机编码器不会在静音部分浪费比特。它没有严格的CBR。如果你真的需要输出在目标比特率附近,你可以混合非常低的噪声水平。