使用 ffmpeg 或 avconv 进行转换时,Audacious 或任何音乐播放器中的持续时间不正确

使用 ffmpeg 或 avconv 进行转换时,Audacious 或任何音乐播放器中的持续时间不正确

我有一个奇怪的问题,我无法弄清楚,这真的让我抓狂。我搜索了很长时间,但没有找到任何合适的答案。它是关于使用 ffmpeg 或 avconv 转换的 mp3 的时间长度。我正在使用 Firefox 中的下载助手下载甚至将任何视频文件转换为 mp3。除了任何音乐播放器(我尝试了 audacious、qmmp)中 mp3 的持续时间外,一切都很顺利……当我在播放器中转换 3 分钟长的视频时,它显示大约 18 分钟长。我注意到的另一件事是错误的比特率。它显示大约 32kbps,但我转换文件时使用的是 192kbps……

我尝试了用于视频文件的 VLC,它正确显示了时间,但编解码器部分的比特率也显示为 32kbps。我注意到,当我使用 VLC 打开文件时,一开始会缓冲一点时间,但最后它正确显示了时间。

我尝试的另一件事是命令ffmpeg -i 文件.mp3它还显示正确的时间长度和比特率。

奇怪的是,当我使用 audacity 导出相同的转换文件而不做任何更改时,它会以正确的时间长度正确显示在 audacious 中。可能是 audacity 使用了一些其他库来纠正该错误。

就信息而言,我已经安装了 ffmpeg、libavcodec-extra-53。

ffmpeg -version

ffmpeg 0.8.10-6:0.8.10-0ubuntu0.13.10.1
libavutil    51. 22. 2 / 51. 22. 2
libavcodec   53. 35. 0 / 53. 35. 0
libavformat  53. 21. 1 / 53. 21. 1
libavdevice  53.  2. 0 / 53.  2. 0
libavfilter   2. 15. 0 /  2. 15. 0
libswscale    2.  1. 0 /  2.  1. 0
libpostproc  52.  0. 0 / 52.  0. 0

使用 Kubuntu 13.10 i386。

提前致谢 :)

编辑:

好的...解决方案非常简单..颈须领主说,我刚刚从官方下载了版本FFmpeg 网站现在一切都正确了。

我首先清除存储库版本,然后将版本从官方网站复制到 /usr/bin/...

答案1

好的...解决方案非常简单..颈须领主说,我刚刚从官方下载了版本FFmpeg 网站现在一切都正确了。

我首先清除存储库版本,然后将版本从官方网站复制到 /usr/bin/...

答案2

mp3 文件时长显示不正确的原因是文件头存在问题。有问题的 mp3 文件可能是 vbr 编码的。

可以使用实用程序修复标题

修正

它在 Ubuntu 存储库中可用:

sudo apt-get install vbrfix

然后用它来修复一个 mp3 文件:

vbrfix in.mp3 out.mp3

或者修复目录中的所有文件:

mkdir backup
for FILE in *.mp3; do
  mv "${FILE}" backup/"${FILE}"
  vbrfix backup/"${FILE}" "${FILE}"
done
rm -rf backup

相关内容