c++ 音频转换 ( mp3 -> ogg ) 问题

     2023-02-25     291

关键词:

【中文标题】c++ 音频转换 ( mp3 -> ogg ) 问题【英文标题】:c++ audio conversion ( mp3 -> ogg ) question 【发布时间】:2009-06-03 13:58:42 【问题描述】:

我想知道是否有人知道如何将 mp3 音频文件转换为 ogg 音频文件。我知道有些程序可以在线购买,但我宁愿拥有自己的小应用程序,让我可以转换任意数量的文件。

【问题讨论】:

这对于即将到来的 superuser.com 来说是一个很好的问题。 我不这么认为,发帖人想创建一个应用程序。在我看来,这就是编程 大部分转换器都可以在脚本中使用来转换一批文件。无需编写应用程序。 “Ogg 音频”不存在,因此。 Ogg 是一种容器格式,它可能包含视频、音频或两者兼有。如果它包含音频,则该音频可能位于无损 FLAC 编解码器、有损 Vorbis 编解码器(最常见)或其他编解码器(较少见,但可能)中。 【参考方案1】:

这很简单。我不会使用 Windows Media Format SDK。仅仅因为它对这份工作来说太过分了。

您需要一个 MP3 解码器和一个 OGG 编码器以及一些胶水代码(打开文件、设置编解码器、管道传输原始音频数据等)

对于 MP3 解码器,我建议您查看 liblame 库或使用此解码库 http://www.codeproject.com/KB/audio-video/madlldlib.aspx 作为起点。

对于 OGG,选择并不多。你需要 libogg 和 libvorbis。就这么简单。库附带的示例代码向您展示了如何进行编码。

祝你好运。

【讨论】:

【参考方案2】:

这是个坏主意。引用 Vorbis 常见问题解答

您可以将任何音频格式转换为 奥格·沃尔比斯。但是,从 一种有损格式,如 MP3,到另一种 有损格式,如 Vorbis,是 通常是个坏主意。 MP3 和 Vorbis 编码器实现了高 通过丢弃压缩比 音频波形的一部分 可能不会听到。然而,MP3 和 Vorbis 编解码器非常不同, 所以他们每个人都会扔掉不同的东西 部分音频,虽然有 肯定是有些重叠的。转换 到 Vorbis 的 MP3 涉及解码 MP3 文件恢复为未压缩的 格式,如 WAV,并重新压缩它 使用 Ogg Vorbis 编码器。这 解码的 MP3 将丢失部分 MP3 的原始音频 编码器选择丢弃。奥格 然后 Vorbis 编码器将丢弃其他 压缩时的音频组件 数据。充其量,结果将是 一个听起来相同的 Ogg 文件 你原来的 MP3,但它是最 结果文件可能会 听起来比你原来的 MP3 差。在 你不会得到一个文件 听起来比原来的 MP3 更好。

由于许多音乐播放器都可以同时播放 MP3和Ogg文件,没有理由 你应该切换所有 将您的文件转换为一种格式或另一种格式。 如果您喜欢 Ogg Vorbis,那么我们会 鼓励您在使用时使用它 从原始无损音频编码 来源(如 CD)。从编码时 原件,你会发现你可以 制作更小或以下的 Ogg 文件 比您的质量更好(或两者兼有) MP3。

(如果你必须绝对必须转换 从 MP3 到 Ogg,有几种 可用的转换脚本 Freshmeat.)

http://www.vorbis.com/faq/#transcode

为了准确起见,来自同一个常见问题解答:

Ogg Ogg 是 Xiph.org 的名称 用于音频、视频和 元数据。

Vorbis Vorbis 是 特定的音频压缩方案 被设计成包含在 奥格。请注意,其他格式是 能够嵌入到 Ogg 这样的 作为 FLAC 和 Speex。

我想在 Ogg 中嵌入 MP3 理论上是可能的,但我不确定为什么有人会想要。 FLAC 是一种无损音频编解码器。 Speex 是一种非常有损的音频编解码器,针对语音编码进行了优化。 Vorbis 是一种通用的有损音频编解码器。因此,“Ogg 音频”有点用词不当。 Ogg Vorbis 是我想你的意思的正确术语。

话虽如此,如果您仍想从 MP3 转换为 Ogg Vorbis,您可以 (a) 尝试上面的 Freshmeat 链接,(b) 查看其他答案,或 (c) 查看 FFmpeg。 FFmpeg 是一个用于转换大量视频和音频编解码器和格式的通用库。它可以做很多聪明的事情。我听说它的默认 Vorbis 编码器质量很差,但它可以配置为使用 libvorbis 而不是其内置的 Vorbis 编码器。 (最后一句话现在可能已经过时了。我不知道。)

请注意,FFmpeg 将使用 LAME 和 libvorbis,就像您已经使用的一样。它不会为你做任何新的事情。它只是让您可以选择进行各种其他转换。

【讨论】:

【参考方案3】:

Foobar2000 (http://www.foobar2000.org/) 是免费的,可以很容易地在文件格式之间进行转换。只需点击几下即可从 MP3 转换为 OGG。

请记住,与从无损格式(FLAC、CD 音频、Apple 无损编解码器)转换为有损格式(MP3、OGG、M4A)相比,从有损格式转换为有损格式会降低音频质量)。如果您可以访问无损源音频,请改用它来转换它。

【讨论】:

Ogg 不是音频编解码器,有损、无损或紫色。这是一种容器格式。 Vorbis 是一种通常与 Ogg 相关联的音频编解码器,但 Ogg 文件也可以包含 FLAC 或其他音频。【参考方案4】:

您需要解码 mp3,然后编码为 ogg。

一种可能性是使用 liblame 进行 mp3 解码,使用 libogg/libvorbis 编码成 ogg。或者只使用这些的命令行版本。

但我不会说从一种有损格式转换为另一种格式是个好主意。

【讨论】:

【参考方案5】:

您当然可以使用 Windows Media Format SDK 在 C++ 中执行此操作。

我自己只使用过 WMFSDK9。它包含一个名为 UncompAVIToWMV 的示例,可以帮助您入门。来自自述文件:

它展示了如何合并样本 来自多个音频和视频流 AVI 文件,或者将它们合并到 类似的流或创建一个新的流 基于源流配置文件。 它还展示了如何创建一个 任意流,做多遍 编码并添加 SMPTE 时间码。

【讨论】:

如何将 mp3 等音频文件转换为 mo3 文件? [关闭]

】如何将mp3等音频文件转换为mo3文件?[关闭]【英文标题】:Howtoconvertanaudiofilelikemp3toanmo3file?[closed]【发布时间】:2016-12-1811:31:28【问题描述】:我正在尝试制作游戏,我需要将mp3、ogg等音频文件转换为mo3文件。【问题讨论】:... 查看详情

innosetup压缩游戏时用些音频转换软件

最近发现几个R小组硬盘版游戏压缩游戏时用些音频转换软件[注是用InnoSetup软件压缩游戏].例如LW和oggdec.exe,转换的比原来的小10倍,虽然解压时间一点,oggdec.exe最突出转换软件,下面是R小组硬盘版的BAT中的一句:for/R%%iin(*.ogg)dooggdec.exe... 查看详情

.mp3 音频对于 iOS 应用程序是不是足够,或者您还需要 .ogg?

】.mp3音频对于iOS应用程序是不是足够,或者您还需要.ogg?【英文标题】:Is.mp3audiosufficientforiOSappsoryouneed.oggaswell?.mp3音频对于iOS应用程序是否足够,或者您还需要.ogg?【发布时间】:2018-09-1118:29:33【问题描述】:对于使用Cordova... 查看详情

如何将mp3等音频文件转换为asf格式?

请教各位大虾,我的mp4可以播放asf格式的音频,我查过相关资料,asf格式文件比较小,但我找了很久也没有找到可以转换该格式的软件,请大家告诉几个软件下载地址,谢谢!谢谢回复,我用全能音频转换通V1.2试了,但是只能... 查看详情

怎么把mp3转成aac格式?

参考技术A『天天音频转换专家』是一款专业的音频转换工具。支持MP2,MP3,AAC,AC3,WMA,OGG,AMR,WAV(PCM,DSP,GSM,ADPCM),G721,G723,G726,G729,VOX,ALAW,ULAW等常见的音频格式之间的转换。可以批量转换文件而不必理会它们的源文件格式和目标文件格式... 查看详情

用于播放/录制音频(.wav、.ogg)的 C++ 多平台库

】用于播放/录制音频(.wav、.ogg)的C++多平台库【英文标题】:C++multiplatformlibrarytoplayback/recordaudio(.wav,.ogg)【发布时间】:2011-03-0310:55:03【问题描述】:我有一个多平台应用程序并想添加音频注释功能。我正在寻找音频播放/录音... 查看详情

是否有抽象 Web Audio API 和 Mozilla Audio Data API 以读取原始音频(MP3,ogg)的库

】是否有抽象WebAudioAPI和MozillaAudioDataAPI以读取原始音频(MP3,ogg)的库【英文标题】:IstherealibrarythatabstractsWebAudioAPIandMozillaAudioDataAPIforreadingrawaudio(MP3,ogg)【发布时间】:2011-12-1304:00:12【问题描述】:我想做一些音频可视化,读... 查看详情

如何将flac格式的音频文件转换为mp3格式?

...好2、进入到下载安装好的魔影工厂软件里面,选择常见音频文件下方的MP3文件选项3、再点击添加文件。添加flac格式的音频文件4、点击确认转为MP3文件格式5、然后选择输出保存的位置。设置好以后就点击开始转换6、稍等片刻就... 查看详情

mp3文件如何使用迅捷视频转换器在线转换成ape音频格式呢?

有些人听音乐喜欢品质高的,市面上有很多音频格式都是有损压缩,像mp3就把人耳听不到的删掉了,再好的设备也不可能还原。mp3音频格式是大家熟悉的音频格式,而mp3是有损压缩,就是把人耳听不到的全部删除了,不能恢复的... 查看详情

如何将flac转换成mp3

  flac是一种无损压缩的音频格式,虽然音质好,但是体积依然是巨大,所以还是有许多的小伙伴,不是很喜欢这种格式的音频。他们在拿到这种格式的音频之后都会选择将其转换成mp3格式的,那么flac怎么转换成mp3格式的呢?... 查看详情

尽管列为可用格式,但将 ogg 转换为 wav 不起作用

...发布时间】:2014-07-0506:20:37【问题描述】:我要做的是从音频文件生成10秒的sn-ps,并在此过程中将它们转换为WAV。我正在使用javazoomvorbisspi和mp3spi库。它适用于mp3和WAV文件,但不适用于.ogg文件。 查看详情

音频流 C++ 服务器/客户端

】音频流C++服务器/客户端【英文标题】:AudioStreamingC++Server/Client【发布时间】:2013-07-1104:16:53【问题描述】:我实际上正在开发服务器-客户端多媒体播放器。该播放器可以作为服务器,通过网络将MP3文件(或wma、wav、ogg、flac...... 查看详情

如何将 mp3 转换为 ogg python

】如何将mp3转换为oggpython【英文标题】:Howtoconvertmp3tooggpython【发布时间】:2019-01-0917:33:09【问题描述】:我需要将字节mp3数据转换为字节ogg。如何在python中做到这一点?我已经看过很多将其从文件转换的示例,但我不想将其写... 查看详情

怎么把音频转换成mp3,一键批量转换法

  怎么把音频转换成mp3?我们日常平时接触到的录音文件和音乐文件都属于音频文件,细心的小伙伴应该也应该发现,音频格式的种类相当多,其实大家碰到最多的就是mp3格式,此外还有很多不常用的格式... 查看详情

flac格式如何转成mp3或者wma格式?

RTflac格式可以使用风云音频处理大师转成MP3或者WMA格式。具体步骤如下:第一步:打开风云视频转换器,进入到了软件的主页功能界面,在这个界面可以清晰地看到这款软件的功能挺多的,直接点击进入到“视频转换”功能中。... 查看详情

.Ogg 与 .mp3 用于移动应用程序?

...id、WindowsPhone、IOS和BlackBerry构建移动应用程序。它是一个音频应用程序,我想知道我应该使用ogg还是mp3?Ogg似乎更压缩了,这是一件好事,但我不确定它可以在4个平台中的哪个平台上运行,质量是否更差?我不需要为所有平台... 查看详情

使用 C++ 在 linux 中播放 .mp3 或其他音频文件 [重复]

】使用C++在linux中播放.mp3或其他音频文件[重复]【英文标题】:Play.mp3orotheraudiofilesinlinuxusingC++[duplicate]【发布时间】:2012-09-2615:10:08【问题描述】:可能重复:BestaudioplaybackapiforC/C++underLinux?我正在寻找一个库,我可以使用它在linu... 查看详情

无法在 android 中播放 Telegram ogg 音频文件

】无法在android中播放Telegramogg音频文件【英文标题】:Can\'tplayTelegramoggaudiofilesinandroid【发布时间】:2015-08-2708:26:42【问题描述】:我希望我的应用播放SD卡中的.ogg音频文件,但媒体播放器和SoundPool无法对某些特定的ogg文件执行... 查看详情