自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (9)
  • 收藏
  • 关注

原创 修改FFMpeg的日志函数av_log,使其在记录日志时能显示调用该函数的位置(文件名和行号)

需要注释掉原有的 声明和实现,然后将新代码添加到 中。以下是完整、优化的实现方案:在log.h中添加一下代码,已定义新的av_log函数。需要同时进行的修改:在实现文件中注释掉原有函数定义:在你的实现文件(如 log.c)中找到原函数并注释掉:注释掉原来的av_log声明:在 log.h 中,注释掉原来的av_log声明:确保 av_vlog 可用:确保在 log.h 中声明了 函数:关键优化说明:安全缓冲区:性能考虑:编译器兼容性:日志格式灵活性:如果想添加更

2025-06-12 21:08:59 201

原创 为什么TCP有粘包问题,而UDP没有

TCP粘包根源:字节流传输 + Nagle算法 + 无消息边界标识 ➜ 数据包边界模糊。UDP无粘包:独立数据报 + 长度字段 + 无合并优化 ➜ 天然保留消息边界。因此,UDP适用于需要明确消息边界的场景(如DNS、实时音视频),而TCP需依赖应用层协议设计解决粘包问题。

2025-06-12 17:12:51 320

原创 RTP over TCP 模式

指的是将RTP数据包封装在TCP连接中进行传输,而不是使用传统的基于UDP的传输方式。防火墙和路由器限制:有些网络环境中,UDP流量可能被防火墙或路由器阻挡,导致RTP基于UDP的传输无法正常进行。NAT(网络地址转换)问题:在某些NAT配置下,UDP可能会遇到地址和端口映射的问题,而TCP由于其连接导向性,更容易穿透NAT设备。需要可靠传输:虽然RTP本身是基于UDP的,无保证的传输,但在某些情况下,应用可能希望利用TCP的可靠性来减少数据丢失。特性端口数量。

2025-06-03 16:31:08 1056

原创 whisper相关的开源项目 (asr)

基于(OpenAI 的开源语音识别模型)的开源项目有很多,涵盖了不同应用场景和优化方向。“谁在什么时候说了什么?

2025-05-25 23:03:36 750

原创 ubuntu安装pytorch的方法

安装的 PyTorch 包含了所需的 CUDA 库,但确保系统中安装了兼容的 NVIDIA 驱动以充分利用 GPU 加速。如果您的系统没有 NVIDIA GPU,或者不需要 GPU 加速,可以安装仅支持 CPU 的 PyTorch 版本。如果系统没有 NVIDIA GPU,或者不需要 GPU 加速,可以安装仅支持 CPU 的 PyTorch 版本。安装的 PyTorch 包含所需的 CUDA 库,但系统中仍需安装兼容的 NVIDIA 驱动。文件,以根据不同的系统和硬件自动选择合适的 PyTorch 版本。

2025-05-25 16:47:44 671

原创 eBPF及相关工具和技术介绍

BPF/eBPF是底层技术,提供了在内核中执行用户定义代码的能力。BCC是一个工具集,帮助用户更方便地编写和使用 eBPF 程序,适合开发复杂的 eBPF 应用。bpftrace是一个简单易用的 eBPF 工具,适合快速编写和执行 eBPF 脚本,特别适合于即时分析和调试任务。

2025-05-16 15:02:27 153

原创 使用 `perf` 和火焰图(Flame Graph)进行性能分析

perf是 Linux 内核提供的一个功能强大的性能分析工具,能够监控和分析系统及应用程序的性能瓶颈。通过perf,开发者可以深入了解程序在运行过程中各个函数的执行情况,从而找到高 CPU 占用的根本原因。火焰图(Flame Graph)则是一种可视化性能数据的工具,能够直观地展示函数调用的层级关系及其耗时情况。结合perf和火焰图,开发者可以更高效地进行性能分析和优化。使用perf收集和分析高 CPU 占用进程的性能数据,并结合火焰图进行直观的可视化分析。

2025-05-15 22:20:59 947

原创 以QHexView为例,如何将第三方QT插件源代码包含到QT主项目中(QT6,CMake)

克隆或下载 QHexView 源代码将 QHexView 作为子模块或将其源代码包含到主项目中配置主项目的文件在代码中使用 QHexView编译并运行项目。

2025-05-12 17:40:25 908

原创 Windows系统下使用国内镜像加速安装Qt及其在线工具的步骤

在中国,直接从 Qt 官方服务器下载安装可能会因为网络原因而速度缓慢。为了加快 Qt 及其在线工具的安装过程,使用国内的镜像源。以下是详细的步骤指南,介绍如何在 Windows 上使用中国镜像加速安装 Qt 及其在线工具。

2025-05-07 11:55:53 1026

原创 flv 帧率计算(fps)

FLV文件中的FPS(帧率)计算通常需要结合其元数据(Script Tag)中的关键参数。

2025-03-27 15:35:34 231

原创 ubuntu安装NVIDIA显卡驱动及CUDA环境

在安装CUDA之前,需要先安装适用于您的GPU的NVIDIA显卡驱动。

2025-03-18 21:22:52 2156

原创 懒加载代理模式(Lazy Initialization Proxy Pattern)

定义一个名为LazyProxy的类。初始化方法,接受一个参数init_fn,这是一个用于初始化实际对象的函数。将传入的初始化函数保存为实例变量_init_fn,以便后续调用。初始化实际对象_obj为None,表示对象尚未被创建。LazyProxy类的主要作用是在需要时才初始化实际对象,从而优化资源的使用。资源管理:延迟加载占用大量内存或需要耗时初始化的对象,只有在真正需要时才创建它们。性能优化:减少程序启动时的初始化开销,提升启动速度。依赖管理。

2025-02-20 15:42:20 901

原创 Bazel项目目录结构

WORKSPACE 文件是 Bazel 项目的入口文件,用于定义工作区的根,并管理外部依赖。定义工作区名称:通过指定工作区的名称。引入外部依赖:使用等规则下载和管理第三方库。加载规则和工具链:通过load语句引入自定义规则或工具链配置。常见用法示例Bazel 允许用户通过 Starlark(Bazel 的配置语言)自定义构建规则和扩展功能。这些自定义规则通常放在defs.bzl或类似的.bzl文件中,并在 BUILD 文件中加载和使用。defs.bzlcc_binary(BUILD 文件中的使用。

2025-01-17 12:41:34 762

原创 bazel 常用命令

以下是一些常用的 Bazel 命令及其说明。

2025-01-16 11:35:04 765

原创 自定义 Celery的logging模块

支持日志滚动:原生celery不支持日志滚动。更详细的日志信息:需要包含更多上下文信息,以便更好地理解任务的执行过程。日志格式调整:适应现有的日志管理系统,如 ELK(Elasticsearch, Logstash, Kibana)堆栈。多日志目标:将日志同时输出到多个地方,例如控制台、文件和远程日志服务器。日志级别控制:根据不同的模块或任务设定不同的日志级别。

2024-12-25 19:02:54 1395 1

原创 Python 日志配置详解:使用 RotatingFileHandler 和 TimedRotatingFileHandler

以上配置通过字典方式定义了日志系统的各个组成部分,包括版本、格式化器、处理器、日志器等。最终通过方法应用该配置。

2024-12-25 18:29:10 1921 1

原创 日志层次结构及logger.propagate的作用

在 Python 的logging模块中,属性用于控制日志消息在记录层次结构中的传播行为。

2024-12-25 18:11:34 1087 1

原创 FFmpeg‘s setpts video filter

setpts。

2024-12-04 20:42:12 1132

原创 Celery task_acks_late

中的一个配置选项,用于控制任务确认(acknowledgment)的时机。默认情况下,Celery 在任务被接收并开始执行时就会确认消息,这可能导致在任务执行过程中发生异常或失败时,任务不会被重新调度。是 Celery 中一个重要的配置选项,可以显著提高任务队列的可靠性,确保在任务执行过程中发生异常时,任务不会被丢失。然而,需要谨慎使用,确保任务的幂等性并正确配置消息代理和预取策略,以充分发挥其优势。可以确保任务仅在成功完成后才被确认,从而提高任务的可靠性。,也可以在任务级别进行配置。

2024-12-02 15:43:42 1083 1

原创 在 WebStorm 中打开已有的项目或者创建新的项目,配置调试

打开项目后,确保项目的依赖项已正确安装。工具窗口中,您可以查看项目的文件和文件夹结构。如果没有自动运行,您可以手动在项目根目录下打开终端,运行相关命令初始化项目。首先,确保您已安装并启动了最新版本的 WebStorm。在弹出的窗口中,设置项目的名称和存储位置,然后点击 Create。确保开发服务器正在运行,并且项目可以在浏览器中访问(通常是。插件可以增强 WebStorm 与浏览器的集成,推荐安装。在调试过程中,您可以使用 WebStorm 提供的。在 WebStorm 中,点击菜单栏的 Run。

2024-11-15 11:33:10 1773

原创 调整TCP参数, 优化网络性能

增加缓冲区大小(rmem_max和wmem_max原因:适应高带宽-延迟产品网络,提高数据传输的吞吐量。启用窗口缩放(原因:允许更大的TCP窗口,从而支持更高的吞吐量,特别是在高BDP网络中。选择合适的拥塞控制算法(原因:不同的算法在不同网络条件下表现不同,选择适合当前网络状况的算法以优化性能。调整重传超时(和原因:在不稳定或高延迟网络中,适当增加重传次数和延迟,以避免过早放弃连接。优化连接关闭和保持活动设置原因:加快连接资源的回收,及时检测和清理挂起的连接,释放系统资源。启用TCP快速打开(

2024-11-11 21:02:35 3572

原创 TCP:确认机制、重传以及选择性确认(SACK)

数据包13023是主机A向主机B发送的一个纯ACK报文,确认已成功接收到主机B发送的序列号1至47110的数据,窗口大小为63802字节。

2024-11-06 21:56:01 1803 1

原创 GstAggregatorPad

TheGstPad。

2024-11-06 21:42:36 1026

原创 GstVideoAggregator

Refer to。

2024-11-01 20:25:36 982

原创 GstAggregator

【代码】GstAggregator。

2024-11-01 19:58:42 808

原创 gstreamer - queue

【代码】gstreamer - queue。

2024-11-01 16:42:34 1119

原创 gstreamer - tee

teetee。

2024-11-01 16:14:46 1043

原创 VIM的常用快捷键

1.导航键:屏幕下滚一行:CTRL + e屏幕上滚 一行:CTRL + y屏幕下滚半屏: CTRL + d屏幕上滚半屏:CTRL + u2.打开时跳转:跳转到某行: vim +行号 文件名$ vim +546 file跳转到某个函数: vim +/函数名 文件名$ vim +/function_name file配置:set nu

2024-10-30 11:46:19 1859 1

原创 android studio 打开aosp代码仓库

虽然可以将 AOSP 代码导入到 Android Studio 中进行浏览和搜索,但由于 AOSP 的复杂性和规模,许多功能可能无法完全适配。对于深入的开发和构建工作,通常建议使用官方推荐的命令行工具和环境。

2024-10-25 17:53:47 747

原创 谷歌仓库管理工具repo

Repo 是一个功能强大且专为多 Git 仓库管理设计的工具,特别适用于大型项目和需要高度协作的开发环境。通过集中管理和简化操作流程,Repo 大大提高了多团队、多模块项目的开发效率。如果你的项目涉及多个互相关联的 Git 仓库,Repo 无疑是一个值得考虑的解决方案。

2024-10-23 15:05:52 826

原创 gstreamer event

【代码】gstreamer event。

2024-10-14 21:08:13 1005

原创 grip mode support for spacemacs

【代码】grip mode support for spacemacs。

2024-09-24 14:07:21 1066

原创 markdown support in emacs

【代码】markdown support in emacs。

2024-09-24 13:36:49 1022

原创 fixation - gst_base_src_fixate

【代码】fixation - gst_base_src_fixate。

2024-09-19 18:12:31 979

原创 以gst_base_src_default_negotiate为例,简单negotiation过程

GstBaseSrc。

2024-09-19 18:00:39 954

原创 Conda安装和使用(ubuntu,mac,windows)

Conda 是一个强大的工具,能够帮助开发者轻松管理不同的项目环境和依赖。通过合理使用 Conda,您可以避免环境冲突,提高开发效率。是一个跨平台的开源包管理器和环境管理器,最初由 Anaconda 开发,广泛用于数据科学、机器学习和科学计算等领域。这将涵盖从安装到基本操作的各个方面,帮助您高效地管理Python环境和依赖项。创建一个新的 Conda 环境,并指定 Python 版本。假设你需要一个专用于机器学习的环境,Python 3.9,安装。,这是一个社区驱动的、高质量的 Conda 包集合。

2024-09-14 11:12:38 10511

转载 ansible使用教程 (4W字长文)

ansible websrvs -m user -a 'name=app uid=88 system=yes home=/app groups=root shell=/sbin/nologin password="$1$zfVojmPy$ZILcvxnXljvTI2PhP2Iqv1"' 创建用户。> ansible websrvs -m file -a 'src=/data/testfile dest=/data/testfile-link state=link' 创建软链接。

2023-12-03 13:46:15 191

转载 The architecture of VLC media framework

VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols. Technically it is a softwa

2017-05-15 19:55:13 652

转载 Build ffplay and ffmpeg 2.6.2 on Mac OSX 10.10.2

原文链接:http://www.tsheffler.com/blog/2015/05/14/build-ffplay-ffmpeg-2-6-2-on-mac-osx-10-10-2/Every few years we need ffmpeg and ffplay for some little job. The ffmpeg suite is my go-to swiss-arm

2017-02-26 21:55:58 823

转载 hls之m3u8、ts流格式详解

HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。1、M3U8文件   用文本方式对媒体文件进行描述,由一系列标签组成。#EXTM3U#EXT-X-TARGETDURATION:5#EXTINF:5,./0.ts#EXTINF:5,

2016-11-02 10:35:52 19421

当gstreamer 实例大于CPU数量时,单个gstreamer实例的CPU占有率大幅提升

当gstreamer 实例大于CPU数量时,单个gstreamer实例的CPU占有率大幅提升

2025-05-27

gstreamer CPU占用率高于ffmpeg的问题分析

gstreamer CPU占用率高于ffmpeg的问题分析

2025-05-20

gstreamer CPU占用率高于ffmpeg的问题分析

gstreamer CPU占用率高于ffmpeg的问题分析

2025-05-20

LCD driver IC 设计

LCD driver IC 设计 , driver 的构成 原理 等

2009-04-16

Conda安装和使用(ubuntu)

conda配置环境

2024-09-30

ZLM: GB28181 TCP active mode support

ZLM: GB28181 TCP active mode support

2023-09-19

ZLM: GB28181 TCP active mode support

ZLM: GB28181 TCP active mode support

2023-09-19

autotools a practitioner's guide to gnu autoconf automake and libtool

pdf, 高清 autotools a practitioner's guide to gnu autoconf automake and libtool

2017-12-26

H.264 and MPEG-4 Video Compression

英文的版, 清晰, 作者:Iain E. G. Richardson

2011-03-01

truth table analysis

自己用python写的 用来分析excel格式的truth table表, 自动copy状态到相应的output.

2013-08-30

面对对象分析和设计Grady+booch

面向对象必读图书 经典图书 Grady booch的经典力作, pdf

2016-02-29

debuging with gdb

debuging with gdb, richard stallman, roland pesch, stan shebs, et al.

2020-04-10

Spec for SI in DVB

英文版 Specification for Service Information (SI) in DVB systems

2011-03-01

unix操作系统设计(中文版)(巴赫)

因为是影印版的,所以字体有些不清楚。 此书适合有一定计算机基础的,想继续深入的朋友

2010-12-13

空空如也

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

TA关注的人

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