问题标签 [flac]

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 回答
228 浏览

audio - 开窗和无损压缩

我正在研究 FLAC 的工作原理,尽管我的问题对任何无损编解码器都有效。

我想知道如果原始信号乘以一个非矩形的窗口,编解码器怎么可能是无损的。

我认为这个操作会修改我们不想改变的流。

我知道一个矩形窗口的光谱响应很糟糕(sinc,有很多裂片),但是,有什么问题?我们不想干扰音频流,并且通过乘以不同于 1 的值,我们会的。

谢谢你。

0 投票
1 回答
175 浏览

c++ - 未找到 libFLAC 符号和 vtable 错误

我已经从 macintosh os x 10.6.8 下的源代码编译了 libFLAC,并成功测试了 WAV 到 FLAC 的转换(从命令行)。我还使用了默认构建: ./configure --prefix="$base/flac/more/" --exec-prefix="$base/flac/main/" --disable-asm-optimizations && make && 进行安装

现在将 FLAC 头文件和库的路径添加到一个全新的项目中。在与 libFLAC 捆绑的示例代码下,我正在尝试使用 libFLAC 解码 FLAC 音频并将其加载到系统内存中。但是,我收到symbols not found标准 Cvtable symbols not found错误和标准 C++ 方法错误(如下所示)。

Errors under the C approach:

FLAC _stream_decoder_get_state”,引用自:

FLAC _stream_decoder_new”,引用自:

FLAC _StreamDecoderStateString”,引用自:

FLAC _StreamDecoderErrorStatusString”,引用自:

FLAC__StreamDecoderErrorStatus, void*) in main.o

FLAC _stream_decoder_init_file”,引用自:

FLAC _StreamDecoderInitStatusString”,引用自:

FLAC _stream_decoder_set_md5_checking”,引用自:

FLAC _stream_decoder_process_until_end_of_stream”,引用自:

FLAC _stream_decoder_delete”,引用自:

ld:未找到符号

collect2: ld 返回 1 个退出状态

据我所知,链接器没有看到库(因为它看到了头文件)或者 libFLAC 没有正确编译。鉴于这些错误,如果有人能指出可能的解决方案,我将不胜感激。

0 投票
1 回答
710 浏览

c++ - 打包 LEFT 和 RIGHT 通道数据

我正在将 FLAC 音频解码到内存中,并将解码后的音频数据传递给 OpenAL:void alBufferData (ALuint bufferName, ALenum format, const ALvoid *data, ALsizei size, ALsizei frequency);

来自解码音频的数据进入我的std::vector<FLAC__int32> data_;。我试图将左声道和右声道(AL_FORMAT_STEREO16)打包到其中。但是,我不明白如何在我的data_向量中存储/对齐这些通道。

所以我有libFLAC虚拟回调成员函数:

目前,在音频播放期间,我只听到左声道。声音播放完毕后有静态声音,我假设是缺少 RIGHT 通道数据。我如何让正确的频道也能正常工作?

此外,这是根据 libFLAC 的元数据回调签名:

0 投票
1 回答
386 浏览

html - 使用 libFLAC 将 AudioContext 的输出转换为 FLAC 格式

我正在尝试将 HTML5 音频上下文(例如buffer.getChannelData(0)...)的 PCM 输出转换为“FLAC__stream_encoder_process_interleaved”所需的 PCM 数据

奇怪的是 FLAC 需要数据作为 int32 缓冲区(const FLAC__int32 buffer[])但是 audiocontext 的输出是标准化的 float32 数组。我不确定如何将音频上下文的规范化缓冲区转换为 FLAC 所需的格式。

关联

有人可以解释为什么 FLAC 需要 int32 中的缓冲区而不是普通的 float32 数组吗?

0 投票
2 回答
8642 浏览

audio - Is there any crossbrowser solution for playing flac? (or is it possible in theory to make one)

Not interested in silverlight. Flash/javascript/html5 solutions are acceptable.

If you do not know such solutions, could you please say is it possible to make such that or not?

0 投票
0 回答
387 浏览

mp3 - 诱变剂轨道长度信息的准确性如何

我正在对我的音乐库进行一些审核(使用 Mutagen/Python),包括查找重复项。特别是,我正在编写一个程序来查找重复项,并且我使用轨道长度作为比较两条轨道的方式的一部分。在此过程中,我发现 mp3 版本与 m4a 版本的音轨长度之间存在一些小的差异(例如 2 秒)。

这是“真实的”(即不同的编码会扭曲轨道长度 - 哎呀!)还是与标签的创建方式或读取方式有关?

如果差异是真实的且不可避免的,我应该为相等设置什么比较容差?

0 投票
0 回答
412 浏览

javascript - 用于 Aurora/flac.js 的 Ogg FLAC 解复用器

带有flac.jsAurora 项目使用 JavaScript提供 FLAC 解码和播放。flac.js中的demuxer似乎只支持原生 FLAC。

在我开始重新发明轮子之前,在 Ogg 流中是否有用于 FLAC 的 JavaScript 解复用器?

0 投票
4 回答
932 浏览

java - 如何挂起线程而不控制运行方法中的循环

我尝试制作一个播放 FLAC 文件的类。为此,我使用jFlac。所以,为了播放一首歌,我需要做:

我把它放在我班级的 run() 方法中。如果我启动线程,那就行了。但我想知道如何暂停。我无法控制 in 中的循环p.decode();,所以我不能使用等待和通知。但Thread.suspend()已弃用。我不知道该怎么办。

我的课:

谢谢!

0 投票
1 回答
2696 浏览

bash - avconv:flac 到 ogg 转换,保留元数据

我目前正在编写一个命令行工具,用于将具有各种格式(flac / ogg / mp3 / ...)的输入音乐库转换为给定格式(flac / ogg / mp3)的输出音乐库。我基于 avconv(如果 avconv 不可用,则基于 ffmpeg),因为它是我发现的最完整的命令行转换器。我的脚本可在此 URL (GitHub) 上找到:

https://github.com/biapy/howto.biapy.com/blob/master/various/mussync-tools

我正在尝试将元数据从输入库文件传递到输出/转换的库文件。

我想出了这段代码:

我的问题是,当使用 Ubuntu 13.10 Saucy Salamander 上可用的 avconv 版本将 flac 转换为 ogg 时,尽管有此选项(将全局元数据从输入 flac 文件复制到输出 ogg 文件的所有音频流),但不会保留元数据:

你们中有人知道在转换时将元数据从 flac 输入文件复制到 ogg 输出文件的正确 --map_metadata 选项吗?

ps:附加问题:如何防止avconv生成的CBR mp3文件有VBR头?

pps:我知道诸如甜菜之类的工具,但我还没有看到专门的命令行工具来完成这项任务。

0 投票
1 回答
1815 浏览

java - FLAC文件中的Android记录

如何在 FLAC 文件中使用麦克风进行录音?我试过这个:

错误:

是否可以使用 Java 1.6 和 android 4.0.3 以 Wav 格式录制声音?