我在设置 Centos 6.4 服务器来转换我当前参与的项目所需的音轨时遇到了问题。
因此,我所工作的网站的用户可以上传曲目,但由于某些浏览器不支持所有音频类型,因此我必须使用音频转换器将 mp3 转换为 ogg,将 ogg 转换为 mp3。(可能还需要 m4a 支持以及其他支持)。
在我的本地(Ubuntu)上,我可以毫无问题地安装 SoX 和 FFmpeg 来执行此操作。然而,当谈到转移到 Centos 服务器时,我遇到了许多问题。安装 SoX 没问题,但它不支持 Mp3,并且它所需的软件包(Sox-plugins-Freeworld + Sox-plugins-nonfree)似乎不受 Centos 6.4 支持,只有 Fedora 19 才支持。因为它不断抛出所需的 Glibc 2.14,但我知道 Centos 6.4 只支持 glibc 2.12。现在我可以安装 FFmpeg,但现在我需要额外的插件来将其转换为 Ogg,而 Centos 6.4 似乎也不支持 Ogg。我尝试在两个音轨之间使用管道以避免出现问题,但比特率转换不正确,导致音轨跳跃,音频质量很差。我曾考虑将音轨转换为 WAV,然后使用 FFMpeg 或 SoX 将其转换为 ogg 或 mp3,但这不是可行的策略,因为 Wav 的音轨可能非常大。此外,将松散转换为无缝再转换回来可能会再次出现问题。
所以我的问题是,首先,有人能确认 Centos 不支持 SoX 和 FFmpeg 插件吗?其次,有没有一个简单的音频转换器,可以在不损失 Centos 质量的情况下转换曲目,而我显然忽略了这一点?
。
答案1
由于专利和许可问题,Red Hat 不分发支持 MP3 的软件包。
您可以从中找到 CentOS 和 Fedora 所需的软件包RPM 融合免费和非免费存储库。
答案2
我终于解决了我的问题!
我发现,出于某种原因,我的 rpmfusion 存储库都指向 Fedora 软件包;这就是我遇到所有 glibc 冲突的原因。如果有人收到 Glibc.2.14()(64BIT) 需要或类似错误,请使用 vim 检查 /etc/yum.repos.d 中的存储库,看看它们指向哪里。为了解决这个问题,我简单地用 Yum 删除了 rpmfusion free 和 nonfree,完成后我执行了 clean all 和 update 以检查一切是否正常;然后使用 重新安装它们;。su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm'
现在回到音频转换的问题。正如 Michael Hampton 在评论中指出的那样,CentOS 不包含 mp3 和 ogg 转换所需的 sox 插件。不过,FFmpeg 确实有一个很棒的教程这有助于从源代码编译我需要的编解码器。虽然我在 ffmpeg 构建中遇到了一些小问题,但由于 tmp 文件夹的问题,这个方法还是奏效了。我设法通过在我的实际主文件夹中创建一个 tmp 文件夹然后使用来解决这个问题;export TMPDIR=$HOME/tmp
。
这个编译正确,现在我可以使用各种编解码器来处理 ffmpeg。如果其他人在服务器端使用 ffmpeg 或任何其他音频转换;您可能还需要查找 php fileinfo,以便您可以检查人们正在上传的内容。希望这对某人有所帮助。