假设主页面index.html,其中frameset结构如下所示: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Home Page</title> </head> <frameset rows="12%,*,7%">     &…
Say I have a data.frame: df <- data.frame(A=c(10,20,30),B=c(11,22,33), C=c(111,222,333))  A  B  C1 10 11 1112 20 22 2223 30 33 333 If I select two (or more) columns I get a data.frame: x <- df[,1:2]   A  B 1 10 11 2 20 22 3 30 33 This is what I want…
基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象.I帧可以看成是一个图像经过压缩后的产物. P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧: B frame: 双向预测内插编码帧 又称bi-directional interpolate…
一.视频传输原理 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉.单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的.为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因此有了H.264视频压缩标准. 视频里边的原始图像数据会采用 H.264编码格式进行压缩,音频采样数据会采用 AAC 编码格式进行压缩.视频内容经过编码压缩后,确实有利于存储和传输.不过当要观看播放时…
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp). 顾名思义,前者是解码的时间,后者是显示的时间.要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念. FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧. 对于视频来说,AVFrame就是视频的一帧图像.这帧图像什么时候显示给用户,就取决于它的PTS.DTS是AVPa…
解码过程中,dts由媒体流读入的包推动(解码包中的dts标记),dts在前进.pts是在dts前进到某处(截点)而进行动作的标记. 物理时间自然流逝,dts可以被控制同步与物理时间同一脚步节奏,也可以不. 一个节目的各条流(一般就一视频一音频,再加一字幕)共同参照dts. 流的各帧正确在物理世界呈现,pts必须参照物理时间与物理时间同步. 上图是mp4文件的解码,由于P,B要参考I,B需要正向参考P,所以某一帧被解码呈现的时候,已经被安排读入前前后后的几帧(这里的帧不专指主帧),所以pts会编排…
(1)Ffmpeg中的DTS 和 PTS H264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp). 顾名思义,前者是解码的时间,后者是显示的时间.要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念. FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧. 对于视频来说,AVFrame就是视频的一帧图像.这帧图像什么时候显示给用户…
Simple Live System Using SRS https://www.cnblogs.com/dong1/p/5100792.html 1.上面是推送文件,改成推送缓存 封装了三个函数 int srs_librtmp_connect(srs_rtmp_t rtmp);int srs_librtmp_push(srs_rtmp_t rtmp, char* h264_raw, off_t file_size, double fps);int srs_librtmp_close(srs_r…
在实际开发中很多时候我们都为了控件frame的操作焦头烂额. 例如:我们只想要获取view的width. 我们可以这么操作:view.frame.size.width 有时我们想要改变view的width然而我们不能直接改变->需要三部曲. 让人抓狂,为了解决这里烦恼我们可以通过改变类别来达到理想的效果. 下面是类别的.h文件: // // UIView+CXExtension.h //// // Created by ma c on 16/3/25. // Copyright © 2016年…
CGRect senderFrame = cell.senderLabel.frame;    CGRect creatAtFrame = cell.creatAtLabel.frame;    CGSize senderSize = [cell.senderLabel.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Heiti SC" size:15.0]}];    senderFrame.s…