
VLC
文章平均质量分 76
vlc源码分析
yagerfgcs
码代码十x载,一线带队十余载,现专注于音视频通信媒体处理方向
展开
-
移动端的播放器设计经验:与VLC的考量点完全不同
移动播放器面临的情况:1、渲染时按照时间戳渲染2、播放端来的流是抖动不平滑的,可快可慢,可能延时只来一帧,后紧跟N帧。VLC针对抖动的处理方式1、收流时在收到第一帧TS1的时候取本地绝对时间,作为绝对时戳absPts1,第二帧TS2到来时取本地绝对时戳absPts2。差值计算absDvalue = absPts2 - absPts1 TsDvalue = Ts2-Ts1 ,如原创 2016-08-04 17:15:32 · 756 阅读 · 0 评论 -
Ubuntu14.04环境编译vlc源码for安卓Android系统
一、准备虚拟机1、所需软件deamon:DTLite4491-0356.1394761051.exeVMware-workstation-full-12.1.0-3272444_for_x64.exe 序列号5A02H-AU243-TZJ49-GTC7K-3C61Nubuntu-14.04.1-desktop-amd64.iso2、逐个安装,遇到报虚拟机无法跑长类型的ubunt原创 2016-04-14 20:15:42 · 1630 阅读 · 0 评论 -
虚拟机安装OSX10.11.4+编译libVLC和VLC源码
一、安装OSX虚拟机二、安装OSX苹果系统&优化性能三、准备编译环境四、编译过程中遇到的问题五、libVLC编译脚本解析原创 2016-04-21 19:42:30 · 3195 阅读 · 0 评论 -
VLC已知问题及解决办法,欢迎拍砖
研究VLC有一段时间了,发现VLC中有不少问题,做了部分修改,欢迎各位拍砖。1、VS编译的版本不能播放tcp的流,而官网下载的release版本可以播放。原因:1、VS编译的版本中使用了live555的源码,其源码的版本号较低,而release版本中的 live555版本较高;2、我们的服务器在rtsp流程中做了部分改变,在收到play请求后即发送rtp数据和play响应,为追求速原创 2016-04-11 20:19:10 · 6553 阅读 · 1 评论 -
vlc相关学习资料汇总及零散技术总结
官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS 编译的各种问题:http://wiki.videolan.org/Win32CompileMSYSTroubleShooting 已经编译好的各种版本:http://nightlies.videolan.org/build/ VS下编译项目:https://原创 2016-05-27 13:30:18 · 818 阅读 · 0 评论 -
vlc使用ffmepg get_buffer2流程
一、综述:在设计播放器1.0时,曾使用vtune和VS自带的性能分析工具测试,对于播放器这样的软件其核心流程分为收流&拼帧、解码、渲染三大块,其中收流&拼帧在大并发模式下不是性能瓶颈。渲染模块使用D3D渲染,渲染操作本身仅占用3%左右的CPU时间。而解码和拷贝操作是非常耗费CPU的。对于ffmpeg解码优化,本文不做赘述,后续详细展开。此处仅讨论内存拷贝优化方案二、内存拷贝优化方案原创 2016-05-27 11:37:42 · 1732 阅读 · 0 评论 -
VLC音频重采样Audio resample核心流程梳理
原创 2016-05-27 13:26:50 · 1342 阅读 · 0 评论 -
Windows平台使用VS2013编译VLC源码
一、前言研究VLC源码已有一段时间,一直未形成经验文档,借csdn博客,记录学习的过程及总结的经验,抛砖引玉,期望能给同仁一点帮助。二、准备工作VS下编译的VLC源码目录:https://github.com/sunqueen/vlc-2.2.1.32-2013这个是sunqueen大神参考VLC源码经过修改后的适合VS编译器的源码,我于2016年3月中旬将该源码与VLC官网源原创 2016-04-11 17:29:03 · 6509 阅读 · 10 评论 -
VLC和WebRTC等开源库关于硬解软解的策略
一、移动端OS角度硬解能力支持情况Android4.1.2以前: 不支持4.1.2-5.0 Java侧MediaCodec5.0以上 Java侧MediaCodec,C侧nativeMediaCodecIOS8.0以前 不支持硬编硬解,仅软编软解8.0及以后 支持硬编硬解VideoToolboxDecoder二、开源库角度原创 2016-05-23 15:23:19 · 5583 阅读 · 0 评论 -
VLC调试:增加messages.c日志函数,在无vlc_object_t下打印日志
在调测VLC源码时经常需要借助日志打印其中核心变量、临时变量的值,方便学习和定位问题,但是遇到像src\input\clock.c中的函数,因缺少vlc_object_t *obj对象,无法打印日志。一般可以通过增加函数参数,从调用方传入,本文提供更简单的方法,可以将以下源码加入到工程里即可使用。本文基于vlc-2.2.1.32-2013工程修改,源码目录https://github.com/su原创 2016-04-13 14:01:03 · 1550 阅读 · 0 评论 -
VLC播放器调试经验总结
一、前言在使用VS学习VLC源码时,可以打断点分析变量数据,跟踪代码流程,方便我们理解源码。但是在定位音视频卡顿、延时等疑难问题时,这一招就不管用了,因为打上断点就会导致实时计算的pts值不准确,影响复现真实场景。所以音视频卡顿、延时类问题,更需要我们抓包、打印每一帧数据的Timestamp、pts及clock转换中的关键数据。这里引入一个简单的方法:增加收流、解码、渲染一条线上的时间戳,原创 2016-04-12 11:09:06 · 8276 阅读 · 0 评论 -
【VLC核心一】播放流程梳理->live555收流+ffmpeg:AVCodec解码
VLC播放音视频的核心流程梳理,从live555收流到ffmpeg解码的整套流程涉及到vlc核心类收流相关:MultiFramedRTPSource、RTPSource、FramedSource、live555、es_out包含live555收rtp包,拼帧,timestamp映射转换pts等解码相关:decoder、video、clock、video_output、araw、mtime、dec、input、output、filters、directx等。包含ffmpeg解码,应对音视频卡顿、延时原创 2016-04-09 16:57:50 · 4121 阅读 · 1 评论 -
【VLC核心二】clock管理流程
一、前言clock管理是vlc播放音视频的重要部分,从live555收流到decoder解码到render渲染,整个播放过程中均需依赖clock机制。二、涉及的类文件src\input\input.cmodules\access\live555.cppsrc\input\es_out.csrc\input\decoder.csrc\input\clock.c三、cl原创 2016-04-11 18:59:20 · 1197 阅读 · 0 评论