自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 问答 (1)
  • 收藏
  • 关注

原创 流媒体之RTMP协议(其四)

RTMP,实时消息传输协议基于TCP,是一个协议簇,包括RTMP基本协议及RTMPT/RTPS/PTMPE等多种变种。RTMP是一种用于进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/Red5等。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。采用tcp协议,避免了多媒体数据在广域网传输过程中的丢包对质量造成影响。

2024-09-17 15:19:40 630

原创 多人在线聊天服务器

C/S(Client/Server)模式,即客户端/服务器模式,是一种网络计算模型,它将任务和服务分为两个主要部分:客户端(Client)和服务器端(Server)。在这种模型中,客户端负责发送请求,服务器端则负责处理这些请求并返回响应。客户端(Client)角色:客户端是请求服务的发起者,通常是一个用户界面,允许用户请求服务器提供的数据或服务。功能发送请求:客户端向服务器发送请求,请求可以包括数据查询、文件传输、计算任务等。接收响应:客户端接收服务器处理请求后返回的响应,并将结果显示给用户。特点。

2024-09-17 15:18:25 1130 1

原创 流媒体之HLS协议(其三)

HLS与RTMP都是流媒体协议,RTMP由Adobe开发,广泛应用于低延时直播,也是编码器和服务器对接的实际标准协议,在PC(Flash)上有最佳的观感体验;HLS由苹果公司开发,可以支持Live(直播),也可以支持VoD(点播)。HLS是苹果平台的标准流媒体协议,和RTMP在PC上一样支持得非常完善。HLS全称HTTP Live Streaming,是一种基于HTTP的流媒体网络传输协议。它的基本工作原理是把整个流分成一个一个小的基于HTTP的文件来下载,每次只下载一些。

2024-09-10 21:54:48 648

原创 SRS流媒体服务器从入门到精通(其一,环境搭建)

SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持多种直播和录播场景。SRS由国内开发者创建,是一款开源流媒体服务器软件。它支持RTMP、WebRTC、HLS、HTTP-FLV等多种协议,适用于直播、录播和视频客服等多种场景。高效性能:SRS设计简洁,具有高性能的特点,能够处理大量的并发连接和流媒体数据。多种协议支持:SRS支持多种流媒体协议,包括RTMP、WebRTC、HLS、HTTP-FLV等,能够满足不同场景的需求。易用性。

2024-09-10 21:54:05 1387

原创 流媒体协议RTSP(其二)

RTSP(Real-Time Streaming Protocol)是一种网络协议,用于控制音频和视频流的传输,尤其是在点播和直播的应用场景中。RTSP 允许客户端对媒体流进行播放、暂停、停止等操作,是流媒体应用程序中的重要组成部分。相当于流媒体服务器的远程控制服务器和客户端双向请求应答,是对称协议与HTTP协议类似,基于文本,UTF-8编码特点:(1)可扩展性:新方法和参数很容易加入RTSP。(2)易解析:RTSP可由标准HTTP或MIME解释器解释。

2024-09-07 17:23:50 1001

原创 流媒体与直播的基础理论(其一)

流媒体是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上及时传输影音以供观赏的一种技术与过程,此技术使数据得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。完整的流媒体平台包括:前端摄像头、流媒体服务器、磁盘阵列、视频综合管理、电视墙、客户端等。流媒体最主要的技术特征是流式传输,它使数据像流水一样传输。实现流式传输主要有两种方式:顺序流式传输 和 实时流式传输。01顺序流式传输。

2024-09-07 17:22:16 1023 2

原创 FFmpeg的入门实践系列七(滤镜)

(1)过滤器的作用是在音视频数据流经FFmpeg时对其进行处理。视频分辨率转换音频混音视频特效(如模糊、锐化)图像格式转换时间基线校正(2)过滤器类型视频过滤器:如crop(裁剪)、scale(缩放)、vflip(垂直翻转)、hue(色相调整)等。音频过滤器:如volume(音量调整)、equalizer(均衡器)、aresample(重采样)等。图形和字幕过滤器:如drawtext(绘制文本)、overlay(图像叠加)等。格式转换过滤器:如format。

2024-09-04 09:45:29 1114

原创 ffmpeg命令(详解)

ffmpeg [输入文件的参数] -i [输入文件的位置] //输入处理(-vf/af/filter_complex [滤镜描述字符串]) //中间滤镜加工(可选)[输出文件的参数] [输出文件的位置] //输出处理在变中把握不变,是一切学习的真谛,或许有更好的框架,欢迎各位在评论区留言,在下不胜感激~至此,结束~望诸位不忘三连支持一下~

2024-09-04 09:45:11 1039

原创 使用sudo需要留意环境变量被重置

一直以为,sudo命令就是拿来升级权限的,今天才发现,sudo会把用户设置的环境变量重置,导致配置的环境变量失效,这也导致了我一直配置不成功avs2库。选项可以保留环境变量,但在某些情况下,出于安全考虑,某些环境变量可能会被。因此,如果你发现某些环境变量即使在。环境变量,并将其设置为当前用户的值。提升的权限下运行命令时,保留你的环境变量设置。选项下也不起作用,可能需要显式地设置它们。选项会保留用户的环境变量,这样就可以在。以及其他用户设置的环境变量将会被保留。重置了环境变量,你也能确保。

2024-08-30 14:23:36 264

原创 FFmpeg的入门实践系列六(编程入门之常见处理流程)

本章中,主讲了对音视频文件的从上到下的读写流程。这里着重讲了AVCodecContext这个结构体的使用方法,诸位在实际开发时,一定要有层次意识,首先要问一下该代码片段处理的内容是处于什么位置的,是属于音视频文件(AVFormatContext),属于数据流(AVStream),还是属于数据流下面的编解码器(AVCodec,AVCodecContext)?把脉络给理清了,开发过程中才不会如同无头苍蝇乱闯。下一期,会更精彩,期待诸位的关注~

2024-08-25 21:41:59 2056 3

原创 FFmpeg的入门实践系列五(编程入门之属性查看)

/ AVClass提供日志处理等功能// 输入格式// 输出格式// 私有数据,特定于输入或输出格式// 读写数据的IO上下文// 上下文标志// 流的数量// 指向流的指针数组// 文件名// 一些时间基准和时长信息// 文件时长// 比特率// 数据包大小// 最大延迟// 其他与解码、时序、元数据等相关的字段// 文件元数据,如标题、作者等// 其他字段省略...

2024-08-25 10:07:38 973

原创 FFmpeg的入门实践系列四(AVS)

数字音视频编解码技术标准工作组由国家原信息产业部科学技术司于2002年6月批准成立。工作组的任务是:面向我国的信息产业需求,联合国内企业和科研机构,制(修)订数字音视频的压缩、解压缩、处理和表示等共性技术标准,为数字音视频设备与系统提供高效经济的编解码技术,服务于高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通讯、互联网宽带流媒体等重大信息产业应用。AVS是我国具备自主知识产权的第二代信源编码标准。

2024-08-24 08:22:22 1401

原创 FFmpeg和SDL的关系

SDL(Simple DirectMedia Layer)和 FFmpeg 是两个在多媒体开发中常用的开源库,但它们各自的功能和用途有所不同,通常一起使用以实现完整的多媒体处理和播放解决方案。

2024-08-24 08:22:04 393

原创 FFmpeg的入门实践系列三(基础知识)

库名称功能描述AVUtil核心工具库,提供基本的数据结构和实用函数。其他模块依赖AVUtil进行基本的音视频处理操作。AVFormat文件格式和协议库,处理多媒体文件的封装和解封装。封装了协议层、解复用器(Demuxer)和复用器(Muxer)层。AVCodec编解码库,处理音视频的编码和解码。支持多种编解码器,包括第三方编解码器如libx264、FDK-AAC等。AVFilter音视频滤镜库,提供音视频特效处理。可以直接在编解码过程中使用,方便高效。AVDevice。

2024-08-21 20:21:06 1050

原创 FFmpeg的入门实践系列二(基础知识)

欢迎诸位来阅读在下的博文~在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力。

2024-08-21 20:20:03 1295 1

原创 基于Reactor模式深入探讨Libevent

事件驱动,高性能轻量级,专注于网络,不像ACE那么庞大源代码相当精炼,易读跨平台,支持Windows、Linux、*BSD 和 MacOS支持多种IO多路复用技术,如epoll、poll、dev/poll、select 和 kqueue等支持I/O,定时器 和 信号等事件支持注册事件优先级。Libevent是一个事件通知库,内部使用select、epoll、kqueue、IOCP等系统调用管理事件机制。Libevent使用C语言编写的,而且几乎是无处不用的函数指针。

2024-08-20 17:38:11 845

原创 FFmpeg的入门实践系列一

FFmpeg是一个开源项目,同时它也是一个非常流行的多媒体框架。它提供了一个完整的跨平台解决方案来记录、转换数字音视频,以及转换成不同的格式。FFmpeg可以捕捉、编码和转码多种视频和音频格式,它支持大量的音视频格式,包括但不限于H.264、H.265、VP8、VP9、AAC、MP3等。ffmpeg:用于处理音视频文件的工具,可以进行录制、转换格式、流化等操作。ffplay:一个简单的播放器,可以播放多媒体内容。ffserver:一个流媒体服务器,可以用来发布多媒体内容。libavcodec。

2024-08-20 17:37:24 1046

原创 Linux之HTTP服务器的构建

欢迎诸位来阅读在下的博文~在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力!

2024-08-17 20:23:17 1814

原创 Linux系统的Apache2如何启动cgi模块(Ubuntu)

通过以上步骤,你可以成功配置Apache运行CGI程序。在完成配置后,建议根据你的需要对CGI脚本目录进行访问控制,以确保服务器的安全性。望诸位不忘三连支持一下~

2024-08-17 20:04:46 813

原创 在linux上架设Web服务器Apache(Ubuntu)

欢迎诸位来阅读在下的博文~在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力!

2024-08-15 17:23:36 1155

原创 Linux网络编程之多进程并发服务器(其二)

本博客参考:《Linux C/C++ 服务器开发实践》——朱文伟 李建英。

2024-08-14 19:48:16 470

原创 Linux网络编程之循环服务器(其一)

循环服务器在同一个时刻只能响应一个客户端的请求,处理完一个客户端的工作后,才能处理下一个客户端的工作,就好像分时工作一样。循环服务器指的是对于客户端的请求和连接,服务器在处理完毕一个后,再处理另一个,即串行处理客户机的请求。这个I/O模型对应的是同步阻塞模型。有关五种网络I/O模型的详细了解,请参考下面的博客:Linux网络编程之I/O模型(详解)

2024-08-13 10:33:07 1011

原创 linux之tar命令详解

Linux的tar命令是一个用于创建和操作tar归档文件的工具。以下是一些基本的tar。

2024-08-12 16:42:28 263

原创 Linux网络编程之I/O模型(详解)

本博客参考《Linux C/C++ 服务器开发实践》——朱文伟 李建英。

2024-08-12 16:08:24 797

原创 Linux网络编程的套接字分析(其一,基本知识)

允许对较低层次的协议直接访问,比如IP、ICMP,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为原始套接字可以自如地控制Linux下的多种协议,能够对底层的传输机制进行控制,所以可以应用原始套接字来操控网络层合传输层应用。一个套接字嗲表通信的一端,每端都有一个套接字地址,这个socket地址包含了ip地址和端口等信息。总:原始套接字合标准套接字(前两个)的区别在:原始套接字可以读写内核没有处理的IP数据报,而流套接字只能读取TCP的数据,数据报套接字只能读取UDP的数据。

2024-08-10 22:57:14 469

原创 基本线程池(基于POSIX)

线程池就是预先把一堆线程封装好,使它变成一个项目的基础组件,当项目需要频繁使用线程来处理各式各样的任务时,可以直接拿这个组件来搭建项目。

2024-08-10 16:04:44 428

原创 Linux网络编程之dpdk的环境配置详解

接着让你选择PIC地址,我选择eth1,理由是eth0是用来通过ssh协议连接到xshell的,而且已经处于active状态,我们选择的网卡必须是没有工作的,否则要实现down下来:ifconfig eth0 down。export RTE_SDK=/home/user/dpdk/dpdk-stable-19.08.2/ (注意,该路径取决于你的dpdk路径)言归正传,编译成功后,再执行43,插入igb_uio模块,详细请看:https://zhuanlan.zhihu.com/p/483868843。

2024-08-05 11:24:46 1407

原创 NUMA系统和非NUMA系统

在计算机系统中,尤其是服务器和高性能计算环境中,大页(Huge Pages)是一种内存分配技术,它允许操作系统使用更大的内存页(通常是2MB或1GB,而标准页大小为4KB)来管理内存。这种技术可以减少内存分页表的大小,从而提高内存管理的效率,尤其是在处理大量内存访问的应用程序时。在Linux操作系统中,大页有两种类型:标准大页(Standard Huge Pages)和透明大页(Transparent Huge Pages,THP)。标准大页需要手动配置,而透明大页是由内核自动管理的。

2024-08-05 11:07:23 351

原创 Ubuntu(server)的镜像源配置

该配置是Ubuntu 16.04,如果是其它的版本,将xenial改成其它版本的版本号即可。修改好后,使用如下命令更新软件列表。如23.04是lunar。

2024-08-03 22:17:31 399

原创 linux之ip命令

文件配置网络可能不会生效,因为它们可能会覆盖这些配置。在这种情况下,你需要确保使用正确的工具来配置和管理网络。是 Linux 系统下用于配置和管理网络接口和路由表的强大命令行工具。命令的强大之处在于它的模块化和灵活性。命令选项和参数来执行复杂的网络管理任务。选项可以专门处理 IPv6 地址,使用。或者其他网络管理工具,那么使用。命令可能需要管理员权限(使用。选项可以获取更详细的信息等。请记住,如果你的系统使用的是。),特别是在更改网络配置时。获取更详细的帮助信息。

2024-08-03 21:21:32 659 2

原创 虚拟机网络配置(ubuntu)

【VMaware WorkStation Pro 17 虚拟机软件 设置网络】 https://www.bilibili.com/video/BV1vH4y1z7JG/?在虚拟机的网络配置中,三种常见的网络配置模式各具特点,分别是桥接模式(Bridged Networking)、网络地址转换模式(NAT)、以及仅主机模式(Host-Only Networking)。

2024-08-01 00:21:50 450

原创 根据不同的场景来使用进程、线程和协程

比如由一个网络服务器,是用来聊天,发数据的,那么就是IO密集型,因为他在计算方面很少,但是IO读写很多,这个时候就要选择协程做成网络框架再去开发。如果有一个网络服务器,是拿来做人脸识别,然后将结果返回给用户的,他需要很多计算量,然后访问量比较少,那么使用线程池来开发,是更好的选择。在实际开发项目中,选择协程、线程或进程取决于多种因素,包括项目的需求、性能目标、资源限制以及开发团队的熟悉程度。

2024-07-28 23:38:42 485

原创 unordered_map的用法

/ 插入键值对// 初始化列表return 0;

2024-07-25 21:03:15 229

原创 协程小笔记

协程(Coroutine)是一种程序组件,它允许多个入口点用于暂停和恢复执行的函数,可以在单个线程内实现多任务的并发执行。与线程相比,协程提供了更轻量级的并发单元,因为它们共享同一线程的堆栈空间,并且协程之间的切换不需要操作系统的介入,从而减少了上下文切换的开销。来等待一个异步操作完成,这样它就可以让出控制权,允许事件循环执行其他任务。是一个协程函数,它使用。

2024-07-25 21:01:44 193

原创 Linux之kcp协议

KCP(KCP协议)是一个开源的快速可靠协议,由 skywind3000 开发。KCP 是基于 UDP 协议的,通过引入快速重传和拥塞控制算法,优化了传输效率。与 TCP 相比,KCP 在保持可靠性的前提下,可以显著降低延迟,对于多人在线竞技游戏或者实时对战游戏至关重要。kcp协议的使用很简单,由于其纯粹基于算法实现,内部并没有引用任何系统库,所以它的迁移性很好。而且只有两个文件:ikcp.h 和ikcp.c。在工程应用上,只需要引用这两个文件,即可使用kcp协议带来的好处。

2024-07-24 15:57:33 454

原创 c++之sstream

stringstream 是 C++ 中用于字符串处理的库,它允许你将字符串作为流来处理,可以进行字符串的读取、写入和格式化等操作。stringstream 通常用于在字符串和不同数据类型之间进行转换,尤其是在需要将多个数据类型组合成一个字符串或者从字符串中解析出不同数据类型时。stringstream 的一个常见用途是在程序中构建复杂的字符串,尤其是在需要将多个不同类型的数据组合成一个字符串时。

2024-07-23 23:06:57 171

原创 Linux之进程(详解-上)

原创不易,还请给个三连支持一下鸭~

2024-07-16 11:54:28 834 1

原创 Linux网络socket之基础模型(c语言)

这是因为在 select 函数调用之后,rset 中的文件描述符集合会被修改,以反映哪些文件描述符实际上发生了事件。select 调用返回后,可以通过 FD_ISSET 宏来检查哪些文件描述符发生了指定的I/O事件。例如,如果 readfds 中的文件描述符准备好读取,则可以使用 FD_ISSET 来检查哪些具体的文件描述符发生了可读事件,并对其进行处理。:等待 I/O 事件发生的时间上限,单位是毫秒。当 epoll_wait 返回时,遍历返回的 epoll_event 结构体数组,处理每个发生的事件。

2024-07-16 08:17:20 649

原创 c++11之可变模板参数

可变模板参数是 C++11 中引入的一项特性,它允许你定义能够接受任意数量和类型的模板参数的模板。这个特性通过使用 … (称为 “参数包”)来实现,可以在模板参数中使用它来表示零个或多个参数。可变模板参数是一个非常强大的特性,它极大地简化了模板编程,使得可以编写更加通用和灵活的代码。它常用于实现元编程技术、泛型编程、以及创建能够接受任意数量和类型参数的函数和类。上面的可变模版参数的定义当中,省略号的作用有两个:例子:展开可变模版参数函数的方法一般有两种:代码标注:一般需要两个函数,一个是展开函数,一

2024-07-13 07:00:00 596

原创 c++11之函数对象封装 function 和 bind

是一个模板类,它可以包装任何可以调用的目标,包括函数指针、函数对象、成员函数指针和 lambda 表达式。它是一个通用的回调机制,允许你以统一的方式处理各种可调用实体。是一个函数模板,它可以用来绑定一个函数或成员函数的参数。函数的第一个参数固定为 10,并且可以通过传递一个参数来调用它。允许你提前绑定一些参数,从而创建一个新的可调用对象。主要是为了提供更加灵活的函数对象封装和绑定机制。对象,该对象可以像普通函数一样被调用。是一个占位符,表示在调用。创建了一个新的函数对象。时传递给它的第一个参数。

2024-07-12 11:12:15 400

空空如也

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

TA关注的人

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