Blog | zi's Blog
FFmpeg 许可证合规性

在开发视频播放器时,FFmpeg 是绕不开的选择。它支持几乎所有主流的音视频格式,功能强大。但 FFmpeg 的许可证机制常常让开发者困惑。一开始我以为这就是个简单的开源库,用了也...

为什么要 Fork 两次,解决僵尸进程最优雅的方案

写过 Linux 多进程代码的朋友,大概率都听过一个古怪的技巧:**如果你想启动一个后台任务,最好 fork() 两次。**

如何设置 pyQT5 程序图标

为了自定义 pyQT5 项目图标, 有三处需要替换,分别为:

修改 symbol 文件 signature

当开发 Windows 桌面应用程序时,我们时常需要对程序的崩溃信息进行分析,Windows 提供了 minidump 机制能将程序崩溃状态保存下来进行分析,前提是需要结合对应版本...

当 FFmpeg 遇见 Imgui

Dear Imgui 是一个立即模式的 C++ GUI lLibrary,与其他 GUI 框架不同,它将渲染与框架逻辑分离,用户可以根据自己的需要选择渲染方式,官方支持如下:

网页实时监控视频直播技术 - rtsp 转 websocket

本文讨论的是监控行业的视频直播,这类应用的特点是实时性要求特别高,一般需要在1秒内,这样当用户控制摄像头云台时才能有较好效果。

FFmpeg 使用 Dxva2 硬件加速以及渲染的一种方法

使用 FFmpeg 播放高分辨率视频时,画面渲染效率是影响性能的主要原因,好在 FFmpeg 提供了各种硬件解码 / 加速的方案,可以极大的降低系统负载。

Win10 发送快捷方式到指定文件夹

在 Windows 平台下有不少快速启动工具,可以通过快捷键呼出,然后通过关键字启动指定软件。我之前使用的是 ALMRun,最近发现了另一个工具 uTools。

Python zipfile 文件名编码

问题: 使用 Python3 的内置模块 zipfile 解压 zip 文件时,中文文件名出现乱码

用 Cesium JS 加载建筑 3dTiles

随着现代浏览器的普及,在 WebGIS 应用中,越来越多的场合需要对城市建筑模型进行展示,目前较流行的解决方案有:

MFC Dialog Dynamic Layout 实践

今天接触到一个 MFC Dialog 项目,对于一个 resizeable 的对话框,控件的布局一直是个棘手的问题,由于 MFC 框架较老并且为了保持向前兼容,所以一直没有提供这方...

有关 random 的问题

在开发工程中如果需要生成随机数, 一般是通过 rand 函数, 它可以生成 0 到 RAND\_MAX 范围的一个 , 如果要让 rand 每次生成的随机序列不同, 可以通过 sr...

解决 Vagrant ssh 失败的问题

OpenSSH\_for\_Windows\_7.6p1, LibreSSL 2.6.4

字序对 bit field 的影响

下面是在进行 H264 数据分析时碰到的问题

C++程序设计中的中文编码问题

我在实际开发中经常遇到C++中文编码问题,特别是处理多语言文本文件时,常常出现乱码。这不仅仅是初学者的问题,很多有经验的开发者也会踩坑。

海康 H264 流分析

本文记录通过海康 SDK 从 IPC 获取视频流数据并从中提取 H264 数据的过程 海康 IPC 的视频采用的是 H264 编码并打包成了 PS 流,下面先了解一下相关基本概念

在 VC 2018 下编译 eXosip

eXosip 是 osip 的一个封装,代码简洁易于使用,支持的平台广泛,但编译起来难以一次成功,下面记录一下我今天在 VC2017 环境下的编译过程

windows py 2.7 下安装 nnpy 的过程

nnpy 是 nanomsg 的 python bindings, 在持续更新中, 作者似乎不太关注 windows 平台, 但是 nanomsg 和 cffi 都是支持 wind...

在 VC 2015 下编译 Live555

Live555 是一个经典的 C++ 开源流媒体解决方案, 像诸如 VLC 等软件都采用它实现流媒体播放相关功能, 从 ChangeLog 上看它创建于 2002 年, 并且还在持...

NW.js 中 Nodejs 模块开发

NW.js 是一个基于 Nodejs 和 Chromium 的框架, 可以用 HTML5 和 Javascript 方便的开发桌面应用, 其中 Javascript 中也能使用 N...