我正在尝试使用fmand使用ffmpeg转换声音:
fmpeg -y -i /Users/Artem/Sites/waprik/testing/orig.mp4 -acodec libfaac -b:a 64k -ar 41000 -ac 2 -threads 0 -vn /Users/Artem/Sites/waprik/public/testing.m4a
原始声音是4:18分钟,但输出声音持续时间是4分钟,它听起来加速。我该如何解决?
顺便说一句,原声是Duration: 00:04:18.81
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s
Metadata:
creation_time : 2014-03-07 05:45:06
handler_name : IsoMedia File Produced by Google, 5-11-2011
答案 0 :(得分:2)
您错误输入了音频。它应该是44100而不是41000:
ffmpeg -y -i /Users/Artem/Sites/waprik/testing/orig.mp4 -acodec libfaac -b:a 64k -ar 41000 -ac 2 -threads 0 -vn /Users/Artem/Sites/waprik/public/testing.m4a
这是证明它的数学计算!您的初始曲目是4分18秒,即258秒。您的转换率与实际汇率之比为41000/44100,或.9297052。将这个比率乘以你的258秒曲目,我们最终获得239.86秒的曲目......或者3分59.86秒。
发生的事情是你告诉ffmpeg,而不是一秒钟内的44100帧,实际上只有41000帧。所以,它抓住了44100中的41000并称之为秒,即使它确实不是。结果是您最终得到一个更快/更短,稍微降级的音频文件。