<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[秦城季的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_38117599</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_38117599]]></copyright><item><title><![CDATA[华为创新赛获奖复盘：95%代码由AI生成，为何还能获奖？鸿蒙AI开发流程全开源了！！]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/158417838</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/158417838</guid><author>github_38117599</author><pubDate>Thu, 26 Feb 2026 08:59:02 +0800</pubDate><description><![CDATA[智伴》不仅仅是一个App，它是专为家庭和孩子打造的原生鸿蒙 AI 智能伙伴。它集成了AI视觉、AI语音、AI认知三大核心能力，将手机变成了一个能看、能听、能陪玩的超级机器人。]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：玩家总喊“打中了没反应”？揭秘我们独创的“时间回溯”算法如何拯救体感游戏体验]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/158351904</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/158351904</guid><author>github_38117599</author><pubDate>Wed, 25 Feb 2026 07:00:00 +0800</pubDate><description><![CDATA[时间回溯”算法是网络游戏（如 FPS 射击游戏）中常用的“延迟补偿”技术，我们将其创新性地应用到了单机体感游戏中。开发 AI 应用时，不仅要关注 AI 模型的准确率，更要关注工程化落地中的系统性问题（如延迟、同步）。只有解决了这些细节，才能将 AI 能力转化为真正的用户体验。至此，《智伴》的核心技术——语音和视觉部分已经介绍完毕。接下来的两篇，我们将换个角度，聊聊作为独立开发者，如何利用AI Coding工具，一个人活成一支队伍。]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：丢掉手柄！用 HarmonyOS 骨骼检测 (Skeleton Detection) 徒手搓一个体感游戏]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/157930891</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/157930891</guid><author>github_38117599</author><pubDate>Tue, 10 Feb 2026 08:57:37 +0800</pubDate><description><![CDATA[是 HarmonyOS 提供的端侧人体姿态估计能力。给定一张图片，它能返回人体关键点的坐标（如左手腕、右脚踝、鼻子等）以及置信度。为什么它适合做体感游戏？无需穿戴设备：不需要手柄或传感器，摄像头就是控制器。全身交互：不仅能识别手部动作，还能识别蹲下、跳跃、踢腿等全身动作。低延迟：端侧 NPU 加速，毫秒级响应。是《智伴》体感游戏的地基。它屏蔽了底层相机的复杂性（分辨率、旋转、格式），向游戏逻辑层输出了标准化、坐标系一致的骨骼数据。有了这个精准的“输入设备”，接下来就是游戏设计的舞台了。]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：把手机变成“AI 哨兵”，Core Vision 实时物体检测开发实战（附危险品预警源码）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/157799168</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/157799168</guid><author>github_38117599</author><pubDate>Fri, 06 Feb 2026 08:54:11 +0800</pubDate><description><![CDATA[是 HarmonyOS 提供的一项端侧 AI 能力，它能从图像中识别出 80 多种常见物体（支持 15 类标签输出），包括人、猫、狗、植物等。对于“距离监测”，我们并不需要测量精确的物理距离（如 30cm），而是通过**“人体/人脸在画面中的占比”**来估算相对距离。通过设定一个阈值，当 BoundingBox 面积超过画面一定比例时，即可判定为“距离过近”。我们将深入 ，解析这一功能的实现。
3. 数据流转：从 Camera 到 AI
这是最关键的一步。我们需要将相机输出的  对象转换为 AI 引擎可接受]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：告别“傻瓜式”问答，基于 Core Speech Kit 打造媲美真人的全双工语音交互]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/157684412</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/157684412</guid><author>github_38117599</author><pubDate>Tue, 03 Feb 2026 09:08:23 +0800</pubDate><description><![CDATA[通过，《智伴》实现了高度定制化的语音交互体验。TTS 为游戏注入了活力，ASR 让操作变得更加直观。这些原子化的能力，让开发者可以像搭积木一样，自由构建出各种充满想象力的语音应用。解决了“听”和“说”的问题，接下来我们将进入《智伴》最硬核的部分——视觉智能。下一篇，我们将揭秘如何利用实现“智能看护”。]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：不仅是 TTS，用 HarmonyOS Speech Kit 让你的应用秒变“哄娃神器”]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/157684345</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/157684345</guid><author>github_38117599</author><pubDate>Tue, 03 Feb 2026 09:05:18 +0800</pubDate><description><![CDATA[通过TextReader，《智伴》仅用不到 100 行核心代码，就实现了一个功能完备、体验一致的古诗朗读功能。它不仅节省了开发时间，更重要的是，它利用系统级能力保证了音频播放的稳定性和流畅性。对于不需要复杂 UI 定制的朗读场景，TextReader 绝对是 HarmonyOS 开发者的首选。下一篇，我们将深入更底层的，看看如何实现游戏中的实时语音反馈和指令识别。]]></description><category></category></item><item><title><![CDATA[华为创新赛获奖复盘：如何用纯端侧 AI 打造一款“有温度”的 HarmonyOS Next 应用？]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/157430003</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/157430003</guid><author>github_38117599</author><pubDate>Tue, 27 Jan 2026 12:26:14 +0800</pubDate><description><![CDATA[摘要： 华为创新赛获奖作品《智伴》是一款基于HarmonyOS Next的纯端侧AI儿童应用，主打单机运行、隐私安全和全场景陪伴。该应用通过本地化AI技术（如语音识别TTS/ASR、骨骼检测、目标识别）实现了离线语音交互、体感游戏和视觉看护功能，无需网络连接即可保障儿童数据安全。其模块化架构分为UI交互层、业务逻辑层和原子能力层，核心技术采用鸿蒙原生AI套件（Core Speech/Vision Kit）和SQLite离线存储。项目验证了端侧AI在隐私保护与场景适应性上的优势，为HarmonyOS生态开发提]]></description><category></category></item><item><title><![CDATA[FFmpeg添加字幕的详细操作]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/129976196</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/129976196</guid><author>github_38117599</author><pubDate>Wed, 05 Apr 2023 20:20:56 +0800</pubDate><description><![CDATA[在视频中添加字幕可以使视频更具可读性，并为观众提供更好的观看体验，这在多语种内容中尤为重要。FFmpeg是一个流行的开源视频处理工具，它可以被用来给视频添加字幕。本文将介绍FFmpeg集成libass的编译流程，介绍SRT和ASS字幕格式及其参数，如何使用FFmpeg向视频添加硬字幕和软字幕，并通过示例演示如何生成单一字幕和多项字幕。

而本文最后实现的效果为：默认中英文字幕，可选英文字幕的软字幕的实现。]]></description><category></category></item><item><title><![CDATA[重磅音视频开发资料库！！！]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/129854564</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/129854564</guid><author>github_38117599</author><pubDate>Thu, 30 Mar 2023 11:58:01 +0800</pubDate><description><![CDATA[这里整理有着丰富的音视频开发的学习资源、开发工具、优秀书籍、教程和开源项目，旨在帮助开发者和爱好者更好地学习、实践和工作。]]></description><category></category></item><item><title><![CDATA[FFmpeg 简单实现转码]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112970323</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112970323</guid><author>github_38117599</author><pubDate>Thu, 21 Jan 2021 19:35:25 +0800</pubDate><description><![CDATA[首发地址，会更错
本文汇总前面几篇文章，把所有流程合并到一块，简单实现转码的流程。其中有些异常不做处理。
转码原理
先看雷神的一张图：

上图描述的很明白，上完图发现已经不需要语言描述了[Dog]。 但还是画个来说明一下这块之间的联系：

其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
代码实现
/**
 * @author 秦城季
 * @email xhunmon@126.com
 * @Blog https://qincji.gitee]]></description><category></category></item><item><title><![CDATA[FFmpeg Encode（编码）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112794275</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112794275</guid><author>github_38117599</author><pubDate>Mon, 18 Jan 2021 20:31:40 +0800</pubDate><description><![CDATA[首发地址，会更错
本文来自官方例子doc/examples/encode_audio.c 和 doc/examples/encode_video.c。
FFmpeg编码流程

其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
官方例子【Audio】
/**
 * @author 秦城季
 * @email xhunmon@126.com
 * @Blog https://qincji.gitee.io
 * @date 2021/01/07
 ]]></description><category></category></item><item><title><![CDATA[FFmpeg Decode（解码）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748631</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748631</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:48:47 +0800</pubDate><description><![CDATA[首发地址，会更错
本文来自官方例子doc/examples/decode_audio.c 和 doc/examples/decode_video.c。
FFmpeg解码流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wB37NhkP-1610869697159)(11_decode/decode-process.png)]
其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
官方例子【Audio】
/**
 *]]></description><category></category></item><item><title><![CDATA[FFmpeg Remuxing（重新封装）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748567</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748567</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:47:16 +0800</pubDate><description><![CDATA[首发地址，会更错
本文来自官方例子doc/examples/remuxing.c 。
FFmpeg解封装流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdFwzDbO-1610869624110)(10_remuxing/remuxing-process.png)]
其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
重新封装的原理就是把输入文件 解封装 之后，再进行 封装 输出到新的文件中。
官方例子
/*]]></description><category></category></item><item><title><![CDATA[FFmpeg Muxing（封装）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748469</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748469</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:45:55 +0800</pubDate><description><![CDATA[首发地址，会更错
本文主要参考雷神的最简单的基于FFmpeg的封装格式处理：视音频复用器（muxer） 与官方例子doc/examples/muxing.c 。
FFmpeg解封装流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZ7YlCag-1610869529867)(09_muxing/muxing-process.png)]
其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
以上步骤主要方法的简单说]]></description><category></category></item><item><title><![CDATA[FFmpeg Demuxing（解封装）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748333</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748333</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:44:27 +0800</pubDate><description><![CDATA[首发地址，会更错
FFmpeg解封装流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3sthCn5-1610869455774)(08_demuxing/demuxing-process.png)]
其中，AVFormatContext、AVPacket等重要的结构体请看：FFmpeg重要结构体（转自雷神） 。
（1）avformat_open_input
创建并初始化AVFormatContext结构体，并把输入文件信息赋值到AVFormatContext中。
（2）]]></description><category></category></item><item><title><![CDATA[手撕FLV协议]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748229</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748229</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:42:44 +0800</pubDate><description><![CDATA[首发地址，会更错
实现效果
纯代码实现分离FLV音视频流，并组装成AAC和H264文件，最后能正常播放。注：本文只对有AAC和H264格式音视频流组成的flv进行分离。
FLV协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyU21eaj-1610869332555)(07_flv/flv-pr.jpg)]
注：脚本部分本文未使用，可前往这查看。
实现代码
代码注释已经很详细了，其实就是对照协议表进行数据解析，其中：

(1) H264协议请看直播推流全过程：视频编码之]]></description><category></category></item><item><title><![CDATA[FFmpeg重要结构体（转自雷神）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748155</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748155</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:41:25 +0800</pubDate><description><![CDATA[首发地址，会更错
本文主要整合FFMPEG中最关键的结构体之间的关系 系列文章，以便于后面学习以及资料的查阅。
结构体间联系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfJn4l60-1610869259427)(06_struct/struct-relationship.jpeg)]
a)解协议（http,rtsp,rtmp,mms）
AVIOContext，URLProtocol，URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储]]></description><category></category></item><item><title><![CDATA[使用Clion阅读FFmpeg源码（支持跳转）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112748073</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112748073</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:39:58 +0800</pubDate><description><![CDATA[首发地址，会更错
前言
本方案仅仅适用于阅读FFmpeg，配置方式及其简单，能支持方法间的跳转，但由于配置原因部分无法识别或跳转，介意者勿入！！
方案一（简单）
此方案非常简单，能阅读绝大部分源码了，但仍会缺失一些头文件，导致无法小小部分无法查阅。
步骤1
在Clion新建c++项目项目File-&gt;New Project-&gt;Create，如下图：
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6w0Zhdv-1610869186665)(05_source/so]]></description><category></category></item><item><title><![CDATA[FFmpeg导入到Clion（MacOS）]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112747987</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112747987</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:38:24 +0800</pubDate><description><![CDATA[首发地址，会更错
继如何编译FFmpeg后，本章也是基于前面来讲解如何把编译后的库文件移入到Clion。
在编译ffmpeg前，有一点需要提前说明的，Mac系统并不支持链接静态库，详细请看初步认识c/c++编译这篇文章。针对于平台的差异性，CLion工具在Mac系统中使用CMakelist.txt进行交叉编译并不友好，我试过集成Android平台的ffmpeg，最终以失败而告终，主要报错原因是：无法指向NDK中的 ld 链接器（要是哪位朋友尝试编译通过还望告知）。所以后续如果是Android项目还是老老实实]]></description><category></category></item><item><title><![CDATA[编译ffmpeg4.2.2]]></title><link>https://blog.youkuaiyun.com/github_38117599/article/details/112747857</link><guid>https://blog.youkuaiyun.com/github_38117599/article/details/112747857</guid><author>github_38117599</author><pubDate>Sun, 17 Jan 2021 15:36:32 +0800</pubDate><description><![CDATA[首发地址，会更错
前言
在编译FFmpeg之前，我们得先知道FFmpeg包含了那些内容（组件），我们应该要如何查看并选择？这里我们就简单来说说FFmpeg编译的过程，以及集成x264，编译android平台所需要的动态库等。（这里的测试使用的是Mac系统）
FFmpeg编译流程
编译过程主要分为两步（下图）：

(1)configure：通过configure --help查看我们所能选择的配置。前往查看configure配置选项注释。这一步后会生成许多Makefile编译所需要的东西。其中在 ffbuil]]></description><category></category></item></channel></rss>