为什么带有libfdk_aac编码的ffmpeg在音频文件的开头会减少25毫秒?

为什么带有libfdk_aac编码的ffmpeg在音频文件的开头会减少25毫秒?,ffmpeg,Ffmpeg,由于质量问题,我将编码从aac切换到libfdk_aac。我注意到,使用新的编码,音频文件的一小部分将在开始时被剪切。我用多个文件对此进行了测试。这是我正在使用的命令: ffmpeg -y -noaccurate_seek -i file.mp3 -b:a 260k -c:a libfdk_aac -vn -movflags +faststart output.m4a 我尝试了不同的变化,但总是以剪切文件结束 这是波形编辑器的输出 源文件: 输出: 我想我在几年前切换到fdk aac后观察到

由于质量问题,我将编码从aac切换到libfdk_aac。我注意到,使用新的编码,音频文件的一小部分将在开始时被剪切。我用多个文件对此进行了测试。这是我正在使用的命令:

ffmpeg -y -noaccurate_seek -i file.mp3 -b:a 260k -c:a libfdk_aac -vn -movflags +faststart output.m4a
我尝试了不同的变化,但总是以剪切文件结束

这是波形编辑器的输出

源文件:

输出:


我想我在几年前切换到fdk aac后观察到类似的情况,但我不确定它是否高达25m(怀疑接近44100hz、1024/44100~=0.023s时某些aac剖面的默认颗粒长度)。可能是以前的aac编码器(ffmpeg原生编码器?)有什么不同吗

写了一个小脚本复制,但没有看到与大胆的任何区别。它还尝试使用libfdk_aac进行解码。希望它可能有用

alias ffmpeg='docker run--rm-v“$PWD:$PWD”-w“$PWD”mwader/static ffmpeg:4.1.3'
#我使用的测试文件
#ffmpeg-y-f lavfi-i sine-t1-ac 2-ar 44100 sine.wav
#使用本机和fdk aac编码
ffmpeg-y-i$1-c:aac$1.native_aac.mp4
ffmpeg-y-i$1-c:libfdk_aac$1.fdk_aac.mp4
#使用本机和fdk_aac解码本机
ffmpeg-y-i$1.native_aac.mp4$1.native_aac.mp4.native_aac.wav
ffmpeg-y-c:libfdk_aac-i$1.native_aac.mp4$1.native_aac.mp4.fdk_aac.wav
#使用本机和fdk_aac解码fdk_aac
ffmpeg-y-i$1.fdk_aac.mp4$1.fdk_aac.mp4.native_aac.wav
ffmpeg-y-c:libfdk_aac-i$1.fdk_aac.mp4$1.fdk_aac.mp4.fdk_aac.wav

我想我在几年前切换到fdk aac后观察到类似的情况,但我不确定它是否高达25m(怀疑接近44100hz、1024/44100~=0.023s时某些aac剖面的默认颗粒长度)。可能是以前的aac编码器(ffmpeg原生编码器?)有什么不同吗

写了一个小脚本复制,但没有看到与大胆的任何区别。它还尝试使用libfdk_aac进行解码。希望它可能有用

alias ffmpeg='docker run--rm-v“$PWD:$PWD”-w“$PWD”mwader/static ffmpeg:4.1.3'
#我使用的测试文件
#ffmpeg-y-f lavfi-i sine-t1-ac 2-ar 44100 sine.wav
#使用本机和fdk aac编码
ffmpeg-y-i$1-c:aac$1.native_aac.mp4
ffmpeg-y-i$1-c:libfdk_aac$1.fdk_aac.mp4
#使用本机和fdk_aac解码本机
ffmpeg-y-i$1.native_aac.mp4$1.native_aac.mp4.native_aac.wav
ffmpeg-y-c:libfdk_aac-i$1.native_aac.mp4$1.native_aac.mp4.fdk_aac.wav
#使用本机和fdk_aac解码fdk_aac
ffmpeg-y-i$1.fdk_aac.mp4$1.fdk_aac.mp4.native_aac.wav
ffmpeg-y-c:libfdk_aac-i$1.fdk_aac.mp4$1.fdk_aac.mp4.fdk_aac.wav

您如何检查输入和输出?我比较使用aac和libfdk_aac生成的输出。持续时间将由FFPROBEH确定您如何检查输入和输出?ffprobe file.mp3-print_format json-show_entries format=duration-v quiet我们还在waveeditor中添加了该文件,您可以在开始时看到缺少的部分。您如何检查输入和输出?我比较了使用aac和libfdk_aac。持续时间将由FFPROBEH确定您是如何检查输入和输出的?ffprobe file.mp3-print_format json-show_entries format=duration-v quiet我们还在waveeditor中添加了该文件,您可以在开头看到缺少的部分。@vkzum是否帮助解决了问题?我很好奇我能做些什么,这帮助我理解了。我只是操纵了剧本的开始时间,现在就开始剪辑。我并没有完全解决这个问题,但目前它是可以管理的。非常感谢@vkzum是否有助于解决问题?我很好奇我能做些什么,这帮助我理解了。我只是操纵了剧本的开始时间,现在就开始剪辑。我并没有完全解决这个问题,但目前它是可以管理的。谢谢!