【转】MP3文件原理及结构解析】的更多相关文章

1.引言文件压缩技术的日新月异使得MP3成为时下最烫手的音乐格式,优质的音乐随着0与1的排列迅速散布 到世界各地,撼动人心.何谓MP3?MP3的全称是MPEG Audio Layer 3,它是一种高效的计算机音频编码方案,它以较大的压缩比将音频文件转换成较小的扩展名为.MP3的文件,基本保持原文件的音质.MP3是 ISO/MPEG标准的一部分,ISO/MPEG标准描述了使用高性能感知编码方案的音频压缩,此标准一直在不断更新以满足“质高量小”的追求,现已形成 MPEG Layer 1.Layer…
以msm8226为例,讲解android源码编译生成boot.img的结构.boot.img包括boot.img header.kernel以及ramdisk文件系统.下面是对boot.img的结构进行解读. boot.img 文件头信息的具体结构可以在system/core/mkbootimg/bootimg.h中看到: typedef struct boot_img_hdr boot_img_hdr;#define BOOT_MAGIC "ANDROID!"#define BOOT…
有一个朋友喜欢听MP3,为了获取MP3,写了一个程序,专门从一家音乐网站上搜索下载mp3,一下子下载了有上千首.这时朋友又犯愁了,这些MP3的歌曲名字都是使用1,2,3,4,..等数字命名,挑选起来十分不方便.虽然MP3播放器能够读出MP3文件信息的歌曲名,但歌曲文件本身的名字却不利于自己管理.于是就想写一个小程序实现MP3自动更名.查了一些资料,研究了一下MP3的文件结构. 研究MP3的结构,就不能不研究ID3标签.ID3标签是MP3音乐档案中的歌曲附加讯息,它能够在MP3中附加曲子的演出者.…
不说那么多,网上有很多关于MP3文件说明的. 该C#代码是将C\C++转化过来的,可能存在问题. 如有需要的朋友可以参考. 项目中的文件路径大家自己修改. 下载地址…
作者:郑童宇 GitHub:https://github.com/CrazyZty 1.前言 做了三年左右的Android开发,一直没写过博客,最近正好打算换工作,算是闲一些,就将以前开发所遇到的一些有趣的问题及解决方法写出来,以供他人借鉴. MP3作为音频领域应用最广的压缩方式之一想必大家都有所了解,本篇博文探究的不是MP3著名的压缩方式,而是如何为MP3文件写入ID3Tags.写下本博文的原因是类似的博文太少,以前做这方面的时候,google出来的大多是使用某一软件或库来进行处理,少许涉及代…
QQ的文件发送是怎样的过程呢?通常,发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机,当接收计算机同意接收的确认消息反馈到消息服务器后,消息服务器将据此设置好文件传输对话.随即,发送计算机与接收计算机就会在确定好的端口范围内,建立起TCP或UDP连接开始文件的检索与传输. 在默认状态下,QQ优先采用了UDP(User Data Protocol,用户数据报协议)协议传送数据,而对可靠性要求高的数据通讯系统往往使用TCP协议传输数据.与TCP协议不同,UDP协议并不提供数据传送的验…
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来源SGML SGML(SGM)标准通用标记语言 是一种定义电子文档结构和描述其内容的国际标准语言,具有极好的扩展性 是所有电子文档标记语言的起源,早在万维网发明之前“通用标言”就已存在 是1986年国际标准化组织出版发布的一个信息管理方面的国际标准(ISO 8879:1986 信息处理) 简单的理解…
前言 现在很多人都在从事区块链方面的研究,作者也一直在基于Hyperledger Fabric做一些开发工作.为了方便后来人更快的入门,本着“开源”的精神,在本文中向大家讲解一下Hyperledger Fabric账本的结构和原理.作者解析的Fabric的工程版本为v1.0.1,在新版本中可能会有些许偏差. ps:作者默认各位读者已经具备了一定的区块链基本知识,不再做一些基础知识的阐述. Hyperledger Fabric账本的结构 在作者最初了解bitcoin的时候有一个疑问:矿工如何校验一…
第二次更新,后面的代码有问题,有些专辑图片读取不到.发现是PNG图片的问题.在读取的过程中调试发现,图片帧前10个字节包含了图片的格式,在有些歌曲写着JPEG的格式,数据却是PNG的.先说下思路. jpeg图片的开头和结尾是连续的两个字节FF,D8和FF,D9(16进制),十进制是255,216和255,217. png图片的开头为 十进制数 137 80 78 71 13 10 26 10 十六进制数 89 50 4E 47 0D 0A 1A 0A 结束是00 00 00 00 49 45 4…
Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内容为我们人类可以直接读到的数据,例如数字.字母等等.②二进制文件(binary): 你的Linux中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的.③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data f…
摘要:徒手制作一张超大的类文件解析图,方便通过浏览这个图能马上回忆起class文件的结构以及内部的指令. 本文分享自华为云社区<[读书会第十二期]这可能是全网"最大"."最细"."最深"的一份java-class类文件原理图解了!>,作者: breakDawn. 借着华为云读书会的活动,重读了一遍<深入理解java虚拟机>.在阅读中, 用processorOn做了一副超大的类文件解析图,方便自己通过浏览这个图能马上回忆起c…
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string file = @"E:\滴答.mp3";             ShellClass sh = new ShellClass();             Folder dir = sh.NameSpace(Path.GetDirectoryName(file));             F…
iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1…
SQL> select rowid,deptno from dept; ROWID                  DEPTNO ------------------ ---------- AAAMfNAAEAAAAAQAAA         10 AAAMfNAAEAAAAAQAAB         20 AAAMfNAAEAAAAAQAAC         30 AAAMfNAAEAAAAAQAAD         40 ROWID结构解析 对象号 文件号 块号 行号 AAAMfN AAE…
根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表: 位率相等(Constant BitRate) CBR  Mp3文件 位率不等(Variable BitRate) Xing  Mp3文件 VBRI  Mp3文件 一.如何判断一个Mp3文件的类型,CBR文件,VBRI文件还是Xing文件 以功能流程图的形式: 二.文件播放时长的计算问题. 区分了文件类型就可以计算Mp3文件的播放时长了. 1.CBR文件的时长计算(duration) 对于计算CB…
EXT Demo 结构解析 创建项目 sencha -sdk F:\lib\ext-6.0.0 generate app demo F:\demo 预览项目 执行命令 sencha app build sencha app watch 打开该url http://localhost:1841/ 项目运行预览 Ext文件结构 Ext开发 详细 结构解析(以security项目的结构为例子) app文件夹结构 classic文件夹结构 打包项目 如果只是进行桌面版的开发要把移动版的打包进行去除 修改…
ionic项目结构解析 原始结构 创建一个IonicDemo项目 'ionic start IonicDemo sidemenu' 这种结构多模块开发比较麻烦,因为view跟controller分开路径了 添加手机平台后,会有一个platforms目录,www下的文件会拷贝到该目录下面 结构改善 创建一个IonicDemo项目 'ionic start PersonalManager sidemenu' 将项目文件放在app目录下集中管理 模块化,将同一个模块的service,controlle…
参见:http://jingyan.baidu.com/article/03b2f78c4d5eae5ea237aee7.html 一.MP3文件的元数据 一个规则的MP3文件大致含有3个部分: TAG_V2(ID3V2) Frame TAG_V1(ID3V1) 其中, TAG_V1的长度是固定的,128byte.期中包含MP3文件的基本信息. TAG_V2扩展了TAG_V1,TAG_V2的长度不是固定的,包含了众多关于MP3文件信息 TAG_V1中包含的信息TAG_V1部分是MP3文件的最后1…
请持续关注我的个人博客:https://zcheng.ren 找工作那会儿,看了黄建宏老师的<Redis设计与实现>,对redis的部分实现有了一个简明的认识.在面试过程中,redis确实成为了面试官考核我的一个亮点,恰好以后的工作又与redis有着千丝万缕的联系,于是就想趁着毕业前的这段时间把redis的源代码研究一下,为以后的工作打个良好的基础. Redis简介 redis全称REmote DIctionary Server,是一个由Salvatore Sanfilippo写的高性能key…
最近直在研究Net Micro Framework字体文件(tinyfnt)由于tinyfnt文件头部有段描述数据所以很想 定义个结构体像VC样直接从文件中读出来省得用流个个解析很是麻烦 没有想到在中竟没有直接指令想必设 计者认为提供了流和序列化技术切问题都可以迎刃而解了 在中结构体是个比较复杂东西在此的上有很多需要设置参数否则用起来就很容易出错下面是msdn上段描述 看看也许有助于理解C#语言中结构体 通过使用属性可以自定义结构在内存中布局方式例如可以使用 StructLayout(Layou…
一.Dubbo 配置方式 Dubbo 支持多种配置方式: XML 配置:基于 Spring 的 Schema 和 XML 扩展机制实现 属性配置:加载 classpath 根目录下的 dubbo.properties API 配置:通过硬编码方式配置(不推荐使用) 注解配置:通过注解方式配置(Dubbo-2.5.7及以上版本支持,不推荐使用) 对于 属性配置 方式,可以通过环境变量.-D 启动参数来指定 dubbo.properties 文件,加载文件顺序为: -D 启动参数 环境变量 clas…
一 简介 Shuffle,简而言之,就是对数据进行重新分区,其中会涉及大量的网络io和磁盘io,为什么需要shuffle,以词频统计reduceByKey过程为例, serverA:partition1: (hello, 1), (word, 1)serverB:partition2: (hello, 2) shuffle之后: serverA:partition1: (hello, 1), (hello, 2)serverB:partition2: (word, 1) 最后才能得到结果: (h…
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string file = @"E:\滴答.mp3";             ShellClass sh = new ShellClass();             Folder dir = sh.NameSpace(Path.GetDirectoryName(file));             F…
github新增仓库 "dubbo-read"(点此查看),集合所有<Dubbo原理和源码解析>系列文章,后续将继续补充该系列,同时将针对Dubbo所做的功能扩展也进行分享.不定期更新,欢迎Follow. 1 框架设计 在官方<Dubbo 开发指南>框架设计部分提到,Dubbo 服务框架的基本设计原则是: 采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息: 采用 Microkernel + Plugin 模式,Microkerne…
操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost influxdata]# pwd /root/dev/golib/src/github.com/influxdata [root@localhost influxdata]# tree -d -L . ├── influxdb ├── influxql ├── usage-client ├── ya…
下面利用一个python的实例程序,来学习python.这个程序的目的就是分析出所有MP3文件的Tag信息并输出. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67…
认识固态:SSD硬盘内外结构解析 来自: 中关村在线 收藏 分享 邀请 固态硬盘(Solid State Drive),简称固态盘(SSD),是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片.DRAM芯片)以及缓存单元组成.区别于机械硬盘由磁盘.磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成.   根据固态硬盘的定义,我们可以知道固态硬盘的内部结构,其实就是由三大块主控芯片.闪存颗粒.缓存单元构成.接下来,我们逐一来看.     固态硬盘大…
Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的检测方式以及如何绕过相应检测方式进行详细的分析,并提供针了对文件上传攻击的安全防护方法. 文件上传攻击是指攻击者利用WEB应用对上传文件过滤不严,导致可以上传应用程序定义类型范围之外的文件到Web服务器.比如可以上传一个网页木马,如果存放上传文件的目录刚好有执行脚本的权限,那么攻击者就可以直接得到一…
原理,结构,基本命令,item,spider,selector简述 原理 (1)结构 (2)运行流程 实操 (1) scrapy命令: 注意先把python安装目录的scripts文件夹添加到环境变量 查看帮助 scrapy scrapy <command> -h 创建项目 scrapy startproject 项目名 创建爬虫 scrapy genspider [-t template] <name> <domain> 运行爬虫 运行一个爬虫的基本命令: scrap…
看了黄建宏老师的<Redis设计与实现>,对redis的部分实现有了一个简明的认识: 之前面试的时候被问到了这部分的内容,没有关注,好在还有时间,就把Redis的源码看了一遍. Redis源码的获取 Redis是完全开源的,其源代码可以在直接在GitHub上获取:https://github.com/antirez/redis(目前的版本是4.4.0).此时,进入解压后的redis目录下的src文件夹,redis的所有源代码都存放在此. 源代码结构解析 从redis源码解析看到的redis源码…