概述 目的 本文档主要目的是对所有数据库对象(包括库、表、字段、索引、主键、外键、约束、表分区、触发器、存储过程等)的使用场景及使用规范,进行相关的约定,供日后应用开发、数据库设计、数据库维护提供规范性依据。 读者对象 参考文档 无。 术语定义 | 术语 | 解释 | | - | - | | 字符集 | 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:UTF-8字符集,UTF-8-MB4字符集,ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。 | | 存储引擎 | 用各种不同的技术将数据存储在文件(或者内存)中的机制。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。 | | 数据库特性 | 跟数据自身相关,但区别于其他类型数据库的功能或者特征。 | | 范式 | 范式,特指数据库设计范式,是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足.... 有更新! MySQL数据库设计规范2021 mysql
目录 1. 规范背景与目的 2. 设计规范 2.1 数据库设计 2.1.1 库名 2.1.2 表结构 2.1.3 列数据类型优化 2.1.4 索引设计 2.1.5 分库分表、分区表 2.1.6 字符集 2.1.7 程序DAO层设计建议 2.1.8 一个规范的建表语句示例 2.2 SQL编写 2.2.1 DML语句 2.2.2 多表连接 2.2.3 事务 2.2.4 排序和分组 2.2.5 线上禁止使用的SQL语句 1. 规范背景与目的 MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2. 设计规范 2.1 数据库设计 以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。 2.1.1 库名 【.... MySQL数据库设计规范 mysql
RAW DVR DVR操作是Update的一个子集。 | Key | DESC | | - | - | | feature | 开启Vhost的某个流的DVR | | url | /api/v1/raw?rpc=update&scope=dvr&value=ossrs.net¶m=enable&data=live/livestream | | curl | curl 'http://127.0.0.1:1985/api/v1/raw?rpc=update&scope=dvr&value=ossrs.net¶m=enable&data=live/livestream' | | config | allow_update on; | | params | scope=dvr&value=ossrs.net¶m=enable&data=live/livestream,对Vhost的Stream开启DVR | | require | 必须Vhost的DVR是开启状态。 | | Key.... srs dvr配置 srs
介绍srt在live模式下如何构造推/拉流地址。 了解更多的srt,请访问srt wiki。 rtmp常规地址格式 rtmp地址格式简介 常规rtmp格式(无vhost) rtmp://hostip:port/appname/streamname 例子: rtmp://10.111.1.100:1935/live/livestream 上面例子中appname="live", streamname="livestream" 复杂rtmp格式(有vhost) rtmp://hostip:port/vhost/appname/streamname 例子: rtmp://10.111.1.100:1935/srs.com.cn/live/livestream 上面例子中vhost="srs.com.cn", appname="live", streamname="livestream" rtmp如何确认对rtmp url是推流还是拉流: publish rtmp协议中publish消息表示是对该url进行推流 play rtmp协议中publish消息表示是对该url进行.... SRT直播地址格式简介 srs
视频支持格式 当前支持: H264 HEVC 支持HEVC特殊说明 srt协议传输媒体是mpegts。mpegts对hevc编码格式是支持封装,标准类型值为(streamtype)0x24,所以srt传输hevc编码的视频格式是天然支持的。 支持hevc srt推流 ffmpeg -re -i source.mp4 -c:v libx265 -c:a copy -f mpegts 'srt://127.0.0.1:10080?streamid=livestream' 支持hevc srt拉流 ffplay 'srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=request' 但是因为rtmp协议本身对hevc编码格式的封装没有定义,所以当前是以国内众多cdn定义的类型值为准。 h264 CodecID(协议定义): 7 hevc CodecID(自定义): 12 音频支持格式 当前支持编码格式: AAC 支持采样率44100, 22050, 11025, 5512. SRT媒体编码支持格式 srs
SRT有一些重要的参数配置,在SRT的流收发中非常重要。SRS支持对SRT重要参数的配置。 了解更多的srt,请访问srt wiki。 如何配置SRT参数 在srs的配置中,srt_server中有独立的配置,如下: srt_server { enabled on; listen 10080; maxbw 1000000000; connect_timeout 4000; peerlatency 300; recvlatency 300; mix_correct on; } srt的配置配置在srt_server的模板下。 下面简介一下参数的配置,和其具体的含义。 latency 单位:ms(毫秒),默认值120ms。 这个latency配置同时配置了recvlatency和peerlatency成同一个值。 如果recvlatency配置,将使用recvlatency的配置; 如果peerlatency配置,将使用peerlatency的配置; recvlatency 单位:ms(毫秒),默认值120ms。 这是接收方缓存时间长度,其包括报文从发送方出发,通过网络,接收方接收,.... SRT参数配置 srs
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。 简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面) P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据) B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。 从上面的解释看,我们知道I和P的解码算法比较简单,资源占用也比较少,I只要自己完成就行了,P呢,也只需要解码器把前一个画面缓存一下,遇到P时就使用之前缓存的画面就好了,如果视频流只有I和P,解码器可以不管后面的数据,边读边解码,线性.... 什么是I帧,P帧,B帧 cv