问题标签 [vorbis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1558 浏览

c++ - 如何将 ogg 音频文件解码为原始音频数据?

我有.ogg文件,我想将其解码为原始音频数据。我阅读了文档libvorbis,但它非常简短且不清楚。我不明白!我应该使用libvorbis什么libogg?或者是其他东西?

0 投票
2 回答
2089 浏览

audio - 如何在 ogg vorbis 文件中查找而不将所有文件加载到内存中?

我正在尝试找到一种方法来移动到轨道中所需的位置,而无需将所有文件加载到内存中。并且没有使用vorbisfile,因为文件存储在远程服务器中。我阅读了文档中关于寻求但无法理解的段落。

0 投票
1 回答
1602 浏览

audio - ogg 广播流媒体如何工作?

最近我试图了解ogg vorbis内部是如何工作的,所以我为ogg vorbis. 现在我正试图了解所有互联网 ogg 广播电台的工作原理。我不明白的事情是:如果您需要处理所有 3 个vorbis标头以了解如何解码音频(通道、速率等),它们如何永久流式传输音频并从轨道的随机位置流式传输?

0 投票
1 回答
1399 浏览

windows - 使用 Mingw 从源代码构建 libvorbis:“您必须安装 automake 才能编译 vorbis”

我正在尝试将我在 gnu/linux 上制作的项目移植到 Windows。该项目使用 vorbis 库来解码“.ogg”文件。

我需要从源代码构建项目,因为我找不到任何预构建的 Windows 二进制文件。在 linux 上,我刚刚安装了“libvorbis-dev”包。

自述文件告诉我,我应该键入./autogen.sh后跟make才能构建库。

当我输入./autogen.shmsys 终端时,我得到以下输出:

我试过安装这个http://gnuwin32.sourceforge.net/packages/automake.htm但我仍然得到同样的错误。

任何可以让这个库在 Windows 上工作和链接的帮助都将不胜感激。

0 投票
0 回答
264 浏览

c++ - Ogg vorbis 读取回调——C++ 中的语法差异

我遇到了 Ogg Vorbis 回调不起作用的问题,特别是 read_func 回调,其他的似乎都起作用了。我只是做了这个(在我看来毫无意义)的改变,突然它开始起作用了。有谁知道确切的原因,因为我很难在这里看到确切的区别。似乎需要对函数指针进行显式强制转换?

之前(尽管尝试过,Ogg 无法读取有效的标头数据):

之后(按预期完美工作):

编辑:更多信息

当我解决问题时,结构初始化确实发生了变化,因为它是使用括号中的内容构建的,但我不知何故怀疑真正的问题是缺乏显式转换。我以为我对 C++ 有很好的了解,但我决定当我遇到这些奇怪的东西时,我需要真正尝试找出它们。需要注意的一点是,我的代码是用 C++ 编写的,而 Vorbis 库是用纯 C 编写的。我还决定强制这些函数指针使用 C 原型声明样式,但这也无济于事。结构是这样初始化的(对于不起作用的旧方法):

下面是 ogg_read_func 的函数定义:

以下是原型:

ogg_read_func 只是我调试问题时的一个包装器,尽管在更改结构初始化和执行强制转换之前返回的错误始终是“Not ogg vorbis”,或者在代码术语中这个值:

#define OV_ENOTVORBIS -132

0 投票
0 回答
439 浏览

heroku - 使用 ffmpeg 将 mp4 音频转换为 webm - 无法为 webm 找到合适的输出

我有一个自定义的 heroku buildpack,它正在安装 ffmpeg、libvorbis 等。

当我运行时,ffmpeg我得到以下输出:

我正在尝试将 mp4 音频转换为 webm 音频。

这是我正在使用的命令:

和输出:

这在我的 OSX 安装上运行良好,但在 Ubuntu 14.04 上我遇到了这些错误。

我需要做什么才能使 .webm 文件成为目标?

0 投票
1 回答
2401 浏览

audio - 如何无损连接ogg vorbis文件?

我正在尝试将多个 ogg vorbis 文件连接成一个。

我知道理论上应该足够了:

但这有缺点:

  • 并非所有播放器都支持这样创建的文件(gstreamer 不支持)
  • 这样做的玩家不会顺利连接它们,而是会造成难看的瞬间停顿
  • 寻找似乎是不可能的

我不想降低质量,所以我可以将它们重新编码为像 flac 这样的无损格式,但这会让文件大小爆炸。

似乎没有工具可以做到这一点。例如,oggCat 将重新编码音频,从而导致质量略有下降,并且 ffmpeg concat demuxer不适用于所有输入文件。我打开这个超级用户问题是为了找到一个工具,但是当我发现没有工具时我自己写了。

所以我尝试使用 libogg 和 libvorbis 将输入文件中的 ogg 数据包手动连接到输出文件的 ogg 页面中。假设是,所有 ogg 输入文件都使用完全相同的参数进行编码。

我想出了以下代码:

这几乎可以工作,但在 vorbis 流连接的点插入几乎听不见的咔嗒声。

如何正确执行此操作?

可以做到吗?

0 投票
2 回答
10415 浏览

ffmpeg - ffmpeg 捕获中低质量源引起的 ALSA 缓冲区 xrun

我正在尝试通过 Ubuntu 上的 EasyCap USB 记忆棒和主板的声音输入将一些旧的 Video 8 磁带传输到我的计算机。我相信下面的参数正确地列出了从两个独立的流中捕获,并将它们都编码到输出 MP4 文件中。

编辑:

我现在可以稍微简化一下这个问题。

ALSA 缓冲区溢出(或欠载?)是由不可靠/嘈杂的音频源引起的。例如,如果 ffmpeg 捕捉到磁带播放的开始,这会导致“buffer xrun”远远超出磁带加速并且播放应该正常的时间。

有趣的是,ffmpeg 日志中显示的比特率在产生垃圾输出时会比正常值高!(这个比特率是音频和视频比特率的总和吗?)

我已经尝试了几个音频编码编解码器,并且遇到了同样的问题。

使用libfdk_aac

使用libvorbis


ffmpeg 对 ALSA 流的检测似乎被磁带的不一致性搞砸了。在失败的情况下,输出 MP4 中只存在磁带音频的短点。输出文件的音频比特率小于 10 kbps,在整个文件中平均。输出视频似乎很好,即使下面的故障案例日志中的每秒帧数较低。

在发生源错误之前,可以在短时间内很好地捕获音频和视频流;这提供了成功案例日志。故障案例日志是通过故意在源流中出错而创建的——打开相机会产生一个简短的嘈杂信号。

是否有一个设置需要强制保持 ffmpeg 记录音频流,即使磁带是空白或嘈杂的?

会不会是 libfdk_aac 音频编码器被低质量源绊倒了?

相关线路;rawvideo流在底部的脚本中通过管道传输到此:

ar论点是一种强制记录的尝试。

ffmpeg 日志文件(短期)成功;每秒捕获的高帧数:

ffmpeg 失败日志;捕获的低 FPS:

整个脚本:

从这里修改:https ://gist.github.com/Brick85/0b327ac2d3d45e23ed33

0 投票
1 回答
696 浏览

c# - 可以使用 TagLib# 将封面艺术存储在 Vorbis 评论标签的 METADATA_BLOCK_PICTURE 字段中吗?

是否可以使用 TagLib# 将封面艺术存储在 Ogg Vorbis 文件的 Vorbis 注释标签的 METADATA_BLOCK_PICTURE 字段中?

0 投票
2 回答
1736 浏览

mediarecorder - Android MediaRecorder 音频编码器 VORBIS

录制音频编解码器 VORBIS 需要哪些额外设置?

现在只保留视频。