vlc相关学习资料汇总及零散技术总结

简介: 一、参考资料       官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS    编译的各种问题:http://wiki.

一、参考资料  

    官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS


    编译的各种问题:http://wiki.videolan.org/Win32CompileMSYSTroubleShooting

    已经编译好的各种版本:http://nightlies.videolan.org/build/

    VS下编译项目:https://github.com/sunqueen?tab=repositories

    VLC文档:http://www.videolan.org/developers/vlc/doc/doxygen/html/index.html


     VLC开发者中心:https://wiki.videolan.org/Developers_Corner


    汇编指令拷贝

    vlc-2.2.1.32-2013\modules\video_chroma


二、零散知识点备忘

/* Maximum delay between 2 displayed pictures.
 * XXX it is needed for now but should be removed in the long term.
 */
#define VOUT_REDISPLAY_DELAY (INT64_C(80000))  //两帧延时超过80ms就扔掉;

/**
 * Late pictures having a delay higher than this value are thrashed.
 */
#define VOUT_DISPLAY_LATE_THRESHOLD (INT64_C(20000)) //当前系统时间-图像时间>20ms,说明改图像已经延时过多,即抛弃

// 1、解码模块在解码前先判断是否有帧延时了,如果有,判断延时是否超过5s,如果超过直接释放;判断是否标记为要加速,且延时帧已超过4帧,大于4小于12立即解码,否则抛弃;
// 2、费解:不知为什么vlc需要调用两次avcodec_decode_video2,注释说重新解析,防止丢弃I帧?
// 3、貌似:解码出的帧送渲染前判断缓存的帧的数量是否已经超过1s,如果超过就标记为满。
#define DECODER_MAX_BUFFERING_VIDEO_DURATION (1*CLOCK_FREQ)


/* Pictures which are DECODER_BOGUS_VIDEO_DELAY or more in advance probably have
 * a bogus PTS and won't be displayed */
#define DECODER_BOGUS_VIDEO_DELAY                ((mtime_t)(DEFAULT_PTS_DELAY * 30))

vlc_object_t *debug = NULL;
msg_Output(debug,"--------bank.c-----module_InitBank()---------------");


// avcodec_decode_video2函数第一参数可以设置出帧策略,丢B帧,丢I帧,丢P帧等; vlc为什么要调用两次这个函数,Reparse it to not drop the I frame

// PCR Abbreviation for Program Clock Reference. 程序参考时钟; MPEG-2标准音视频均为27 MHz
// PTS(Presentation Time Stamp)显示时间标签
// DTS解码时间标签(Decoding Time Stamp)

//live555.cpp中初始化i_pts的值;并非使用码流的timestamp值;
int64_t i_pts = (int64_t)pts.tv_sec * INT64_C(1000000) + (int64_t)pts.tv_usec;

/*FIXME: for h264 you should check that packetization-mode=1 in sdp-file */
p_block->i_dts = ( tk->fmt.i_codec == VLC_CODEC_MPGV ) ? VLC_TS_INVALID : (VLC_TS_0 + i_pts);

目录
相关文章
|
5月前
|
编解码 移动开发 安全
FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生
自互联网普及以来,流媒体技术特别是视频直播技术不断进步,出现了多种传输协议。早期的MMS由微软主导,但随WMV格式衰落而减少使用。RTSP由网景和RealNetworks联合提出,支持多种格式,但在某些现代应用中不再受支持。RTMP由Adobe开发,曾广泛用于网络直播,但因HTML5不支持Flash而受影响。HLS由苹果开发,基于HTTP,适用于点播。SRT和RIST均为较新协议,强调安全与可靠性,尤其SRT在电视直播中应用增多。尽管RTMP仍占一定市场,但SRT等新协议正逐渐兴起。
149 8
FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生
|
内存技术 编解码 计算机视觉
带你读《多媒体技术教程(原书第2版)》之二:走进多媒体
本书内容取自课堂上讲述的实际素材,适合作为计算机科学和工程专业学生的教材。从多媒体数据表现、多媒体数据压缩、多媒体通信和联网、多媒体信息分享和检索四个层面对多媒体涉及的基本概念、基本原理和基本技术进行了详细介绍。作者用一种实用的方式来讲述基本概念,使学生能够运用享有的技术来解决现实多媒体世界中的问题。
|
编解码 计算机视觉 Windows
流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点
FFmpeg 3.3“Hilbert”,一个新的主要版本的一些亮点: 苹果Pixlet解码器 NewTek SpeedHQ解码器 QDMC音频解码器 PSD(Photoshop Document)解码器 FM屏幕捕获解码器 ScreenPressor解码器 XPM解码器 DNxHR解码器修复了HQX和高分辨率视频 ClearVideo解码器(部分) 16.
2101 0
|
存储 视频直播
如何理解直播APP源码开发中的音视频同步
视频 直播APP源码的视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。
|
IDE Java 程序员
10w+播放!自动化办公,用到了哪些实用的Python技术?
10w+播放!自动化办公,用到了哪些实用的Python技术?
|
ARouter 前端开发 Android开发
Android开发之深度项目设计探索(一)
如何快速高效构建一款优雅的Android-app架构是大家常聊的话题,本系列文章旨在分析研究探讨基于巨人的肩膀上搭建一款app项目架构。不仅是为了加深对知识点的学习以使用,而且也为了后面的准备。
1904 0
|
Android开发 安全 存储
Android开发之深度项目设计探索(三)
本文是《Android开发之深度项目设计探索》系列的第三篇,主要介绍的是 基于最新RxPermissions 类库的使用及源码分析,本系列历史文章:《Android开发之深度项目设计探索(一)》《Android开发之深度项目设计探索(二)》 Permission,这个单词翻译过来的意思有:允许、许可、权限。
1354 0
|
Android开发 Kotlin API
Android开发之深度项目设计探索(二)
在《Android开发之深度项目设计探索(一)》 这篇文章中,主要描述了深度项目架构设计会涉及到的一些知识点,那么这篇文章主要介绍的是 RxLifecycle 使用及源码分析。
1255 0

热门文章

最新文章

相关实验场景

更多