<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SimpleForest的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SimpleForest</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SimpleForest]]></copyright><item><title><![CDATA[最简单的天气查询agent]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/160431817</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/160431817</guid><author>SimpleForest</author><pubDate>Thu, 23 Apr 2026 10:23:29 +0800</pubDate><description><![CDATA[摘要：本文介绍如何使用Ollama框架和qwen3:0.6b模型构建一个基础天气查询Agent。首先安装Ollama服务并下载模型，然后通过Python程序实现以下功能：1)调用Open-Meteo API获取城市坐标和天气数据；2)利用Ollama模型解析用户自然语言查询；3)将API返回的天气数据转换为友好回复。该案例在Ubuntu系统完成，提供完整的交互式命令行界面，支持中文城市查询和天气信息展示。]]></description><category></category></item><item><title><![CDATA[解决ubuntu下搜狗输入法在浏览器不可用的问题]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/151859815</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/151859815</guid><author>SimpleForest</author><pubDate>Fri, 19 Sep 2025 11:14:21 +0800</pubDate><description><![CDATA[1、ubuntu安装完搜狗输入后是正常的，其他软件和浏览器都可以使用。执行sudo apt autoremove后，浏览器中无法调取搜狗输入法。作用是让 fcitx5 可以在基于 GTK4 图形库的应用程序里正常工作。2、其他软件可以调起搜狗输入法，浏览器无法调起搜狗输入法。]]></description><category></category></item><item><title><![CDATA[常见视频编码格式对比]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/150992374</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/150992374</guid><author>SimpleForest</author><pubDate>Fri, 29 Aug 2025 18:03:08 +0800</pubDate><description><![CDATA[原始视频文件巨大无比（例如未经压缩的1080p视频每分钟可能超过10GB），无法存储和传输。编码器（Encoder）通过复杂的算法去除视频中的冗余信息，将其压缩成小巧的文件。播放时，解码器（Decoder）再将其解压还原进行播放。在选择编码器后（如用x264或x265编码器），你还会遇到“预设”选项（如。视频编码（Video Encoding）的核心目的是。]]></description><category></category></item><item><title><![CDATA[常见视频封装格式对比]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/150992167</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/150992167</guid><author>SimpleForest</author><pubDate>Fri, 29 Aug 2025 17:55:40 +0800</pubDate><description><![CDATA[编码格式像是将衣服（视频数据）用真空压缩袋（编码）压缩变小；封装格式像是行李箱（容器），可以把压缩好的衣服、裤子（音频）、鞋子（字幕）整齐地放进去，方便携带和运输。]]></description><category></category></item><item><title><![CDATA[webrtc网页一对一通话]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/150264153</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/150264153</guid><author>SimpleForest</author><pubDate>Tue, 12 Aug 2025 10:08:44 +0800</pubDate><description><![CDATA[基于flutter-webrtc-server做的更改，只使用网页实现语音和视频一对一通话，不支持多对多。]]></description><category></category></item><item><title><![CDATA[C++ 中的 enable_shared_from_this 详解]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/150103821</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/150103821</guid><author>SimpleForest</author><pubDate>Sat, 09 Aug 2025 10:21:06 +0800</pubDate><description><![CDATA[是 C++ 标准库中的一个模板类，用于解决在类的成员函数中需要获取指向自身的。是线程安全的，但前提是对象的生命周期管理（即所有相关的。管理时，如果你想在对象的成员函数中获得一个指向自身的。是一个强大的工具，但需要正确使用以避免潜在的问题。管理同一个对象，从而造成重复释放的问题。的构造函数会检测对象是否继承自。，如果是，则初始化内部的。提供了安全的解决方案。操作）也是线程安全的。如果你不能或不想继承。]]></description><category></category></item><item><title><![CDATA[C++ 中的 enable_shared_from_this 详解]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/150103788</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/150103788</guid><author>SimpleForest</author><pubDate>Sat, 09 Aug 2025 10:19:02 +0800</pubDate><description><![CDATA[enable_shared_from_this` 内部维护了一个 `weak_ptr`，当对象被 `shared_ptr` 管理时，`shared_ptr` 的构造函数会检测对象是否继承自 `enable_shared_from_this`，如果是，则初始化内部的 `weak_ptr`。`shared_from_this()` 实际上是通过这个 `weak_ptr` 来创建一个新的 `shared_ptr`。# C++ 中的 `enable_shared_from_this` 详解。]]></description><category></category></item><item><title><![CDATA[深入分析linux内核源代码]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/149482921</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/149482921</guid><author>SimpleForest</author><pubDate>Sun, 20 Jul 2025 14:49:38 +0800</pubDate><description><![CDATA[链接: https://pan.baidu.com/s/1NgOa0gjZRkAoteS4aSq6BQ?pwd=wvnm 提取码: wvnm。深入分析linux内核源代码，本书是陈莉君教授编写，原网站是分散的多个pdf文件，我合并成了一个。]]></description><category></category></item><item><title><![CDATA[ubuntu 根目录空间不足]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/149085315</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/149085315</guid><author>SimpleForest</author><pubDate>Thu, 03 Jul 2025 07:28:12 +0800</pubDate><description><![CDATA[一开始是把/usr目录整个放到/home目录（/home目录空间比较大），根目录放一个软连接。这种情况下，系统启动时有问题的。后来把/usr/local目录放到了/home目录，/usr/local 设置对应的软连接。根目录 一下就多出来4GB空间。可以作为解决该问题的一种方法。安装系统的时候，根目录分配了20GB，随着时间的推移，出现了根目录空间不足的问题。查看了一下，发现/usr 目录占用了13GB，没有选择扩充空间的办法，而是选择了软连接的办法。]]></description><category></category></item><item><title><![CDATA[ubuntu清理垃圾]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/148529207</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/148529207</guid><author>SimpleForest</author><pubDate>Mon, 09 Jun 2025 10:34:39 +0800</pubDate><description><![CDATA[经常自己查看一下，清理一下。上面的命令查看$HOME一级目录大小，发现 .cache 有26GB，.local 有几个GB，.config 也有900MB，完全不可理解，于是开始了清理之路。.cache 是缓存目录，特别是下面 有一个vscode-cpptools目录有10GB，查了一下是vscode的缓存，可以删除。$HOME/.local/share/Trash/ 是回收站的目录，也会占用空间，及时清空。查看.config文件，发现下面有一些以前安装过的软件的配置文件，现在已经不用了。]]></description><category></category></item><item><title><![CDATA[apt 与 dpkg 之间的关系]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/148528932</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/148528932</guid><author>SimpleForest</author><pubDate>Mon, 09 Jun 2025 10:16:44 +0800</pubDate><description><![CDATA[想安装/删除单个.deb文件，或者需要精确控制dpkg的行为时，用dpkg。日常绝大多数的软件包管理操作（安装、删除、升级、搜索），都应该使用apt，因为它更智能、更方便，能自动处理依赖关系。]]></description><category></category></item><item><title><![CDATA[ubuntu 系统分区注意事项]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/148515057</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/148515057</guid><author>SimpleForest</author><pubDate>Sun, 08 Jun 2025 17:02:34 +0800</pubDate><description><![CDATA[需要注意一点，如果不对 /usr 进行单独分区，/usr 占用的是 / 目录的空间。平时 用apt 或者 dpkg 安装的文件 是在/usr 目录下的，也就是占用 / 空间下。长期使用后，可能占用很多的空间。作者给/ 分配了 20GB 空间，开始觉得挺多的。长时间使用后，经常报 /目录空间不足，看了一下 /usr 目录占用了 13GB 还要多。所以 安装 系统的时候，需要注意一下。安装ubuntu系统时，需要进行分区，手动分区时，有一点需要注意。一开始我也没有注意，长时间使用后才发现的问题。]]></description><category></category></item><item><title><![CDATA[关于foobar2000插件的一点理解]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/146352690</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/146352690</guid><author>SimpleForest</author><pubDate>Tue, 18 Mar 2025 21:22:01 +0800</pubDate><description><![CDATA[其实这是软件开发中常用的套路，很多软件厂商会把自己私有的一些文件改个后缀，或者把自己不想让别人看到的数据文件打包，后缀是厂商自己定义的。foobar2000 里面有很多插件，其实这些插件本身是压缩包，把插件的后缀改为.zip，然后解压，可以看到里面的文件。exe 文件是用来注册dll的。]]></description><category></category></item><item><title><![CDATA[ffmpeg 添加毫秒时间戳]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/146263146</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/146263146</guid><author>SimpleForest</author><pubDate>Fri, 14 Mar 2025 17:51:28 +0800</pubDate><description><![CDATA[网上有好多添加时间水印的，默认是到秒，而我需要到毫秒，查了一下，没有找到更好的方案，下面是自己实现的方案，可以显示到毫秒。如果有更好的方案，欢迎讨论。]]></description><category></category></item><item><title><![CDATA[OBS推WebRTC流，并添加毫秒级时间显示]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/146241254</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/146241254</guid><author>SimpleForest</author><pubDate>Thu, 13 Mar 2025 20:48:48 +0800</pubDate><description><![CDATA[主要改了这句，这句是设置定时器的周期，原来是1000，也就是1秒触发一次。这里可以看出，该插件是定时获取系统时间，然后添加到视频中。这里可以采取截屏的方式，多截几次，大概可以看出延迟有多少。这种方式可以粗略测试延迟，如果有更精确的方法，欢迎讨论。采用一台电脑，流媒体服务器为SRS，相关配置比较简单，可以自行搜索。主要是这句，下面的代码没有去掉，方便需要自行修改的同学，获取日期等信息。]]></description><category></category></item><item><title><![CDATA[大模型基础pdf]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/145804847</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/145804847</guid><author>SimpleForest</author><pubDate>Sun, 23 Feb 2025 08:41:16 +0800</pubDate><description><![CDATA[链接: https://pan.baidu.com/s/1TvKavVGkwqW7IVGON76dsQ?pwd=7j3e 提取码: 7j3e。]]></description><category></category></item><item><title><![CDATA[关于视频去水印的一点尝试]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/145631656</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/145631656</guid><author>SimpleForest</author><pubDate>Fri, 14 Feb 2025 13:47:38 +0800</pubDate><description><![CDATA[用从原图2中提取的水印位置的图片，替换原图1 中的水印位置。（2）有的使用对象识别的方式，理论上来说，这种方式是可行的。这种方式从原理上来讲是存在问题的，可以保证画面整体颜色看起来差不多，但是局部看画面是不连续的。对于水印周围是纯色的情况，这种方式是没有问题的。原理也很简单，一般视频就是连续变化的图片，只要找到两张图片水印区域不重叠，就可以进行替换。delogo 滤镜的原理是通过插值算法，用水印周围的像素填充水印的位置。提取水印位置，可以看到原图1和原图2，在水印处是没有重叠的。3. 同系列图片替换。]]></description><category></category></item><item><title><![CDATA[FFmpeg常用命令]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/145618251</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/145618251</guid><author>SimpleForest</author><pubDate>Thu, 13 Feb 2025 19:05:52 +0800</pubDate><description><![CDATA[该命令表示通过滤镜去除水印，水印的位置为(x，y)，尺寸为wxh。-c:v copy 表示复制视频，如果不加该选项，将进行重新编码，速度较慢。-c:a copy 表示复制视频，如果不加该选项，将进行重新编码，速度较慢。在视频上添加"Logo"文字水印，字体颜色为白色，字体大小为24，位于(100，100)处。-c copy 表示直接复制，如果不加该选项，将进行重新编码，速度较慢。测试过程中，默认的帧率是25，像素格式是yuv444p。上面的命令表示，将图片转为视频，帧率为30，像素格式为yuv420p。]]></description><category></category></item><item><title><![CDATA[FFmpeg Audio options]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/145585416</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/145585416</guid><author>SimpleForest</author><pubDate>Wed, 12 Feb 2025 09:52:04 +0800</pubDate><description><![CDATA[q:a 2 设置了音频质量，其中数字 2 代表质量级别（通常范围是 0 到 5，或者根据不同的编解码器有不同的范围）。对于输入流，这个选项只对音频抓取设备和原始解复用器有意义，并且会映射到相应的解复用器选项。对于输入流，这个选项只对音频抓取设备和原始解复用器有意义，并映射到相应的解复用器选项。作为输出选项，禁用音频录制，即禁止任何音频流的自动选择或映射。设置输出音频帧的数量。这是 -filter:a 的别名，请参阅 -filter 选项。设置音频编解码器，是-codec:a 的别名。]]></description><category></category></item><item><title><![CDATA[FFmpeg Video options]]></title><link>https://blog.youkuaiyun.com/SimpleForest/article/details/145584722</link><guid>https://blog.youkuaiyun.com/SimpleForest/article/details/145584722</guid><author>SimpleForest</author><pubDate>Wed, 12 Feb 2025 09:25:37 +0800</pubDate><description><![CDATA[aspect 可以是一个浮点数字符串，或者形如 num:den 的字符串，其中 num 和 den 分别是宽高比的分子和分母。如果与 -vcodec copy 一起使用，它将影响容器级别的宽高比存储，但不会影响已编码帧中存储的宽高比（如果存在的话）。作为输出选项，禁用视频录制，即禁止任何视频流的自动选择或映射。表示输出视频比特率为1Mbps，音频比特率为128kbps。表示剪裁起始点为(x, y) 宽为为，高为h的视频。表示设置输出视频宽高比为16:9。表示输出视频帧率为30帧/秒。设置帧率(rate)]]></description><category></category></item></channel></rss>