代码改变世界

调试libRTMP代码来分析RTMP协议

2017-07-25 22:13 by jiayayao, 3858 阅读, 0 推荐, 收藏, 编辑
摘要:RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,常用在视频直播领域。RTMP协议的默认端口是1935。 学习一个协议最好的方法就是调试其通信过程,期间还可以使用wireshark抓包分析。本人在libRTMP的基础上 阅读全文

H.264的码率控制:CBR和VBR

2017-07-20 17:15 by jiayayao, 4310 阅读, 0 推荐, 收藏, 编辑
摘要:CBR: Constants Bits Rate, 静态比特率。 比特率在流的进行过程中基本保持恒定并且接近目标比特率,当对复杂内容编码时质量会下降。 在流式播放方案中使用CBR编码最为有效;优点是带宽恒定;缺点是画面变化较快时,视频质量无法达到要求,同时也会在简单的内容上浪费带宽; VBR: Va 阅读全文

指定Android adb的启动端口

2017-07-12 11:14 by jiayayao, 4663 阅读, 1 推荐, 收藏, 编辑
摘要:串口执行: 一般机器默认是5555为adb端口,但是今天遇到的一台机器以5037为默认端口,开发机器指定5037也连不上,有点莫名其妙,用上述方法改为5555就可以连上了。 阅读全文

H.264编码格式简单分析

2017-06-27 19:08 by jiayayao, 6209 阅读, 0 推荐, 收藏, 编辑
摘要:a56爆大奖在线娱乐记录一下H.264的编码格式。H.264官方文档:https://github.com/jiayayao/DataSheet/tree/master/encode-decode/h264。 一、H.264编码格式 H.264从层次来看分为两层:视频编码层(VCL, Video Coding La 阅读全文

FLV封装格式分析

2017-06-15 20:26 by jiayayao, 1301 阅读, 0 推荐, 收藏, 编辑
摘要:FLV官方文档:https://github.com/jiayayao/DataSheet/tree/master/media%20format/flv 一、FLV格式 FLV包括文件头(FLV header)和文件体(FLV Body)两部分,其中文件体由一系列的Tag组成。如下图所示: FLV 阅读全文

vlc源码分析(六) 调用OpenMAX硬解码H.265

2017-06-08 20:13 by jiayayao, 7719 阅读, 1 推荐, 收藏, 编辑
摘要:H.265(HEVC)编码格式能够在得到相同编码质量视频的前提下,使用相当于H.264(AVC)一半的存储容量,虽然H.265的算法复杂度比H.264高一个数量级,但是硬件水平在不断提高,因此H.265使用场合逐渐多了起来。好多硬件厂商芯片内部实现了H.265的硬解码。最近调试了vlc-androi 阅读全文

vlc源码分析(五) 流媒体的音视频同步

2017-05-22 19:26 by jiayayao, 7889 阅读, 2 推荐, 收藏, 编辑
摘要:vlc播放流媒体时实现音视频同步,简单来说就是发送方发送的RTP包带有时间戳,接收方根据此时间戳不断校正本地时钟,播放音视频时根据本地时钟进行同步播放。首先了解两个概念:stream clock和system clock。stream clock是流时钟,可以理解为RTP包中的时间戳;system 阅读全文

vlc源码分析(四) 调用libts接收TS流

2017-05-15 20:31 by jiayayao, 4859 阅读, 2 推荐, 收藏, 编辑
摘要:代码分析前,先要了解TS流基本概念:TS流之基本概念。 VLC解析TS流是通过libts库来分离的,libts库使用libdvbpsi库来解TS表。VLC使用模块加载机制来加载libts库,具体调用的文件是ts.c. 1. libts库在加载的时候,会将以下如下两个函数注册下去,当接收到PAT或者P 阅读全文

TS流基本概念

2017-05-15 20:20 by jiayayao, 29648 阅读, 2 推荐, 收藏, 编辑
摘要:在MPEG-2标准中,有两种不同类型的码流输出到信道:a56爆大奖在线娱乐是节目码流(Program Stream, PS),适用于没有误差产生的媒体存储,如DVD等存储介质;另a56爆大奖在线娱乐是传送流(Transport stream, TS),适用于有信道噪声产生的传输,目前TS流广泛应用于广播电视中,如机顶盒等。 一、基 阅读全文

vlc源码分析(三) 调用live555接收RTP数据

2017-05-07 12:41 by jiayayao, 5577 阅读, 1 推荐, 收藏, 编辑
摘要:首先了解RTSP/RTP/RTCP相关概念,尤其是了解RTP协议:RTP与RTCP协议介绍(转载)。 vlc使用模块加载机制调用live555,调用live555的文件是live555.cpp。 一、几个重要的类 以下向左箭头(“<-”)为继承关系。 1. RTPInterface RTPInter 阅读全文