编码转换

字符编码和字符集

妖精的绣舞 提交于 2020-01-20 10:15:22
字符编码和字符集 字符编码 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为 编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为 解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。 编码:字符(能看懂的)--字节(看不懂的) 解码:字节(看不懂的)-->字符(能看懂的) 字符编码 Character Encoding : 就是一套自然语言的字符与二进制数之间的对应规则。 编码表:生活中文字和计算机中二进制的对应规则 字符集 字符集 Charset :也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。 计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBK字符集、Unicode字符集等。 可见,当指定了 编码 ,它所对应的 字符集 自然就指定了,所以 编码 才是我们最终要关心的。 ASCII字符集 : ASCII(American Standard Code for Information Interchange,美国信息交换标准代码

python的base64编码代码实现

*爱你&永不变心* 提交于 2020-01-20 01:22:33
python的base64编码代码实现(学习记录) base64_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'] def encode_ascii(string: str) -> str: temp = '' base = '' # 把原始字符串转换为二进制,用bin转换后去掉开头的0b,首位补0补齐8位 for i in string: temp += '{:08}'.format(int(str(bin(ord(i))).replace('0b', ''))) # 6位一组截取,最后一组不足6位的后面补0,获取base_list中对应的字符 for j in range(0,

缓冲流的原理

流过昼夜 提交于 2020-01-20 00:04:19
缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。 来源: CSDN 作者: Leon_Jinhai_Sun 链接: https://blog.csdn.net/Leon_Jinhai_Sun/article/details/104045414

从语音通话和视频通话两个方面搭建专属于自己的私有化部署的视频会议通话系统

佐手、 提交于 2020-01-19 18:41:02
召开远程视频会议,可大大提高工作效率,节省与会人员的工作时间和会议费用。视频会议通话系统应用在政府、军队、教育、金融、交通、能源、医疗等行业及跨国、跨地区的企业中逐步普及。 EasyRTC视频通话系统 EasyRTC视频通话系统(以下简称EasyRTC)是一款覆盖全球的实时音视频通话与会议软件,结合了智能视频、智能语音、窄带传输、通道加密、数据加密等技术,可通过微信小程序、H5页面、APP、PC客户端等接入方式之间互通,快速从零开始搭建实时音视频通信,支持一对一、一对多等视频通话,满足语音视频社交、在线教育和培训、视频会议和远程医疗等场景;支持多终端接入方式之间互通,快速从零开始搭建实时音视频通信平台。 EasyRTC视频通话系统具有实时音视频通话,支持视频会议(单路、多路)、会议录像、会议回放、旁路直播等技术特点。(演示地址:https://demo.easyrtc.cn) 今天通过从语音通话和视频通话两个方面全面解读视频会议系统的功能架构。 一、语音通话 1、基础模型 在视频会议中,网络语音通话通常多对多的的,但就模型层面来说,我们讨论一个方向的通道就可以了。一方说话,另一方则听到声音。看似简单而迅捷,但是其背后的流程却是相当复杂的。我们将其经过的各个主要环节简化成下图所示的概念模型: 这是一个最基础的模型,由五个重要的环节构成:采集、编码、传送、解码、播放。

加密与安全

泪湿孤枕 提交于 2020-01-19 17:49:08
一, URL 编码 为什么要使用 URL 编码? 我们都知道Http协议中参数的传输是 "key=value" 这种简直对形式的,如果要传多个参数就需要用 “&” 符号对键值对进行分割。如 "?name1=value1&name2=value2" ,这样在服务端在收到这种字符串的时候,会用 “&” 分割出每一个参数,然后再用 “=” 来分割出参数值。 现在有这样一个问题,如果我的参数值中就包含=或&这种特殊字符的时候该怎么办。 比如说 “name1=value1” ,其中value1的值是 “va&lu=e1” 字符串,那么实际在传输过程中就会变成这样 “name1=va&lu=e1” 。我们的本意是就只有一个键值对,但是服务端会解析成两个键值对,这样就产生了奇异。 如何解决上述问题带来的歧义呢?解决的办法就是对参数进行URL编码? URL编码只是简单的在特殊字符的各个字节前加上%,例如,我们对上述会产生奇异的字符进行URL编码后结果: “name1=va%26lu%3D” ,这样服务端会把紧跟在“%”后的字节当成普通的字节,就是不会把它当成各个参数或键值对的分隔符。 类似于这种 实际操作 public static void main(String[] args) { //url编码 String str="测试"; String urlStr=URLEncoder.encode

Decoder和Encoder

江枫思渺然 提交于 2020-01-19 16:00:53
一、什么是Decoder和Encoder 在Netty里面,有四个核心概念,它们分别是: Channel:一个客户端与服务器通信的通道。 ChannelHandler:业务逻辑处理器, 通常情况下,业务逻辑都是存在于ChannelHandler之中。 ChannelInboundHandler:输入处理器 ChannelOutboundHandler:输出处理器 ChannelPipeline:用于存放ChannelHandler的双向链表。 ChannelContext:通信管道的上下文 它们之间的交互流程是: 事件传递给 ChannelPipeline 的第一个 ChannelHandler ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个 而我们要讲的Decoder和Encoder,就是ChannelInboundHandler和ChannelOutboundHandler,分别用于在数据流进来的时候将字节码转换为消息对象和数据流出去的时候将消息对象转换为字节码。 二、解码器Decoder 对于解码器,Netty中主要提供了抽象基类 ByteToMessageDecoder 和 MessageToMessageDecoder 1. 抽象类 ByteToMessageDecoder

GB2312、GBK与UTF-8的区别

杀马特。学长 韩版系。学妹 提交于 2020-01-19 09:21:05
标题简单的说一下,为什么要用编码? 在计算机内,储存文本信息用ASC II码,每一个字符对应着唯一的ASCII码。最初计算机是由美国发明的,他们也用的是键盘和上面的字母,所以他们的字符ASCII好解决。但是我们中国 的就不同了, 每个汉字要对应唯一的ASCII码。这样,就出来了国家制定的字符编码标准:GB2312、GBK等 。其他国家,其他语言也有他们对应的编码标准。 GB 就是国标的意思, GB2312和GBK主要用于汉字的编码,而UTF-8是全世界通用的 。意思就是说,如果你的网页主要面对使用汉语的中国人的话,使用 GB2312和GBK非常好,文字储存体积要小,有一些优点。如果你的网页要面向世界的话,你再用GB2312和GBK作为网页编码的话,有些电脑上的浏 览器没有这种编码,你的网页汉字内容就会变成无法识别的乱码。 它们通常用在网页的meta标签内,例如:,表示这个页面使用的是GB2312编码。这个信息是给浏览器看的,浏览器会优先考虑使用从网页头部提取出来的编码信息对网页进行解码。当然, 我们也可以强制浏览器使用某种编码解释网页,这样我们就看到了传说中的乱码。 GB2312、GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码。只是对于我们中国人的网站来说,用这三种编码 比较多。 标题GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:

ffmpeg与H264编码指南

喜夏-厌秋 提交于 2020-01-19 04:38:22
注:本文属于转载译文,原文地址:http://blog.csdn.net/vblittleboy/article/details/8982857。 英文地址: https://trac.ffmpeg.org/wiki/Encode/H.264 。内容有一定出入,但是可以借鉴学习。 x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。 对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定文件的大小和质量的分配。 如果你在编译和安装libx264 方面需要帮助,请查看ffmpeg和x264编译指南: http://ffmpeg.org/trac/ffmpeg/wiki/CompilationGuide crf(Constant Rate Factor) : 该方法在输出文件的大小不太重要的时候,可以使整个文件达到特定的视频质量。该编码模式在单遍编码模式下提供了最大的压缩效率,每一帧可以按照要求的视频质量去获取它需要的比特数。不好的一面是,你不能获取一个特定大小的视频文件,或者说将输出位率控制在特定的大小上。 1 选择一个CRF值 量化比例的范围为0~51,其中0为无损模式,23为缺省值,51可能是最差的

iOS - 直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit

隐身守侯 提交于 2020-01-19 01:54:02
收藏笔记 1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示 1、数据采集: 摄像机及拾音器收集视频及音频数据,此时得到的为原始数据 涉及技术或协议: 摄像机:CCD、CMOS 拾音器:声电转换装置(咪头)、音频放大电路 2、数据编码: 使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据 涉及技术或协议: 编码方式:CBR、VBR 编码格式 视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等 音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等 3、数据传输: 将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输 涉及技术或协议: 传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等 控制信令:SIP和SDP、SNMP等 4、解码数据: 使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音 涉及技术或协议: 一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等 5、播放显示: 在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音

iOS - 直播总结(理论到实践)

坚强是说给别人听的谎言 提交于 2020-01-19 01:05:59
一、直播原理及流程 1.一个完整直播app原理 直播原理 :把主播录制的视频,推送到服务器,在由服务器分发给观众观看。 直播环节 :推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞) 2.直播app实现流程 1.采集、2.滤镜处理、3.编码、4.推流、5.CDN分发、6.拉流、7.解码、8.播放、9.聊天互动 直播流程.png 3.直播app架构 直播架构.png 4.直播app技术点 二、直播基础知识介绍: 1.采集视频、音频 * 1.1 采集视频、音频编码框架 * AVFoundation :AVFoundation是用来播放和创建实时的视听媒体数据的框架,同时提供Objective-C接口来操作这些视听数据,比如编辑,旋转,重编码 * 1.2 视频、音频硬件设备 * CCD :图像传感器: 用于图像采集和处理的过程,把图像转换成电信号。 拾音器 :声音传感器: 用于声音采集和处理的过程,把声音转换成电信号。 音频采样数据 :一般都是PCM格式 视频采样数据 : 一般都是 YUV ,或 RGB 格式,采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率 2.视频处理(美颜,水印) 视频处理原理 :因为视频最终也是通过GPU,一帧一帧渲染到屏幕上的,所以我们可以利用OpenGL