james-heinrich / getid3
PHP 脚本,用于从流行的多媒体文件格式中提取有用信息
Requires
- php: >=5.4.0
Requires (Dev)
- php-parallel-lint/php-parallel-lint: ^1.0
- phpunit/phpunit: ^4.8 || ^5.0 || ^6.1 || ^7.5 || ^8.5
Suggests
- ext-SimpleXML: SimpleXML extension is required to analyze RIFF/WAV/BWF audio files (also requires `ext-libxml`).
- ext-com_dotnet: COM extension is required when loading files larger than 2GB on Windows.
- ext-ctype: ctype extension is required when loading files larger than 2GB on 32-bit PHP (also on 64-bit PHP on Windows) or executing `getid3_lib::CopyTagsToComments`.
- ext-dba: DBA extension is required to use the DBA database as a cache storage.
- ext-exif: EXIF extension is required for graphic modules.
- ext-iconv: iconv extension is required to work with different character sets (when `ext-mbstring` is not available).
- ext-json: JSON extension is required to analyze Apple Quicktime videos.
- ext-libxml: libxml extension is required to analyze RIFF/WAV/BWF audio files.
- ext-mbstring: mbstring extension is required to work with different character sets.
- ext-mysql: MySQL extension is required to use the MySQL database as a cache storage (deprecated in PHP 5.5, removed in PHP >= 7.0, use `ext-mysqli` instead).
- ext-mysqli: MySQLi extension is required to use the MySQL database as a cache storage.
- ext-rar: RAR extension is required for RAR archive module.
- ext-sqlite3: SQLite3 extension is required to use the SQLite3 database as a cache storage.
- ext-xml: XML extension is required for graphic modules to analyze the XML metadata.
- ext-zlib: Zlib extension is required for archive modules and compressed metadata.
This package is auto-updated.
Last update: 2024-09-20 19:46:05 UTC
README
可在 http://getid3.sourceforge.net 或 https://www.getid3.org 获取
getID3() 采用多个许可证发布。您可以从以下许可证中选择,并根据许可证条款使用 getID3。
GNU GPL
GNU LGPL
Mozilla MPL
getID3 商业许可证
- gCL (不再提供,现有许可证仍然有效)
上述许可证的副本包含在 getID3 发行版的 licenses/
目录中。
如果您想捐赠,可以在 https://www.getid3.org 上找到 PayPal 捐赠链接。
快速入门
问:我如何检查 getID3() 在我的服务器/文件上是否正常工作?
答:将 getID3() 解压到目录中,然后访问 /demos/demo.browse.php
支持
问:我有一个问题,或者我发现了一个错误。我该怎么办?
答:请求支持和/或错误报告的首选方法是访问 http://support.getid3.org/ 的论坛。
Sourceforge 通知
强烈建议您注册 Sourceforge 的新版本发布通知。请访问: http://sourceforge.net/project/showfiles.php?group_id=55859 并点击小“监控包”图标/链接。如果您之前已注册邮件列表,请注意,该列表已被取消,现在将仅使用自动化的 Sourceforge 通知。
getID3() 做什么?
读取并解析(程度不同)
-
标签
- APE (v1 和 v2)
- ID3v1 (& ID3v1.1)
- ID3v2 (v2.4, v2.3, v2.2)
- Lyrics3 (v1 & v2)
-
有损音频
- MP3/MP2/MP1
- MPC / Musepack
- Ogg (Vorbis, OggFLAC, Speex, Opus)
- AAC / MP4
- AC3
- DTS
- RealAudio
- Speex
- DSS
- VQF
-
无损音频
- AIFF
- AU
- Bonk
- CD-audio (*.cda)
- FLAC
- LA (Lossless Audio)
- LiteWave
- LPAC
- MIDI
- Monkey's Audio
- OptimFROG
- RKAU
- Shorten
- Tom's lossless Audio Kompressor (TAK)
- TTA
- VOC
- WAV (RIFF)
- WavPack
-
音视频
- ASF: ASF, Windows Media Audio (WMA), Windows Media Video (WMV)
- AVI (RIFF)
- Flash
- Matroska (MKV)
- MPEG-1 / MPEG-2
- NSV (Nullsoft Streaming Video)
- Quicktime (包括 MP4)
- RealVideo
-
静态图像
- BMP
- GIF
- JPEG
- PNG
- TIFF
- SWF (Flash)
- PhotoCD
-
数据
- ISO-9660 CD-ROM 图像(目录结构)
- SZIP(有限支持)
- ZIP(目录结构)
- TAR
- CUE
-
写入
- ID3v1 (& ID3v1.1)
- ID3v2 (v2.3 & v2.4)
- VorbisComment on OggVorbis
- VorbisComment on FLAC(非 OggFLAC)
- APE v2
- Lyrics3(仅删除)
要求
- 对于 getID3() 1.7.x(及以前版本),PHP 4.2.0 至 5.2.x
- 对于 getID3() 1.8.x(及以后版本),PHP 5.0.5(或更高版本)
- 对于 getID3() 2.0.x(及以后版本),PHP 5.0.5(或更高版本)
- 至少需要4MB内存用于PHP。强烈建议8MB或更多。加载所有模块后需要12MB。
安装
首选方法是使用composer。如果您还没有安装composer,请遵循安装说明。
一旦安装了composer,请在项目根目录下执行以下命令来安装此库
composer require james-heinrich/getid3
使用
查看/demos/demo.basic.php,了解使用getID3()进行基本操作的示例,没有花哨的输出,仅扫描一个文件。
查看structure.txt以了解返回的数据结构。
请运行/demos/demo.browse.php以查看getID3()的完整目录浏览和文件扫描实现示例。
查看/demos/demo.mysql.php,了解一个示例递归扫描代码,该代码扫描给定目录中的每个文件以及所有子目录,并将结果存储在数据库中,允许进行各种分析/维护操作。
要分析通过HTTP或FTP远程文件,您需要在运行getID3()之前先将文件复制到本地。您的代码可能如下所示
<?php // Copy remote file locally to scan with getID3() $remotefilename = 'http://www.example.com/filename.mp3'; if ($fp_remote = fopen($remotefilename, 'rb')) { $localtempfilename = tempnam('/tmp', 'getID3'); if ($fp_local = fopen($localtempfilename, 'wb')) { while ($buffer = fread($fp_remote, 8192)) { fwrite($fp_local, $buffer); } fclose($fp_local); // Initialize getID3 engine $getID3 = new getID3; $ThisFileInfo = $getID3->analyze($localtempfilename); // Delete temporary file unlink($localtempfilename); } fclose($fp_remote); }
查看/demos/demo.write.php,了解如何写入标签。
返回的数据结构是什么样的?
请查看structure.txt
建议您查看/demos/demo.browse.php的输出,扫描您感兴趣的文件,以确认通常返回的数据结构以及您特定文件的数据,因为实际返回的数据可能因文件本身提供的信息而大相径庭。
注意
getID3() 1.x
如果格式解析器遇到一个关键问题,它将在$fileinfo['error']
中返回某些内容,描述遇到的问题。如果生成一个不太关键的错误或通知,它将出现在$fileinfo['warning']
中。这两个键可能包含多个警告或错误。如果['error']
返回了某些内容,则表示文件没有正确解析,返回的数据可能正确或不完整。如果在['warning']
(而非['error']
)中返回了某些内容,则表示返回的数据是正确的——通常getID3()报告了文件中的错误,这些错误由于其他程序中已知的缺陷而被解决了。一些警告可能表明返回的数据是正确的,但某些数据由于文件中的错误而无法提取。
getID3() 2.x
请参阅以上内容,除了错误会被抛出(因此您只会得到一个错误)。
免责声明
getID3()已在许多系统、许多类型的文件和许多操作系统下进行了测试,通常被认为是稳定和安全的。但是,仍然有可能存在未被发现和/或未修复的缺陷,可能会损坏您的文件,尤其是在写入函数中。通过使用getID3(),您同意如果您的任何文件被损坏,这不是我的责任。实际上,我对任何事情都不负责:)
许可协议
GNU通用公共许可证 - 请参阅license.txt
此程序是自由软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款和条件下重新分发和/或修改它;许可证的版本2,或(根据您的选择)任何较新版本。
此程序是在希望它会有用的希望下分发的;但没有任何保证;甚至没有关于适销性或特定用途适用性的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已经收到一份GNU通用公共许可证副本,与该程序一起;如果没有,请写信给:自由软件基金会,Inc。59 Temple Place - Suite 330 Boston,MA 02111-1307,USA。
常见问题解答
问:我可以在我的程序中使用getID3()吗?我需要商业许可证吗?
A: 您可以自由地根据需要使用 getID3。唯一需要商业许可证的情况是,如果您正在销售集成了 getID3 的封闭源程序。如果您销售包含 getID3 的程序,只要您在销售时包含源代码副本,那就没问题。或者,您也可以不包含 getID3 分发您的代码,并说明“从 getid3.sourceforge.net 下载”。
为什么叫 "getID3()",而它实际上做了这么多的事情?
v0.1 实际上只做了那件事。我没有那么老的代码副本,但今天我可以用一个单行函数实现它。
function getID3($filename) { return unpack('a3TAG/a30title/a30artist/a30album/a4year/a28comment/c1track/c1genreid', substr(file_get_contents($filename), -128)); }
未来计划
https://www.getid3.org/phpBB3/viewforum.php?f=7
- 更好地支持 MP4 容器格式
- 根据 ID3v2.4 规范(第 5.0 节)在文件末尾扫描附加的 ID3v2 标签
- 支持 JPEG-2000 (http://www.morgan-multimedia.com/jpeg2000_overview.htm)
- 支持 MOD(mod/stm/s3m/it/xm/mtm/ult/669)
- 支持 ACE(感谢 Vince)
- 支持 Ogg(除了 Vorbis、Speex 和 OggFlac,即 Ogg+Xvid)
- 为缺少 VBR 头的 VBR MP3 创建 Xing/LAME VBR 头
- 清除 ID3v2 填充(用有效填充替换无效填充)
- 如果 MP3 在流中间更改版本,则警告(在完全扫描模式下)
- 在直方图扫描中检查损坏/中断的中间文件 MP3 流
- 支持无损压缩格式(http://www.firstpr.com.au/audiocomp/lossless/#Links)(http://compression.ca/act-sound.html)(http://web.inter.nl.net/users/hvdh/lossless/lossless.htm)
- 支持 RIFF-INFO 块
- http://lotto.st-andrews.ac.uk/~njh/tag_interchange.html(感谢 Nick Humfrey <njhØsurgeradiocouk>)
- http://abcavi.narod.ru/sof/abcavi/infotags.htm(感谢 Kibi)
- 更好地支持 Bink 视频
- http://www.hr/josip/DSP/AudioFile2.html
- http://www.pcisys.net/~melanson/codecs/
- 检测 mp3PRO
- 支持 PSD
- 支持 JPC
- 支持 JP2
- 支持 JPX
- 支持 JB2
- 支持 IFF
- 支持 ICO
- 支持 ANI
- 支持 EXE(注释、作者等)(感谢 pquaedackersØplanetnl)
- 支持 DVD-IFO(区域、字幕、纵横比等)(感谢 pquaedackersØplanetnl)
- 更完整地支持 SWF - 解析封装的 MP3 和/或 JPEG 内容(感谢 n8n8Øyahoo*com)
- 支持 a2b
- 可选的 AVI 验证帧扫描(感谢 rockcohenØmassive-interactive*nl)
- 支持 TTF(感谢 infoØbutterflyx*com)
- 支持 DSS (https://www.getid3.org/phpBB3/viewtopic.php?t=171)
- 支持 SMAF (http://smaf-yamaha.com/what/demo.html) https://www.getid3.org/phpBB3/viewtopic.php?t=182
- 支持 AMR (https://www.getid3.org/phpBB3/viewtopic.php?t=195)
- 支持 3gpp (https://www.getid3.org/phpBB3/viewtopic.php?t=195)
- 支持 ID4 (http://www.wackysoft.cjb.net grizlyY2KØhotmail*com)
- 解析 Ogg 注释中返回的 XML 数据
- 解析 Quicktime SMIL 元文件的 XML 数据(klausrathØmac*com)
- ID3v2 类型字符串创建函数
- 更完整地解析 JPG
- 支持所有旧式 ASF 包
- ASF/WMA/WMV 标签写入
- 解析声明的 T??? ID3v2 文本信息帧,在适当的情况下(感谢 Christian Fritz 的想法)
- 识别编码器:http://www.guerillasoft.com/EncSpot2/index.html http://ff123.net/identify.html http://www.hydrogenaudio.org/?act=ST&f=16&t=9414 http://www.hydrogenaudio.org/?showtopic=11785
- 支持其他 OS/2 位图结构:位图数组('BA'),彩色图标('CI'),彩色指针('CP'),图标('IC'),指针 ('PT') http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
- 支持 WavPack RAW 模式
- ASF/WMA/WMV 数据包解析
- ID3v2FrameFlagsLookupTagAlter()
- ID3v2FrameFlagsLookupFileAlter()
- 遵守 ID3v2 标签修改/保留/丢弃规则
- http://www.geocities.com/SiliconValley/Sector/9654/Softdoc/Illyrium/Aolyr.htm
- 在 ID3v2 写入时正确检查 LINK/LNK 帧的有效性
- 在 ID3v2 写入时正确检查 ASPI-TLEN 帧的有效性
- 在 ID3v2 写入时正确检查 COMR 帧的有效性
- http://www.geocities.co.jp/SiliconValley-Oakland/3664/index.html
- 解码 GEOB ID3v2 结构,如 RealJukebox 编码,解码 NCON ID3v2 结构,如 MusicMatch 编码(可能不会发生 - 这些格式是专有的)
getID3() 中已知的问题/错误,可能最终会得到修复
https://www.getid3.org/phpBB3/viewtopic.php?t=25
- 无法确定具有 VBR 视频数据的 MPEG 视频的比特率(需要文档)
- 无法确定 MPEG 视频的交错/逐行扫描(需要文档)
- MIDI 播放时间有时不准确
- AAC-RAW 模式文件无法识别
- WavPack-RAW 模式文件无法识别
- mp4 文件报告大量 "未知 QuickTime 原子类型"(需要文档)
- 加密的 ASF/WMA/WMV 文件警告 "未处理的 GUID ASF_Content_Encryption_Object"
- 对于 NSV,无法计算音频和视频之间的比特率,只有总比特率。(需要文档)
- 所有 Ogg 格式(Vorbis、OggFLAC、Speex)都受到大 VorbisComments 涵盖多个 Ogg 页面的问题的影响,但只有 OggVorbis 文件可以使用 vorbiscomment 处理。
- 随 Mac OS 10.2.8 供应的 "head" 版本(可能还有其他版本)只理解单个选项(-n),因此失败。getID3 忽略此并返回错误的 md5_data。
getID3() 中已知的问题/错误,无法修复
https://www.getid3.org/phpBB3/viewtopic.php?t=25
- 仅限 32 位 PHP 安装:由于 32 位 PHP 文件系统函数的限制,getID3() 无法始终完全解析大于 2GB 的文件。注意:自 v1.7.8b3 以来,对大于 2GB 的文件提供了部分支持,其中大多数将正常解析,只要没有关键数据位于 2GB 偏移量之外。已知的 will-work
- 64 位 PHP 上的所有文件格式
- ZIP(格式不支持大于 2GB 的文件)
- FLAC(当前编码器不支持大于 2GB 的文件)已知 will-not-work
- ID3v1 标签(始终位于文件末尾)
- Lyrics3 标签(始终位于文件末尾)
- APE 标签(始终位于文件末尾)可能-will-work
- Quicktime(如果需要,在 2GB 偏移量之前的数据是必要的元数据,即如果文件已提示/优化用于流式传输,则可以正常工作)
- RIFF.WAV(应该工作良好,但会发出无法解析所有块的通知)
- RIFF.AVI(播放时间可能不正确,仅基于适合第一个 2GB 的 "movi" 块,应发出错误以显示播放时间不正确。其他数据应基本正确,假设数据在文件中保持不变)
其他程序中的已知问题/错误
https://www.getid3.org/phpBB3/viewtopic.php?t=25
- Windows Media Player(最高版本 11)和 iTunes(最高版本 10+)不正确处理 UTF-16BE+BOM 编码的 ID3v2.3 标签(它们假设数据是 UTF-16LE+BOM,要么崩溃(WMP),要么输出亚洲字符集(iTunes))
- Winamp(至少到v2.80版本)不支持ID3v2.4标签,仅支持ID3v2.3,请参阅: http://forums.winamp.com/showthread.php?postid=387524
- 某些版本的Helium2(请访问www.helium2.com)不写入符合ID3v2.4规范的帧大小,尽管标签标记为ID3v2.4(由getID3()检测到)
- MP3ext V3.3.17在ID3v2头部末尾放置了一个不符合规范的填充字符串。据说在v3.4b21中已修复,但前提是你手动添加了一个注册表键。此修复尚未得到确认。(由getID3()检测到)
- CDex v1.40(在v1.50b7中修复)写入不符合规范的Ogg注释字符串,本应格式为"NAME=value",但实际上只写为"value"(由getID3()检测到)
- Oggenc 0.9-rc3将编码的文件标记为ABR,无论它是ABR还是VBR。
- iTunes(已知的“X v2.0.3”、“v3.0.1”版本是已知的有罪,可能还有其他版本也是如此)使用无效的帧名'COM '写入ID3v2.3注释标签,该帧名对ID3v2.3+无效(是ID3v2.2样式的帧名)(由getID3()检测到)
- MP2enc不能正确地编码单声道CBR MP2文件(音速减半且播放时间加倍)
- MP2enc不能正确地编码单声道VBR MP2文件(实际上编码为立体声)
- tooLAME不能正确地编码单声道VBR MP2文件(实际上编码为立体声)
- AACenc即使在指定CBR模式的情况下也会以VBR模式(实际上是ABR)编码文件
- AAC/ADIF - 对于vbr文件,bitrate_mode = cbr
- LAME 3.90-3.92在CBR模式下使用DLL编码时,会在前面添加一个空数据帧(用于LAME/VBR头部的空间,但从未写入)
- Ahead Nero使用DSIZ值(本应表示字节数的文件大小)为"TwinVQF v1.0"的"0"和"TwinVQF v2.0"的"1"编码TwinVQF(由getID3()检测到)
- Ahead Nero编码的TwinVQF文件比应有的时间短1秒
- AAC-ADTS文件始终实际上以VBR模式编码,即使指定了CBR模式(编码器上的CBR模式开关启用ABR模式,而不是CBR模式,但无法区分此类ABR文件和真正的VBR文件)
- OggFLAC中的STREAMINFO.audio_signature始终为空。"原因是libOggFLAC中还没有搜索支持,因此它无法在编码后返回并写入计算出的总和。Ogg FLAC的搜索支持是下一个版本的首要任务。" - Josh Coalson(FLAC开发者)注意:getID3()将以与其他文件格式类似的方法计算md5_data,但该值无法与FLAC文件格式中的FLAC数据中的md5_data值进行比较。
- FLAC v0.3.0 & v0.4.0中不计算STREAMINFO.audio_signature - getID3()将以与其他文件格式类似的方法计算md5_data,但该值无法与FLAC v0.5.0+中的md5_data值进行比较。
- RioPort(包括2.0和3.11在内的各种版本)使用没有数据部分的WCOM帧标记ID3v2
- Coolplayer的早期版本会将非法ID3标签添加到Ogg Vorbis文件中,从而使文件损坏。
- Meracl ID3 Tag Writer v1.3.4(及更早版本)在添加新的ID3v1标签时,不正确地截断MP3文件数据中的最后一个字节。(由getID3()检测到)
- 使用和/或未使用-noseek开关编解码的Lossless-Audio文件在内部实际上不同,因此无法与md5_data匹配
- iTunes已知会在存在ID3v2标签时在现有ID3v1标签的末尾添加一个新的ID3v1标签(由getID3()检测到)
- MediaMonkey可能写入一个空的RGAD ID3v2帧,但将实际的重放增益调整放在一系列用户定义的TXXX帧中(自v1.9.2以来由getID3()检测和处理)
参考资料
www.id3.org资料现在镜像在http://id3lib.sourceforge.net/id3/
- http://www.id3.org/id3v2.4.0-structure.txt
- http://www.id3.org/id3v2.4.0-frames.txt
- http://www.id3.org/id3v2.4.0-changes.txt
- http://www.id3.org/id3v2.3.0.txt
- http://www.id3.org/id3v2-00.txt
- http://www.id3.org/mp3frame.html
- http://minnie.tuhs.org/pipermail/mp3encoder/2001-January/001800.html [email protected]
- http://www.dv.co.yu/mpgscript/mpeghdr.htm
- http://www.mp3-tech.org/programmer/frame_header.html
- http://users.belgacom.net/gc247244/extra/tag.html
- http://gabriel.mp3-tech.org/mp3infotag.html
- http://www.id3.org/iso4217.html
- http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
- http://www.xiph.org/ogg/vorbis/doc/framing.html
- http://www.xiph.org/ogg/vorbis/doc/v-comment.html
- http://leknor.com/code/php/class.ogg.php.txt
- http://www.id3.org/iso639-2.html
- http://www.id3.org/lyrics3.html
- http://www.id3.org/lyrics3200.html
- http://www.psc.edu/general/software/packages/ieee/ieee.html
- http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
- http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
- http://www.jmcgowan.com/avi.html
- http://www.wotsit.org/
- http://www.herdsoft.com/ti/davincie/davp3xo2.htm
- http://www.mathdogs.com/vorbis-illuminated/bitstream-appendix.html
- "标准MIDI文件格式" by Dustin Caldwell (from www.wotsit.org)
- http://midistudio.com/Help/GMSpecs_Patches.htm
- http://www.xiph.org/archives/vorbis/200109/0459.html
- http://www.replaygain.org/
- http://www.lossless-audio.com/
- http://download.microsoft.com/download/winmediatech40/Doc/1.0/WIN98MeXP/EN-US/ASF_Specification_v.1.0.exe
- http://mediaxw.sourceforge.net/files/doc/Active%20Streaming%20Format%20(ASF)%201.0%20Specification.pdf
- http://www.uni-jena.de/~pfk/mpp/sv8/ (存档于 http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/sv8/)
- http://jfaul.de/atl/
- http://www.uni-jena.de/~pfk/mpp/ (存档于 http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/)
- http://www.libpng.org/pub/png/spec/png-1.2-pdg.html
- http://www.real.com/devzone/library/creating/rmsdk/doc/rmff.htm
- http://www.fastgraph.com/help/bmp_os2_header_format.html
- http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
- http://flac.sourceforge.net/format.html
- http://www.research.att.com/projects/mpegaudio/mpeg2.html
- http://www.audiocoding.com/wiki/index.php?page=AAC
- http://libmpeg.org/mpeg4/doc/w2203tfs.pdf
- http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
- http://developer.apple.com/techpubs/quicktime/qtdevdocs/RM/frameset.htm
- http://www.nullsoft.com/nsv/
- http://www.wotsit.org/download.asp?f=iso9660
- http://sandbox.mc.edu/~bennet/cs110/tc/tctod.html
- http://www.cdroller.com/htm/readdata.html
- http://www.speex.org/manual/node10.html
- http://www.harmony-central.com/Computer/Programming/aiff-file-format.doc
- http://www.faqs.org/rfcs/rfc2361.html
- http://ghido.shelter.ro/
- http://www.ebu.ch/tech_t3285.pdf
- http://www.sr.se/utveckling/tu/bwf
- http://ftp.aessc.org/pub/aes46-2002.pdf
- http://cartchunk.org:8080/
- http://www.broadcastpapers.com/radio/cartchunk01.htm
- http://www.hr/josip/DSP/AudioFile2.html
- http://home.attbi.com/~chris.bagwell/AudioFormats-11.html
- http://www.pure-mac.com/extkey.html
- http://cesnet.dl.sourceforge.net/sourceforge/bonkenc/bonk-binary-format-0.9.txt
- http://www.headbands.com/gspot/
- http://www.openswf.org/spec/SWFfileformat.html
- http://j-faul.virtualave.net/
- http://www.btinternet.com/~AnthonyJ/Atari/programming/avr_format.html
- http://cui.unige.ch/OSG/info/AudioFormats/ap11.html
- http://sswf.sourceforge.net/SWFalexref.html
- http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt
- http://www-lehre.informatik.uni-osnabrueck.de/~fbstark/diplom/docs/swf/Flash_Uncovered.htm
- http://developer.apple.com/quicktime/icefloe/dispatch012.html
- http://www.csdn.net/Dev/Format/graphics/PCD.htm
- http://tta.iszf.irk.ru/
- http://www.atsc.org/standards/a_52a.pdf
- http://www.alanwood.net/unicode/
- http://www.freelists.org/archives/matroska-devel/07-2003/msg00010.html
- http://www.its.msstate.edu/net/real/reports/config/tags.stats
- http://homepages.slingshot.co.nz/~helmboy/quicktime/formats/qtm-layout.txt
- http://brennan.young.net/Comp/LiveStage/things.html
- http://www.multiweb.cz/twoinches/MP3inside.htm
- http://www.geocities.co.jp/SiliconValley-Oakland/3664/alittle.html#GenreExtended
- http://www.mactech.com/articles/mactech/Vol.06/06.01/SANENormalized/
- http://www.unicode.org/unicode/faq/utf_bom.html
- http://tta.corecodec.org/?menu=format
- http://www.scvi.net/nsvformat.htm
- http://pda.etsi.org/pda/queryform.asp
- http://cpansearch.perl.org/src/RGIBSON/Audio-DSS-0.02/lib/Audio/DSS.pm
- http://trac.musepack.net/trac/wiki/SV8Specification
- http://wyday.com/cuesharp/specification.php
- http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
- http://wiki.hydrogenaud.io/index.php?title=TAK