前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Monkey's Audio vs. WavPack vs. FLAC By HKL,

Monkey's Audio vs. WavPack vs. FLAC By HKL,

作者头像
hiplon
发布于 2020-07-22 02:47:39
发布于 2020-07-22 02:47:39
95100
代码可运行
举报
文章被收录于专栏:VNFVNF
运行总次数:0
代码可运行

Background (背景)

For a long time I’ve been thinking about getting a HTPC running Windows Media Center Edition. I’m not quite there yet for various reasons. However, one of the problems I’m trying to solve is what to do with my music collection. I recently bought some very decent loudspeakers, and now my CD collection is growing again.

For the HTPC one could argue that space is not really an issue. With a 750 GB harddrive I can probably store somewhere between 1.000 and 1.500 uncompressed CD’s. The first problem is, I also need space for more demanding content: Video recordings. Secondly, I need a format that can be transfered to my portable music player. Finally, WAV lacks tag support, i.e. no metadata for the music files.

Sorry about the messy state this article is in. I never got around to finishing it, so I’ll just publish as it is.

(原作者大概是想要给家里添一台htpc,但是750G的硬盘可能不能放完ta的wav格式的唱片「应该是正版,我们不用考虑这东西」,所以就作者开始找个较好的无损音频压缩格式了)

I’m faced with the following dilemmas when choosing an audio format: (主要对比以下几点)

Quality requirements (音质)

Fair license (使用协议)

Tag support (标签支持)

Ease of use (possibility of automatic compression and tagging) (使用便捷度)

Software/hardware support (软/硬件兼容)

Quality requirements(音质)

I’m not sure which MP3 or AAC bitrate is “transparent” to me, and of course, it depends on the music being encoded. With MP3 I probably need at least 192 kbps for casual listening - and more to feel sure that I won’t one day suddenly start noticing artifacts in some of the songs. With AAC some say that 150 kbps is “transparent” to most listeners. It’s hard to decide exactly which bitrate to choose. Beyond 200 kbps takes up too much space on portable devices and is probably overkill. So it’s either a compromise in quality, or separate encodings for the HTPC and portable devices.

(mp3与aac都是有损压缩,作者觉得少于192kbp/s的mp3与少于150kbp/s的aac就不用考虑了,特别是对于htpc来说)

Fair license (使用协议)

You already paid for the music and the cellphone, HTPC or whatever. How much are you willing topay extra for proprietary codec support? Restrictive licenses limits the support/availability.

(我们买手机要花钱,买htpc要花錢.总不能再花钱买个音频格式的授权费用了[天朝人民这个倒不用考虑,只是基本上无损音频格式都是开源的])

Tag support (标签支持)

The minimal amount of expected metadata fits into the old and primitive ID3v1 tags. While this usually may be enough for most people, more advanced content such as album art, lyrics, etc. might also be nice for certain applications.

(至少要支持老旧的ID3v1标签)

Ease of use (使用便捷度)

The manual process when ripping a music album should involve a minimum amount of steps. Does the ripper integrate with the encoder, is CDDB-like databases supported for fetching of metadata, etc. Manually entering tag metadata tends to become boring.

(主要是开转码是否方便)

Software/hardware support (软/硬件兼容)

For the broadest support MP3 with ID3v1 tags is obviously the road to follow. However, many modern codecs are now supported in various applications: Cell phones, MP3 players, DVD players, traditional software players for various platforms and even LCD TV’s with built-in card readers.

Initial impressions

First I went to Monkey Audio’s website without knowing that my journey would not end there. I already knew it to have the best compression ratio, so I went ahead and installed the package, including the Winamp plugin. I compressed an album: Shania Twain - Come On Over. So far so good - everything worked, and the files were playable in Winamp. Tags were missing, but the package included an excellent plugin for Winamp.

In the application used to compress the files I noticed an option to spawn an external coder, and I found the WavPack command line encoder. Out of curiousity I went and fetched the latest version of this.

After a while just before buying a new Denon surround receiver, I found out that it supported FLAC files. I experimented with FLAC earlier, but never found a reason to favour this format over WavPack. This changed immediately.

The battleEncoding results

All files are encoded with “high” quality in both Monkey’s Audio and WavPack, and compression level 6 for FLAC.

FlexibilitySoftware support

Winamp: Works equally well with WavPack and Monkey’s Audio through the supplied plugins. Monkey’s Audio comes with a tag editor (including a picture of a monkey), so one could argue that this will bring it one star ahead of WavPack. FLAC is natively supported by Winamp and includes a nice tag editor.

Windows Media Center Edition and Media Player: WavPack comes with a DirectSound Filter. After installing this, both MCE and MP will play the files like they were its own babies (WMA). A DirectSound Filter is also available for FLAC.

Nero Burning ROM: Nero plugins exist for WavPack and FLAC, enabling full support when burning Audio CD’s. These plugins works so great that you won’t notice that it’s there. They also support tags, which is useful when including CD TEXT information for car CD players.

Exact Audio Copy: FLAC and WavPack both have command line options for tagging, so they can be spawned automatically from EAC in a neat way.

Directory Opus: Native support for FLAC files, which means they are fully supported by the Folder Options attribute system.

Hardware support

Denon’s A/V receivers AVR-3808 and AVR-4308 have FLAC support. They can play FLAC files from a UPnP server This is very neat if you don’t use a HTPC for playing the files, but have them stored on a NAS or regular PC far away from the Hi-Fi equipment.

Tag support

Monkey’s Audio and WavPack both use APEv2 tags. FLAC uses its own type of tags. There’s a plug-in for Media Player that adds support for both APEv2 and FLAC tags. FLAC tags are natively supported by Directory Opus.

Conclusion

Monkey’s Audio compresses slightly better than WavPack, and WavPack compresses slighty better than FLAC. But this alone doesn’t win the competition - let’s have a look at the scoreboard:

The difference in compression efficiency is so small that it’s hardly relevant for making the best decision. The software and hardware support is far more important, and here FLAC ultimately wins. I made my choice and converted all my WavPacks to FLAC. I now enjoy my music collection directly from my Denon receiver and never looked back. It would be nice with PlayStation 3 support, but this goes for all three formats. I’ve made a small GUI frontend to easily convert my FLAC files to AAC files I can use on my cellphone. I’ll probably release this later on.

Tips & tricks

Exact Audio Copy compression settings: WavPack

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Program, including path, used for compression: wavpack.exe    

Additional command line options: -w "Artist=%a" -w "Title=%t" -w "Album=%g" -w "Year=%y" -w "Track=%n" -w "Genre=%m" -h %s %d

FLAC

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Program, including path, used for compression: flac.exe    

Additional command line options: --compression-level-6 -T "artist=%a" -T "title=%t" -T "album=%g" -T "date=%y" -T "tracknumber=%n" -T "genre=%m" %s

by Jacob Laursen, 2007 at http://www.vindvejr.dk/jacob/lossless.php

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用纯 html + javascript 开发一个本地音乐播放器
本文介绍不使用任何前端开发框架,仅凭借原生的 html + JavaScript,实现一个简单的本地音乐播放器的实现步骤。
编程小妖女
2025/06/08
1770
使用纯 html + javascript 开发一个本地音乐播放器
4款知名播放器比较:ijkPlayer、VLC、SmartPlayer、ExoPlayer
ijkPlayer是BiliBili公司维护的一个开源工程,基于ffmpeg开发的一个播放器软件,支持Android和iOS平台,整个ijkplayer就是以ffplay为基础,如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小,更详细的解释参看下面官方介绍:
音视频牛哥
2021/03/18
9.1K0
音频格式的汇总及压缩比较
数字音源,也就是数字音频格式,最早指的是CD,CD经过压缩之后,又衍生出多种适于在随身听上播放的格式,这些压缩过的格式,我们可以分为两大类:有损压缩的和无损压缩的。这里所说的压缩,是指把PCM编码的或者是WAV格式的音频流经过特殊的压缩处理,转换成其他格式,从而达到减小文件体积的效果。有损/无损,是指经过压缩过后,新文件所保留的声音信号相对于原来的PCM/WAV格式的信号是否有所削减。
ZONGLYN
2019/08/08
10.9K0
使用Python读取Mp3的标签信息
MP3是音频文件最流行的格式,它的全称是 MPEG layer III。但是这种格式不支持对于音频内容的描述信息,包括歌曲名称、演唱者、专辑等等。
大江小浪
2018/07/24
1.6K0
使用Python读取Mp3的标签信息
开源的.NET媒体文件操作组件TagLib#解析
彭泽0902
2018/01/04
8180
38款 流媒体服务器开源软件
更多Red5信息 最近更新: Red5 1.0.1 Final 发布,Flash流媒体服务器 发布于 12个月前
全栈程序员站长
2022/08/15
11.1K1
38款 流媒体服务器开源软件
音视频八股文(9)-- flv的h264六层结构和aac六层结构
FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩、封装简单等特点,⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。
福大大架构师每日一题
2023/04/29
5210
libzplay库
关于MP3文件播放:通常步骤是:获取MP3相关参数 -> 解码-> 相关平台播放音频接口播放声音;
全栈程序员站长
2022/07/25
1.1K0
分享下 PHP 使用 getID3 来获取音频、视频等媒体文件相关信息
起因 最近在家办公中,碰到需要处理一些视频文件的操作,公司一直使用的某云存储,处理图片的接口倒是挺多,但是视频类的一些处理就需要开通另外的服务了,捣鼓了一圈子还是决定自己处理给公司省点钱吧。
全栈程序员站长
2022/07/12
1.2K0
分享下 PHP 使用 getID3 来获取音频、视频等媒体文件相关信息
libmad学习进阶6------madplay的使用 总结
1.先安装 1.madplay-0.15.2b.tar.gz 2.libmad-0.15.1b.tar.gz 3 libid3tag-0.15.1b.tar.gz  方法是:./configure  sudo make sudo make install prefix = /usr/local  中prefix 为make install的安装目录,默认在/usr/loacl 如果希望安装到其他目录 ./configure --prefix=/安装目录路径 4.执行madplay 播放mp3 先加载动态库 :如 export LD_LIBRARY_PATH=/usr/local/lib 播放mp3     ./madplay 1.mp3 2.mp3 3.mp3  madpay功能很强求,可以实现多个节目循环播放,快进拖动播放,暂停,恢复,支持wav等格式输出等。 目前madplay还不支持网络播放.不过mp123支持网络播放。 madplay使用方法: 传入打印既可以使用短传入(-n ),也可以使用长传入(--abc),二者等效,下面只讲短传入 -v  获取播放时间 -q  不存在任何打印,但现实警告 -Q  不存在任何打印 --downsample  只采用一半数据 -i  忽略CRC校验错误 -o PATH/xx.wav 可以用来转码,将mp3转为wav   也可以是其他格式,见说明;.raw  表示是元素pcm,.hex等 -a 开启衰减音量 ,增加音量,衰减系统为-175~+18    (当然通过键盘+ —也可以调整音量) -A 同-a -1 -2 -m -S 分别指左声道,右声道,双声道,立体声 -s  用于seek播放 如:0:1:20:11 ,seek到1小时,2分钟,11秒时开始播放 -t  用于播放时间现在  0:1:20:11 ,播放到1小时,2分钟,11秒时就停止 -z  用于随机播放列表 -r, --repeat[=MAX]   循环播放无限次或Max次  --tty-control            enable keyboard controls  默认是使能热键 --no-tty-control         disable keyboard controls 热键使用 下一首歌曲; f,或ctrl+n 或者> 上一首歌曲  b ,或ctrl+p 或者< 退出:q, Q,获取ctrl+c 获取播放状态信息: i  ? 调节音量: - + _ = 暂停恢复:p 停止:s Usage: ./madplay [OPTIONS] FILE [...] Decode and play MPEG audio FILE(s). Verbosity:   -v, --verbose                show status while decoding   -q, --quiet                  be quiet but show warnings   -Q, --very-quiet             be quiet and do not show warnings       --display-time=MODE      use default verbose time display MODE                                  (remaining, current, overall) Decoding:       --downsample             reduce sample rate 2:1   -i, --ignore-crc             ignore CRC errors       --ancillary-output=PATH  write ancillary data to PATH Audio output:   -o, --output=[TYPE:]PATH     write output to PATH with format TYPE (below)   -b, --bit-depth=DEPTH        request DEPTH bits per sample   -R, --sample-rate=HERTZ      request HERTZ samples per second   -d, --no-dither              do not dither
用户4148957
2022/06/14
1.5K0
ffmpeg的正确打开方式(三剑客之一)
FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffmpeg,它是FFmpeg用于音视频转码,转封装、转推流的基础工具。
liuzhen007
2021/06/29
3.4K0
使用libavcodec将mp3音频文件解码为pcm音频采样数据【[mp3float @ 0x561c1ec49940] Header missing】
  想要解决上面提到的问题,我们需要对mp3文件的格式有个大致了解,为了方便讲解,我这里画了个示意图:
故乡的樱花开了
2023/10/22
6170
Amazing Open Source Android Apps Written in Java
Open Source Android Apps.jpg Though Kotlin is gaining traction for building Android apps, it is still way behind Java for the same purpose. The Android platform is built over Java. Thus, most Android apps are written in Java. So, what is better than a fre
用户4095052
2018/12/27
8920
Amazing Open Source Android Apps Written in Java
ffprobe的正确打开方式(三剑客之一)
FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffprobe,它是FFmpeg用于查看媒体文件格式信息的强大工具。
liuzhen007
2021/06/29
8.6K0
数码视讯Q5刷armbian+squeezelite
数码视讯Q5 CPU:晶晨S905M 4核1.5G 内存:1g 存储:8G 显卡:Mali-450 接口:HDMI USB2.0(两个) AV TF卡槽 RJ45(1000M)
全栈程序员站长
2022/11/15
1.7K0
FLV协议5分钟入门浅析
FLV(Flash Video)是一种流媒体格式,因其体积小、协议相对简单,很快便流行开来,并得到广泛的支持。
腾讯IVWEB团队
2020/06/28
1.3K0
AI批量下载网页中的mp3音频
这个网页中有多个mp3音频 https://www.barefootbooks.com/talesofmystery
AIGC部落
2025/01/19
2600
AI批量下载网页中的mp3音频
【FFmpeg】ffmpeg 命令行参数 ③ ( ffmpeg 音频参数解析 | 设置音频帧数 | 设置音频码率 | 设置音频采样率 | 设置音频通道数 | 设置音频编解码器 | 设置音频过滤器 )
在 ffmpeg 命令中 , -aframes 参数用于设置 要输出的 音频帧 帧数 , 通过该参数 设置 一个 指定的 音频帧数 , 输出完 该 指定音频帧数 的 音频帧 之后 , ffmpeg 将会停止处理音频流 , 通过该参数 可以 精确控制音频输出长度 ;
韩曙亮
2024/02/29
5.1K0
【FFmpeg】ffmpeg 命令行参数 ③ ( ffmpeg 音频参数解析 | 设置音频帧数 | 设置音频码率 | 设置音频采样率 | 设置音频通道数 | 设置音频编解码器 | 设置音频过滤器 )
jquery在线预览PDF文件
http://tiantianit.net/upload/books/AlbbJavaKfsc.pdf
IT小马哥
2020/03/16
6.6K1
SkeyeExPlayer(Windows)开发系列之采用ffmpeg进行录像
这篇和ffmpeg进行截图类似,不过省略掉编码的过程,从网络上或者文件读取的数据为编码后的数据,直接进行写文件即可,本文以写MP4文件为例进行讲解。
Openskeye
2023/04/14
2380
推荐阅读
相关推荐
使用纯 html + javascript 开发一个本地音乐播放器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验