第一:
了解编码和容器格式之间的区别。http://en.wikipedia.org/wiki/Digital_container_format
容器格式是一种“封装”其他编码数据的数据格式。它通常包含有关已编码数据的“元信息”,或者具有一种方法来存储多个单独的已编码数据流,或类似的东西。
编解码器产生的编码是数据流的实际“内容”。
我能想到的最常见的示例是“ Ogg / Vorbis”格式。Ogg是容器格式,而Vorbis是编码。因此,您有一个Ogg格式的文件,并且内部有这些包含编码数据的小存储桶。每个存储桶中都有一个Vorbis编码的数据流,仅此而已。例如,可以在存储桶上标记艺术家的姓名和歌曲标题。
回到技术:
如果您已经拥有有损格式的音乐(例如mp3或ogg / vorbis),将其转换为无损格式只会占用(大量)磁盘空间,并且不会-绝对不会 -会提高音频。一旦失去忠诚度,您将无法创建忠诚度。除非您在一些称为CSI的热门电视节目中使用Visual Basic编写GUI界面,否则那不是幻想,而是现实。
如果您有其他无损格式的音乐,并且想要将其转换为FLAC,则可以这样做。
小心使用“ WAV”一词。Wav不一定是无损的;实际上,WAV只是各种格式的容器。从某种意义上说,它就像AVI。如果它只是原始PCM数据,则可以具有无损WAV,但是您也可以将MPEG-1 Layer III数据(有损)嵌入WAV文件中。
如果降低数据的保真度,则从一种无损格式转换为另一种格式时,可能会丢失数据。例如,如果将48000 Hz的无符号16位PCM数据流转换为44100 Hz的8位PCM数据流,则将以两种方式失去保真度:样本将从48000合并到每个样本仅44100秒(导致数据丢失),并且必须对数据进行缩混以将信息调整为仅8位而不是每个样本16位,这将严重损害质量。
每个数字音频流,甚至是由压缩(有损或无损)编码器编码的数字音频流,都具有以下“样本格式属性”,它们是描述流属性的基本元素:
采样位宽度和位深度,即8位,16位等。位宽度和深度略有不同,并且还有little-endian / big-endian(不影响质量)和有符号或无符号(也没有)影响质量,但确实会影响编码器/解码器处理数据的方式)。要记住的关键点是“位越多越好”。因此32位优于16位,依此类推。
频率,也称为采样率。越多越好,因为每秒可以播放更多的音频“样本”。想象一下,迅速在一副纸牌上刷一下手指,看着纸牌模糊不清-这就是数字音频的本质。每个样本都是一张卡,如果每秒有更多卡在飞行,则音频将更加无缝。就像,您真的会注意到,如果您每秒只翻转5张卡片,但是如果您每秒翻转数千张卡片,它们都会模糊在一起。所以越多越好,因为它更自然,更接近于现实,它是模拟的并且可以无限地被整除(嗯,一直到普朗克单位,但这是值得商and的话题)。
“无损”只是意味着,如果您在输出中使用与输入中相同或更好的样本格式,则不会丢失任何数据。
因此,如果您将样本格式从16位转换为32位,则不会丢失数据。但是,如果从32位变为16位,则会丢失数据。
因此,对于使用FLAC是否有意义的问题,答案取决于源数据:如果您最初以该样本格式记录的64位WAV文件具有192000 Hz(即192KHz)的格式,则将其转换为“ 16位和44.1 KHz的标准” FLAC样本格式,您将丢失大量数据。但是,如果您的WAV文件是8位,每秒仅22100个样本,并且将其转换为16位FLAC,每秒44100个样本,则不会丢失数据。您甚至可能最终增加文件的大小,具体取决于无损压缩还是较小的样本格式。
样本格式将影响文件占用的空间,因此“更大”的位和“更快”的采样率将占用更多的空间。
就实际问题和人耳而言:如果将真正的高保真原件转换为16位44.1KHz FLAC,您将不会真正注意到。但是,如果将MP3转换为FLAC,您也不会注意到有任何改进。因此,在决定要做什么之前,您需要评估源数据采用的样本格式。
现在,我已为您提供了所有这些信息,这是我对您的问题的直接且明确的零解释答案:
我有几个关于无损音频的问题。我正在考虑将我的整个音乐收藏撕成无损.flac,但我想首先了解一些有关它的知识。
如果您的音乐收藏包含在CD中,并且想将其复制到FLAC中,那么我认为这非常合适。CD质量的音频将为44.1 KHz,每个样本16位。这与FLAC的默认设置完全匹配(至少,我使用的编码器中的默认设置)。因此,您不会丢失任何数据,并且在解码时它在数学上将与输入数据相同。
如果我有一个.flac文件,并且想将其制成例如.wav,我该怎么做而不会造成质量损失?如果解压缩,我知道我不会失去质量。将.flac转换为.wav是否与解压缩相同?
您可以将其转换为具有与输入数据相同或更大的样本格式的.wav文件,并且不会造成质量损失。
当媒体播放器播放flac文件中的音频时,它实际上是在将flac数据解码为PCM格式,然后再将该PCM数据发送到声卡。它将解压缩为与输入完全相同的数据。因此,如果输入了16位44.1 KHz PCM数据,则输出的数据将进入扬声器。
此活动与将音频转换为WAV文件之间的唯一区别在于,当将其转换为WAV文件时,它必须使用适当的填充位等创建WAV容器,并且还可以选择示例格式WAV文件。但是,假设样本格式相同,则FLAC和WAV文件之间的唯一区别将是文件大小:WAV文件将大得多。
这也适用于.ape格式吗?我已经在.ape中下载了一些公共领域的录音,但是我想将其制作为.flac。如果不使用.wav作为中间人,将.ape转换为.flac是可能的。我想确保一点都不会丢失。
不,如果不使用某些 PCM格式作为中间人,则无法执行此操作。但是可以,无需使用WAV文件就可以做到这一点。注意区别。PCM数据流。WAV文件。如果您不清楚区别,请重新阅读我的文章开头。如果要确保丢失“一点点”,则需要检查APE文件并了解其所用的示例格式,并确保将FLAC编码器设置为对相同的设置进行编码。
在内部,任何音频转换程序都将从源格式解码为某种无损PCM样本格式,然后获取这些PCM样本并将其重新编码为目标格式。
另外,如果有任何指南可以完美地解释无损世界,那么有人愿意分享链接吗?:)
我认为最好的学习方法就是做事。如果您花时间学习Gstreamer框架,如何使用它,示例格式的各种可调参数的含义以及如何构建管道,那么您将对数字音频有了真正的了解。一探究竟。http://gstreamer.freedesktop.org/您也可以从http://code.entropywave.com/gstreamer-sdk/(支持Windows)中获取Gstreamer SDK,并尝试gst-launch-0.10,而无需编译任何内容从来源。
一些启示:
gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10音频转换gst-inspect-0.10音频重新采样
然后了解上限,构造管道等,您将继续前进。
*注意:我知道我没有解释PCM是什么。维基百科比我做得更好:http : //en.wikipedia.org/wiki/Pulse-code_modulation