- 博客(14)
- 资源 (52)
- 收藏
- 关注
原创 音视频时间戳获取及音视频同步原理
时间戳是音视频都具有的属性,我们的音视频都是通过时间戳来同步的,首先,先看看音视频的时间戳计算方法。1. 视频时间戳 这个值主要是依赖于帧率;1000/fps为帧间间隔;相当于一个个间隔时间加上去了。可见这个计算是以帧为单位来计算的。pts = inc++ *(1000/fps);其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.在ffmpeg,中的代码为pkt.pts= m_nVideoTimeStamp++ * (m_VCtx->tim
2020-02-29 22:29:39 1765 1
原创 FFmpeg码率控制
在实际开发中,码率控制的需求还是比较多, 码率控制主要有以下几种:1、CQP(Constant Quantization Parameter )特点: 值越大,压缩率越大,质量越低。使用方法(虽然这里使用的是命令行的形式,但在编写代码时也有参考价值)。
2020-02-29 21:33:44 4600
原创 FFmpeg音频编解码处理详解
FFmpeg是一个非常强大的工具,它可以处理几乎所有类型的音频编解码任务。通过对FFmpeg的了解和实践,你可以轻松地转换音频格式、调整音质、添加效果以及执行更复杂的音频处理任务。在音频编解码的核心是对输入信号的精确理解和对输出需求的控制,而FFmpeg提供了这一切所需的工具和选项。
2020-02-29 21:33:25 1278 1
原创 FFmpeg解复用
解复用是多媒体开发中核心的功能。解复用功能是从音视频信号源中分流出不同的音频和视频流;另外解复用一般属于一种主动操作,即从音视频信号源中取出。数据流结构为Source->Demux->Stream 主要实现模式有:1)直接模式:直接从信号源获取相应的音频或者视频数据。这种方式适合顺序读取和拥有帧位置元数据等信号源。使用这种模式,实际是从Demux...
2020-02-29 21:33:11 1112
原创 FFmpeg 命令行工具
ffmpeg 是强大的媒体文件转换工具,常用于转码,可选命令非常多,编码器、视频时长、帧率、分辨率、像素格式、采样格式、码率、裁剪选项、声道数等等都可以自由选择在FFmpeg 官网可以下载对应平台的可执行程序包,比如 Windows 平台的下载地址是:https://ffmpeg.zeranoe.com/builds/下载解压后就能在 bin 文件夹下能看到三个可...
2020-02-29 21:32:51 481
原创 FFmpeg转码
转码在音视频处理中,是最常见的一种,原始视频的格式各不相同,为方便用户使用和平台兼容,转码就显得很重要的。通过转码,我们可以把不同格式,分辨率,码率的转换成统一的,便于使用的格式。 一个简单的基于FFmpeg的转码器。它可以将一种视频格式(包括封转格式和编码格式)转换为另一种视频格式。转码器在视音频编解码处理的程序中,属于一个比较复杂的东西。因为它结合了视频的解码和...
2020-02-29 21:32:39 526
原创 volatile关键字
volatile是一个类型修饰符(type specifier).volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
2020-02-29 21:32:24 261
原创 VMware Workstation和Device / Credential Guard不兼容处理
最近在一次重启虚拟机后,在启用了Credential Guard或Device Guard的Windows 10主机上启动12.5版之前的VMware Workstation中的虚拟机时,将显示蓝色诊断屏幕(BSOD)。 会看到类似于以下内容的错误:VMware Workstation和Device / Credential Guard不兼容。禁用Dev...
2020-02-28 22:49:33 1301 1
原创 FFmpeg获取视频的旋转角度
FFmpeg获取旋转角,目前只有在解析视频流的时候,调用rotate函数,才可以获取。示例代码如下:int getRotateAngle(AVStream* avStream){ AVDictionaryEntry *tag = NULL; int m_Rotate = -1; tag = av_dict_get(avStream->metadata, "r...
2020-02-28 22:33:51 4150 2
原创 图像颜色空间详解
自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空间模型来量化的描述颜色。我们比较常接触到的就包括 RGB / CMYK / YIQ / YUV / HSI等等。 对于...
2020-02-28 22:19:59 2970
原创 Windows 编译安装H265
H.265,也被称为高效视频编码(HEVC),是一种用于视频压缩的新一代标准。它旨在比其前身H.264提供更高的数据压缩率,以便于在保持相同视频质量的同时减少带宽消耗或在相同的带宽下提供更好的视频质量。下面我们详细说下如何从源码编译安装H.265编解码器。
2020-02-28 22:16:13 2019
原创 C++宏定义和宏定义函数使用总结--C++面试细节(3)
C++中的宏定义是预处理指令,用于在编译之前对源代码进行简单的文本替换。宏定义可以大致分为两类:对象宏(Object Macros)和函数宏(Function Macros)。宏定义由预处理器处理,而不是编译器,因此它们在编译过程中的早期被处理。宏定义提供了一种强大的方式来执行条件编译和代码重用,但应谨慎使用,以免导致代码维护困难。随着C++标准的发展,许多宏的用例可以用模板、内联函数和constexpr表达式等现代特性更安全地实现。
2020-02-27 21:00:21 159 1
原创 assert()函数用法详解--C++面试细节(2)
函数是 C 和 C++语言中的一个宏,它用于辅助调试程序。它主要用来检查程序中的假设是否为真,如果假设为假(即表达式结果为假,或者说为0),则 会让程序终止并打印一条错误信息。assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行。 函数的原型定义如下: 3.典型使用 在 C++ 中,assert() 宏定义在 头文件中,在 C 语言中是 。使用 assert() 的典型方式如下: ass
2020-02-27 20:59:37 161 1
Navicat安装指导及安装资源
2024-03-23
vncserver和vncviewer
2017-06-01
大数据资料集锦
2016-03-30
Hadoop技术全套图书
2016-03-21
jQuery瀑布流经典布局源码
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人