=== BACKGROUND ===
前段时间我从互联网广播电台扯了很多音乐。不幸的是,似乎出现了一些问题,因为大多数文件的长度显示为几个小时,但它们开始在正确的位置播放。
示例:如果文件真的是3分钟,并且显示为3小时,则播放将从2小时57分钟开始。
在我升级系统之前,gstreamer是旧版本,其行为如上所述,所以我没有太多关注。现在我有一个新版本的gstreamer无法正确处理这些文件:它"播放"整个初始偏移。
=== / BACKGROUND ===
所以这是我的问题:如何修改OGG / Vorbis文件以摆脱无用的初始偏移?虽然我尝试了几个标记编辑程序,但它们都不允许我编辑这些值。 (有趣的是,easytag会显示我两次,但写错了......)
答案 0 :(得分:0)
我终于找到了解决方案!虽然这不是我所期待的......
在尝试了其他几个选项后,我最终得到了以下代码:
#!/bin/sh
cd "${1}"
OUTDIR="../`basename "${1}"`.new"
IFS="
"
find . -wholename '*.ogg' | while read filepath;
do
# Create destination directory
mkdir -p "${OUTDIR}/`dirname "${filepath}"`"
# Convert OGG to OGG
avconv -i "${filepath}" -f ogg -acodec libvorbis -vn "${OUTDIR}/${filepath}"
# Copy tags
vorbiscomment -el "${filepath}" | vorbiscomment -ew "${OUTDIR}/${filepath}"
done
此代码以递归方式重新编码所有OGG文件,然后复制所有vorbis注释。这不是一个非常有效的解决方案,但它仍然有用......
问题是什么:我猜这与ogginfo
的输出有关:
...
新逻辑流(#1,序列号:74a4ca90):键入vorbis
警告:Vorbis流1没有正确框架的标头。终端标题页包含其他数据包或具有非零granulepos
针对流1解析Vorbis标头,信息如下...... 版本:0
供应商:Xiph.Org libVorbis I 20101101(Schaufenugget)
...
重新编码文件后消失...
按照我目前正在编码的速度,可能需要几个小时,直到我的整个媒体库完全重新编码...但至少我验证了几个样本它是否正常工作:)