FFMPEG MP3 文件大小比 Windows 10 上的预期大得多
FFMPEG MP3 file size much larger than expected on Windows 10
我一直在 Windows 上使用 FFMPEG 来:
- 将 iTunes M4A 文件转换为 MP3(比特率为 128k);和
- 创建上述 MP3 的 30 秒样本 MP3(相同比特率)。
当我运行 FFMEG 在Windows 7 64 位机器上时,MP3 的大小(对于1. & 2.)符合粗略计算:
(Audio length in seconds) X (Bit rate)
例如,一个 4 分钟的音频产生大约。 3.7MB MP3文件;一个 30 秒的样本 MP3 大约是。 470KB.
然而,当我在 Windows 10 64 位机器上 运行 相同的 FFMPEG 二进制文件(从 Windows 7 机器复制)时,所有的 MP3(都是 1.和 2.) 膨胀了大约 5MB。我在两台机器上使用相同的批处理文件来执行带有所需参数的 FFMEG,因此非常有信心差异不会归结为用户错误。
我的问题是:
- 为什么 Windows 10 上明显有 5MB 的开销?更重要的是;
- 我该怎么做才能删除它?
文件太大是个问题,因为示例 MP3 将放在网站上供人们收听歌曲片段,而带有多个标签的网页需要很长时间才能完全加载(几分钟) ).
这是版本和库信息:
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
这是我正在使用的命令行:
- ffmpeg -i input.m4a -id3v2_version 3 -b:a 128k -output.mp3
- ffmpeg -i input.m4a -ss 30 -t 30 -af "afade=in:st=30:d=5,afade=out:st=55:d=5" -id3v2_version 3 -b:a 128k -output.mp3
使用 FFMPEG 开关 -vn 从输出中删除视频流,这极大地减小了 MP3 的大小(减小到预期的大小)。
原来是每台机器上使用的 FFMPEG 参数之间的差异。在一台机器上,"sample" MP3 是从曲目的开头开始的 (-ss 0),这是视频流中嵌入专辑封面 PNG 的那个)。另一台机器的参数在 (-ss 30) 中从 30 秒开始 "sample",这是 不 包括专辑封面。
有趣的差异 - 不确定它是否是故意的 - 但这解释了正在发生的事情。
我一直在 Windows 上使用 FFMPEG 来:
- 将 iTunes M4A 文件转换为 MP3(比特率为 128k);和
- 创建上述 MP3 的 30 秒样本 MP3(相同比特率)。
当我运行 FFMEG 在Windows 7 64 位机器上时,MP3 的大小(对于1. & 2.)符合粗略计算:
(Audio length in seconds) X (Bit rate)
例如,一个 4 分钟的音频产生大约。 3.7MB MP3文件;一个 30 秒的样本 MP3 大约是。 470KB.
然而,当我在 Windows 10 64 位机器上 运行 相同的 FFMPEG 二进制文件(从 Windows 7 机器复制)时,所有的 MP3(都是 1.和 2.) 膨胀了大约 5MB。我在两台机器上使用相同的批处理文件来执行带有所需参数的 FFMEG,因此非常有信心差异不会归结为用户错误。
我的问题是:
- 为什么 Windows 10 上明显有 5MB 的开销?更重要的是;
- 我该怎么做才能删除它?
文件太大是个问题,因为示例 MP3 将放在网站上供人们收听歌曲片段,而带有多个标签的网页需要很长时间才能完全加载(几分钟) ).
这是版本和库信息:
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
这是我正在使用的命令行:
- ffmpeg -i input.m4a -id3v2_version 3 -b:a 128k -output.mp3
- ffmpeg -i input.m4a -ss 30 -t 30 -af "afade=in:st=30:d=5,afade=out:st=55:d=5" -id3v2_version 3 -b:a 128k -output.mp3
使用 FFMPEG 开关 -vn 从输出中删除视频流,这极大地减小了 MP3 的大小(减小到预期的大小)。
原来是每台机器上使用的 FFMPEG 参数之间的差异。在一台机器上,"sample" MP3 是从曲目的开头开始的 (-ss 0),这是视频流中嵌入专辑封面 PNG 的那个)。另一台机器的参数在 (-ss 30) 中从 30 秒开始 "sample",这是 不 包括专辑封面。
有趣的差异 - 不确定它是否是故意的 - 但这解释了正在发生的事情。