自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 P2P通信基本原理

P2P即点对点协议。当A和B通信的时候,最简单的方式如下,A和B之间通过一个服务器转发数据。而P2P是这样的,双方直接进行通信这种方式能大大减轻服务端的负载,所以特别适合大数据的传输,比如实时音视频聊天、在线视频直播、大文件传输等应用场景。

2024-04-10 13:26:12 1102

原创 大语言模型入门

一个大语言模型只是两个文件:参数和某些可以运行这些参数的代码。因为这是一个 700 亿参数模型,每个参数都存储为2个字节,因此参数文件有140GB,2个字节,是因为数据类型是float16运行参数的代码,可能是一个c文件/python文件或任何其他编程语言ChatGPTG:generate 生成P:Pre-trained 预训练T:Transformer 注意力机制获取大约10TB的文本,通常来自于对网络数据的爬取。

2024-04-08 10:05:16 1096

原创 深入剖析webrtc事件机制 sigslot

在构建大型C++项目过程中,如何在各个类之间高效且安全地传递数据或事件是一项具有挑战性的任务。最直接但并不推荐的方法是使用全局变量。虽然这种方法简单易用,但它会导致命名冲突,难以维护,且全局变量的值容易在不知情的情况下被意外修改。另一种常见的方式是使用回调函数。在这种情况下,类A会注册类B的回调函数。然而,这种方法的缺点在于对象的声明周期难以控制,经常会出现回调函数触发时,对象已经被销毁的情况。WebRTC中的信号槽机制是实现通信的一种关键技术。

2024-04-06 16:40:57 1270

原创 5分钟在MAC下本地搭建大模型

Ollama——一个简明易用的本地大模型运行框架。随着围绕着 Ollama 的生态走向前台,更多用户也可以方便地在自己电脑上玩转大模型了。Ollama 的目标是帮助开发者在本地运行、创建和共享大型语言模型。Ollama 目前处于早期预览阶段,但已经提供了一些核心功能。例如,它支持运行和对话 Llama 2,这是 Meta 新推出的模型。此外,Ollama 还提供了一个模型库,开发者可以在这里下载和使用各种开源模型。

2024-03-26 11:34:50 1156

原创 ffplay源码分析(二)stream_open

stream_open 流程主要负责播放器运行过程中相关上下文和队列的初始化,以及码流读取线程的创建。也就是从这个函数开始,播放器就真正开始运行起来了。本次主要还是介绍这个过程中使用到的结构体。比较重要的后面单独解析。

2024-03-11 13:59:19 437

原创 ffmpeg源码分析(五)结构体之AVCodecContext

GOP(Group of Pictures)大小,指定两个关键帧之间的最大帧数。AVCodecContext是和编解码相关的结构体,同时也是变量最多的一个结构体。: 额外的编解码器特定数据,通常包含一些配置信息。: 像素格式,描述视频帧的颜色表示方式,例如YUV420P。: 编码器的配置文件,影响编码质量和复杂性。: 用于控制量化参数的设置,影响编码质量。: 最大B帧数,影响编码的延迟和质量。: 控制编解码器的行为的标志。: 编码过程中参考帧的数量。: 视频帧的宽度和高度。: 每个音频帧的大小。

2024-03-08 18:58:40 997

原创 ffplay源码分析(六)音视频同步

在ffplay中,音视频的输出有自己的线程。比如一个没有声音的视频,或者刚播放的只有音频没有视频,视频比较晚到,那前面的音频也可以先丢弃。这三种是最基本的策略,考虑到人对声音的敏感度要强于视频,一般情况下我们会采取视频去同步音频的策略。所以最开始的时候的计算方式应该是2s-1.5s,结果是0.5s,和t3时刻计算的结果是一致的。音频同理,音频的pts假设是1.5s,设置时时刻t1假设是1001s(实际是一个很大的值),设置的时候,视频的pts假设是1s,t1假设是1000s(实际是一个很大的值),

2024-03-07 15:46:04 1030

原创 ffplay源码分析(一)主函数

在数字化时代,多媒体播放器已成为我们日常生活中不可或缺的一部分。无论是观看电影、听取音乐,抑或是进行视频会议,我们都依赖于功能强大的播放器来呈现丰富多彩的音视频内容。而在众多播放器中,FFplay以其简洁而强大的特性脱颖而出。作为FFmpeg多媒体框架的一部分,FFplay不仅提供了丰富的音视频格式支持,更以其开源、跨平台的特性备受开发者青睐。在音视频相关的面试中,ffplay中的一些代码甚至被认为是标准的解决方案。

2024-03-05 11:42:50 674

原创 ffmpeg源码分析(四)结构体之AVIOContext 、URLContext、URLProtocol

这篇文章主要是在解复用阶段所使用的结构体。ffmpeg它支持多种协议,用于从不同来源获取多媒体数据,例如HTTP、RTMP、RTSP、文件等。FFmpeg的协议解析部分包含一些结构体和流程,用于处理不同协议的数据获取。URLContext:这是FFmpeg中用于表示URL的结构体。它包含有关URL的信息,例如URL的协议、主机、端口、路径等。不同的协议解析器可以使用不同的数据填充这个结构体,以适应各种URL。:这是用于输入/输出操作的上下文结构体。它可以包含URLContext。

2024-03-04 19:44:22 1235

原创 FFmpeg源码解析系列(三)结构体之AVFormatContext

首先从ffmpeg最顶端的一个结构体说起AVFormatContext是API中直接接触到的结构体,位于avformat.h中,结构体描述了一个多媒体文件或流的构成和基本信息。,是FFmpeg中最为基本的一个结构体。贯穿了ffmpeg使用的整个流程。

2024-02-29 19:57:59 735

原创 FFmpeg源码解析系列(二)主要结构体

结构体描述作用头文件AVIOContext(I/O上下文)AVIOContext结构体用于管理媒体文件或者网络流的输入和输出操作实现文件或者流的I/O操作avio.hAVFormatContext(封装格式上下文)AVFormatContext结构体是与多媒体文件格式相关的结构体,用于打开、读取和写入媒体文件。它包含了文件的格式信息、音视频流、文件I/O操作等管理媒体文件的格式和封装信息。AVCodecContext(编解码器上下文)

2024-02-29 10:10:16 1174

原创 FFmpeg源码解析系列(一)目录和编译

FFmpeg,全称"Fast Forward MPEG",是一个功能强大、开源的多媒体框架,它提供了广泛的音频和视频处理功能,使得多媒体数据的解码、编码、转换、封装以及流媒体传输变得更加容易。随着数字媒体在我们日常生活中的普及,FFmpeg在多领域得到了广泛的应用。你可以使用FFmpeg来剪切、合并、转码、添加滤镜等,从而编辑和处理视频文件。这对于视频制作、后期制作以及视频分享平台非常重要。FFmpeg不仅支持视频,还可以用于音频文件的处理,包括音频转码、剪切、合并以及添加效果。

2024-02-28 18:01:22 888

原创 常见图像插值算法

缩放、最近邻插值、三次立方插值

2024-02-22 16:39:18 892

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除