File System
一、引言 在长达数十年的时间里,C++ 标准库一直缺失对操作系统底层文件系统进行直接操作的能力。C++ 的文件流(std::fstream)只能处理文件内容的读写,而对于“创建一个目录”、“获取文件大小”、“遍历文件夹”这些基础需求,开发者却束手无策。 C++17 正式将基于 Boost.Filesystem 的 std::filesystem 纳入标准库,彻底终结...
一、引言 在长达数十年的时间里,C++ 标准库一直缺失对操作系统底层文件系统进行直接操作的能力。C++ 的文件流(std::fstream)只能处理文件内容的读写,而对于“创建一个目录”、“获取文件大小”、“遍历文件夹”这些基础需求,开发者却束手无策。 C++17 正式将基于 Boost.Filesystem 的 std::filesystem 纳入标准库,彻底终结...
音视频编解码常用知识点 视频播放器原理 视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。 解协议的作用,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如H...
音视频同步算法 本文是对音视频同步算法的总结,以阅读ffplay.c源码为基础,结合各位博主的分析, 逐渐深入理解同步算法原理, 并根据自身理解, 编写一套简易的视频播放器,用于验证音视频同步算法。 ffplay简介 ffplay是FFmpeg提供的开源播放器,基于FFmpeg和SDL进行视频播放, 是研究视频播放器,音视频同步算法的很好的示例。ffplay源码涉及到很多音视频的基本概...
音视频同步原理及实现 本文主要描述音视频同步原理,及常见的音视频同步方案,并以代码示例,展示如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放。内容如下: 1.音视频同步简单介绍 2.DTS和PTS简介 2.1I/P/B帧 2.2时间戳DTS、PTS 3.常用同步策略 4.音视频同步简单示例代码 1...
视频码流分析工具 Elecard: www.elecard.com/en/index.html CodecVisa: www.codecian.com Intel Video Pro Analyzer 2014: software.intel.com 该工具是专门针对最新的H.265和VP9的 原文作者: 雷霄骅
视音频编解码技术零基础学习方法 1. 生活中的视音频技术 平时打开电脑中自己存电影的目录的话,一般都会如下图所示 因为下载的来源不同,这些电影文件有不同的格式,用不同的后缀表示:avi,rmvb,mp4,flv,mkv等等(当然也使用不同的图标)。在这里需要注意的是,这些格式代表的是封装格式。何为封装格式?就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难能看出...
视音频数据处理:UDP-RTP协议解析 本文介绍网络协议数据的处理程序。网络协议数据在视频播放器中的位置如下所示。 本文中的程序是一个UDP/RTP协议流媒体数据解析器。该程序可以分析UDP协议中的RTP 包头中的内容,以及RTP负载中MPEG-TS封装格式的信息。通过修改该程序可以实现不同的UDP/RTP协议数据处理功能。 原理 MPEG-TS封装格式数据打包为RTP/UDP协...
视音频数据处理:RGB、YUV像素数据处理 本文记录RGB/YUV视频像素数据的处理方法。视频像素数据在视频播放器的解码流程中的位置如下图所示。 本文分别介绍如下几个RGB/YUV视频像素数据处理函数: 分离YUV420P像素数据中的Y、U、V分量 分离YUV444P像素数据中的Y、U、V分量 将YUV420P像素数据去掉颜色(变成灰度图) 将YUV420P像素数据的亮度减半...
视音频数据处理:PCM音频采样数据处理 本文记录PCM音频采样数据的处理方法。音频采样数据在视频播放器的解码流程中的位置如下图所示。 本文分别介绍如下几个PCM音频采样数据处理函数: 分离PCM16LE双声道音频采样数据的左声道和右声道 将PCM16LE双声道音频采样数据中左声道的音量降一半 将PCM16LE双声道音频采样数据的声音速度提高一倍 ...
视音频数据处理:H.264视频码流解析 本文介绍视音频码流的处理程序。本文介绍的程序是视频码流处理程序。视频码流在视频播放器中的位置如下所示。 本文中的程序是一个H.264码流解析程序。该程序可以从H.264码流中分析得到它的基本单元NALU,并且可以简单解析NALU首部的字段。通过修改该程序可以实现不同的H.264码流处理功能。 原理 H.264原始码流(又称为“裸流”)是由一...