代码改变世界

随笔分类 -  Vlc源码分析

vlc源码分析(七) 调试HLS协议

2017-09-02 23:35 by jiayayao, 2891 阅读, 收藏, 编辑
摘要: HTTP Live Streaming(HLS)是苹果公司提出来的流媒体传输协议。与RTP协议不同的是,HLS可以穿透某些允许HTTP协议通过的防火墙。 一、HLS播放模式 (1) 点播模式(Video on demand, VOD) 点播模式是指当前时间点可以获取到所有index文件和ts文件,二 阅读全文

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

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

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

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

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

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

TS流基本概念

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

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

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

vlc-android native调试配置

2017-04-26 20:12 by jiayayao, 2226 阅读, 收藏, 编辑
摘要: 1, 按照官网给出的链接,git clone代码,配置好android sdk,ndk...后运行compile.sh; 2, 出现一个protobuf相关的问题(貌似要求protobuf3),自己去网站下载后安装,即可编译通过; 3, 还是找个能上外网的,或者能FQ的帐号吧,编译过程中会下载好多与 阅读全文

vlc源码分析(二) 播放流程

2017-04-23 13:57 by jiayayao, 10514 阅读, 收藏, 编辑
摘要: 当点击播放文件或者输入要播放的文件后,vlc会执行一系列的流程。 首先需要了解视频以及流媒体处理及播放的流程,由链接中的描述,视频以及流媒体处理时,首先要解协议(http,rtmp,rtsp等),然后是解封装(mp4,mkv,avi等),获得音频码流和视频码流,分别解码后,再根据时间戳进行同步。使用 阅读全文

vlc源码分析(一) RTSP会话流程

2017-04-19 22:14 by jiayayao, 7205 阅读, 收藏, 编辑
摘要: 可以先了解一下RTSP/RTP/RTCP的概念与区别:RTP与RTCP协议介绍(转载)。 在调试vlc-android时,熟悉了RTSP的会话流程。C表示RTSP客户端,S表示RTSP服务端: 第一步:查询服务器端可用方法 1.C->S:OPTIONrequest //询问S有哪些方法可用 1.S- 阅读全文