从推流到录制:基于RTMP/HLS/FFmpeg的直播录播技术实战
在实际体育赛事直播和录播技术实现中如何将一场实时发生的比赛如切尔西的友谊赛稳定、高清、低延迟地采集、编码、推流并最终生成可供点播的录播文件是一个涉及音视频处理、网络传输和流媒体服务的系统工程。对于开发者、运维工程师或对直播技术感兴趣的技术爱好者而言理解这套流程不仅有助于搭建自己的小型直播系统也能在排查线上直播卡顿、录制失败、音画不同步等问题时快速定位根因。本文将以一场虚构的“切尔西友谊赛”录播项目为背景拆解从信号源到最终点播文件的完整技术链路。我们将重点关注推流与录制环节的核心配置、常见协议如RTMP、HLS、FLV的选择、以及使用主流工具如OBS Studio、FFmpeg、Nginx-rtmp-module进行实操的步骤。通过本文你将掌握一套可复现的直播录制方案并理解其中关键参数对最终画质、流畅度和文件格式的影响。1. 理解直播录制的基本架构与核心概念在开始配置之前需要厘清几个核心概念它们决定了整个系统的技术选型和实现路径。1.1 推流、拉流与录制一场直播的技术生命周期通常包含三个阶段推流Stream Publishing将采集、编码后的音视频数据通过特定协议如RTMP、SRT持续发送到流媒体服务器的过程。执行这个动作的终端称为“推流端”或“客户端”例如OBS Studio、FFmpeg或手机直播APP。流媒体分发Streaming Distribution服务器接收到推流后通常会进行转码、转协议并通过CDN网络分发给大量观众。观众端从服务器或CDN获取流的过程称为“拉流Stream Pulling”。录制Recording在流媒体服务器端或直接在推流端将接收到的连续流数据保存为磁盘文件如MP4、FLV、TS的过程。录制可以在推流的同时进行是生成“录播”文件的关键。对于“切尔西友谊赛”这个场景信号源可能是现场摄像机输出的SDI/HDMI信号通过编码器或装有采集卡的电脑进行推流。我们的技术实现模拟的是后者——使用软件进行推流和录制。1.2 常用流媒体协议简析协议是数据通信的规则不同的协议适用于不同场景。协议全称特点适用场景RTMPReal-Time Messaging Protocol基于TCP延迟低1-3秒Adobe早期推出现多用于推流阶段。推流到流媒体服务器。HLSHTTP Live Streaming基于HTTP将流切分为小的TS文件片段通过M3U8索引文件播放。延迟高10-30秒但兼容性极好。最终用户拉流播放尤其是移动端和Web端。FLVFlash Video文件格式也可作为流协议。延迟较低但需要Flash插件现已淘汰目前多作为录制格式或特定播放器支持。录制文件存储或用于低延迟的HTTP-FLV播放。SRTSecure Reliable Transport专注于安全可靠传输擅长在复杂公网环境下保持稳定延迟可调。高质量、远距离、不稳定网络下的推流。在本文的实践方案中我们将采用RTMP推流 HLS/FLV拉流与录制的经典组合。RTMP负责稳定上传服务器将其转换为HLS和FLV格式供观众播放和录制。1.3 核心工具链介绍OBS Studio开源免费的推流软件提供图形化界面方便进行场景切换、音视频源采集、编码参数设置和推流。FFmpeg音视频处理的“瑞士军刀”命令行工具功能极其强大可用于推流、拉流、转码、录制、格式转换等。Nginx with rtmp-module一个轻量级的流媒体服务器。Nginx作为高性能Web服务器加上rtmp模块后可以接收RTMP推流并转换为HLS或提供HTTP-FLV流同时支持录制功能。2. 环境准备与依赖部署我们将搭建一个本地模拟环境在一台机器上同时运行推流端OBS和流媒体服务器Nginx-rtmp。生产环境中这两者通常部署在不同的服务器上。2.1 流媒体服务器部署Nginx with RTMP Module这里以Linux系统Ubuntu 20.04为例演示编译安装方式。macOS可使用HomebrewWindows可寻找预编译包或使用Docker。首先安装编译依赖sudo apt update sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev下载Nginx和nginx-rtmp-module源码wget http://nginx.org/download/nginx-1.22.1.tar.gz tar -zxvf nginx-1.22.1.tar.gz git clone https://github.com/arut/nginx-rtmp-module.git编译安装Nginx并添加rtmp模块cd nginx-1.22.1 ./configure --with-http_ssl_module --add-module../nginx-rtmp-module make sudo make install默认安装路径为/usr/local/nginx。2.2 配置Nginx RTMP服务器编辑Nginx配置文件/usr/local/nginx/conf/nginx.conf在末尾的http块之外添加rtmp块配置rtmp { server { listen 1935; # RTMP默认端口 chunk_size 4096; application live { # 定义一个名为“live”的应用 live on; record off; # 暂时关闭录制后续开启 # 将流入的RTMP流转为HLS供客户端拉流 hls on; hls_path /tmp/hls; # HLS切片文件存储路径 hls_fragment 3s; # 每个TS切片时长 hls_playlist_length 60s; # HLS列表长度 # 同时提供HTTP-FLV流 exec_publish bash -c echo $name /tmp/stream_active; # 简单记录推流开始 exec_publish_done bash -c rm -f /tmp/stream_active; # 记录推流结束 } application live_rec { # 另一个应用专门用于录制 live on; record all; # 录制所有推流 record_path /tmp/recordings; # 录制文件存储路径 record_unique on; # 文件名添加时间戳防止覆盖 record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 文件后缀格式 # 同样可以开启HLS hls on; hls_path /tmp/hls_rec; hls_fragment 3s; } } }在http块内的server中添加以下配置以便通过HTTP访问HLS切片和播放器测试页location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; # 禁止缓存确保获取最新切片 add_header Access-Control-Allow-Origin *; # 允许跨域便于测试 } location /stat { # RTMP监控页面 rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /path/to/nginx-rtmp-module; # 指向模块源码目录 }创建必要的目录并启动Nginxsudo mkdir -p /tmp/hls /tmp/hls_rec /tmp/recordings sudo /usr/local/nginx/sbin/nginx访问http://你的服务器IP/stat可以查看RTMP流状态。2.3 推流端准备OBS Studio从 OBS Project官网 下载并安装OBS Studio。安装后打开软件需要进行基础设置进入设置-推流。服务选择“自定义”。服务器格式通常为rtmp://你的服务器IP:1935/live或/live_rec用于录制。串流密钥可以任意填写例如chelsea_friendly。完整的推流地址就是rtmp://服务器IP:1935/live/chelsea_friendly。进入设置-输出设置输出模式为“高级”根据你的网络和机器性能调整视频比特率如2500 Kbps、编码器优先硬件编码如NVENC等参数。3. 实现推流与录制两种实战方案3.1 方案一使用OBS推流Nginx服务器端录制这是最常用的方案。OBS负责采集编码推流Nginx在接收流的同时进行录制。启动Nginx服务器确保配置文件中application live_rec的record all;已开启。配置OBS推流服务器rtmp://你的服务器IP:1935/live_rec串流密钥chelsea_20260728开始推流在OBS中点击“开始推流”。此时OBS将视频流推送到Nginx服务器。验证录制查看Nginx的rtmp_stat页面 (http://IP/stat)应能看到活跃的发布者。检查录制目录/tmp/recordings会生成类似chelsea_20260728-2026-07-28-17_00_00.flv的文件。注意record all会录制所有流入live_rec应用的流。如果有多路流都会录制。record_unique on确保了即使流名相同不同时间推流生成的文件也不会被覆盖。3.2 方案二使用FFmpeg直接推流并本地录制如果你需要更灵活的控制或者环境没有图形界面FFmpeg是更好的选择。它可以模拟一个“视频源”进行推流并同时保存本地副本。准备一个视频源文件假设你有一个比赛集锦视频match_highlight.mp4用于模拟。使用FFmpeg命令推流并本地录制ffmpeg -re -i match_highlight.mp4 \ -c:v libx264 -preset veryfast -b:v 2500k -maxrate 2500k -bufsize 5000k \ -c:a aac -b:a 128k \ -f flv rtmp://你的服务器IP:1935/live/chelsea_ffmpeg \ -c:v copy -c:a copy /tmp/local_record_$(date %Y%m%d_%H%M%S).mp4命令解释-re以原始帧率读取输入模拟实时流。-i match_highlight.mp4输入文件。-c:v libx264 ...视频编码参数使用x264软件编码设定码率。-c:a aac ...音频编码参数。-f flv rtmp://...指定输出格式为flv并推流到RTMP服务器。-c:v copy -c:a copy /tmp/local_record_...另一路输出使用流复制不重新编码的方式同时保存一份本地MP4录制文件。这个命令实现了“一源两出”一路推送到远程RTMP服务器一路直接保存到本地。这对于重要直播的本地备份非常有用。4. 关键配置、参数详解与效果验证4.1 编码参数对画质与流畅度的影响在OBS或FFmpeg中编码参数决定了直播的清晰度和对网络带宽的要求。参数含义推荐值/选择影响视频码率 (Bitrate)每秒传输的视频数据量。根据分辨率和帧率设定。1080p30fps建议2500-6000 Kbps。码率越高画质越好但所需网络带宽越大观众端缓冲风险越高。编码预设 (Preset)编码速度与压缩率的权衡。veryfast,faster,medium等。直播常用veryfast或faster。越“快”编码速度越快CPU占用低但压缩率低同等画质下文件更大。越“慢”则相反。关键帧间隔 (Keyframe Interval)完整帧I帧之间的间隔。通常设为帧率的2倍如60帧对应2秒。OBS中常设为2秒。间隔影响 seeking拖动进度条的速度和流切换的延迟。HLS切片也依赖关键帧。音频码率每秒传输的音频数据量。128 Kbps (AAC) 通常已足够。影响音质。过低会导致声音模糊。4.2 HLS切片参数配置Nginx-rtmp-module中HLS相关的参数决定了HLS流的延迟和兼容性。hls_fragment 3s; # 每个.ts切片文件的时长。越小延迟越低但服务器负载稍高。 hls_playlist_length 60s; # .m3u8索引文件中保留的切片总时长。必须大于hls_fragment。 hls_sync 2ms; # 音视频同步阈值。处理音画不同步问题时可以调整。验证HLS流推流开始后在服务器/tmp/hls目录下会生成.m3u8文件和一系列.ts文件。你可以使用VLC播放器打开网络流输入http://你的服务器IP/hls/流名.m3u8如http://192.168.1.100/hls/chelsea_friendly.m3u8进行播放测试。4.3 录制格式与参数record all; # all-录制所有流, manual-手动开始录制 record_path /var/rec; # 存储路径确保Nginx进程有写权限 record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 文件名格式 record_unique on; # 添加时间戳防覆盖 record_interval 30m; # 每30分钟分割一个新文件可选格式选择record_suffix决定了格式。.flv格式兼容性好录制效率高。也可以设置为.mp4但需要注意MP4文件需要在写入完成后才能播放需要配置record_append或使用exec_record_done调用FFmpeg转封装。权限问题最常见的录制失败原因是record_path目录的权限不足。确保运行Nginx的用户如www-data或nobody对该目录有读写权限。5. 常见问题排查与解决方案直播录制过程中遇到的问题往往与配置、网络、权限有关。5.1 OBS推流失败现象可能原因检查与解决连接失败服务器地址/端口错误防火墙阻止Nginx未运行或配置错误。1. 检查 netstat -tlnp推流卡顿或掉帧本地CPU/GPU编码能力不足上传网络带宽不足OBS编码参数设置过高。1. 查看OBS状态栏的“丢帧”提示。2. 降低OBS的输出分辨率和视频码率。3. 尝试使用硬件编码如NVENC、QuickSync。4. 测试本地网络上传速度。绿屏或黑屏视频采集源选择错误显卡驱动问题采集卡兼容性问题。1. 检查OBS“来源”中视频捕获设备是否正确。2. 更新显卡驱动。3. 尝试以管理员身份运行OBS。5.2 Nginx服务器端录制失败现象可能原因检查与解决无录制文件生成record指令未开启record_path路径不存在或权限不足流未推送到正确的application。1. 确认Nginx配置中对应application下record all;或record manual;已设置。2. 检查record_path目录是否存在且Nginx进程用户有写权限 (ls -ld /tmp/recordings)。3. 查看Nginx错误日志 (/usr/local/nginx/logs/error.log)。4. 确认推流地址中的应用名如live_rec与配置匹配。录制文件无法播放录制过程中推流中断导致文件不完整尤其是MP4格式。1. 对于FLV格式一般可播放。对于MP4需要等录制完全结束。考虑使用FLV格式录制或配置exec_record_done调用FFmpeg将FLV转为MP4。HLS流无法播放HLS路径未在http中配置切片未生成跨域问题。1. 检查Nginx配置中location /hls {...}块是否正确。2. 检查/tmp/hls目录下是否有.m3u8和.ts文件生成。3. 浏览器按F12打开开发者工具查看网络请求是否返回403或404错误。5.3 音画不同步这是一个复杂问题可能发生在推流端或服务器端。推流端原因采集源本身音画不同步OBS内音频采样率与视频帧率不匹配。解决检查OBS“音频”设置确保采样率统一通常44.1kHz或48kHz。尝试在“高级”设置中调整“音视频同步偏移”。服务器/转码原因Nginx-rtmp的hls_sync参数或FFmpeg转码时的-async参数设置不当。解决尝试调整hls_sync值如hls_sync 100ms;。如果使用FFmpeg转码可以尝试添加-af aresampleasync1参数。6. 生产环境最佳实践与扩展方向将上述实验方案应用到生产环境需要考虑更多关于稳定性、安全性和可维护性的问题。6.1 安全与访问控制推流鉴权上述配置允许任何人向RTMP地址推流这是不安全的。生产环境应使用推流密钥或Token鉴权。这通常需要修改Nginx-rtmp-module源码或使用更高级的流媒体服务器如SRS、ZLMediaKit它们支持on_publish回调可以请求你的业务服务器验证推流权限。拉流鉴权HLS和FLV拉流地址也应通过时间戳、Token等方式进行保护防止盗链。防火墙策略仅开放必要的端口如1935, 80, 443到公网并将管理界面如/stat限制在内部网络访问。6.2 稳定性与高可用独立服务器流媒体服务器应与Web应用服务器分离避免资源竞争。CDN分发当观众数量庞大时必须使用CDN来分发HLS或FLV流以减轻源站压力并提供更好的观看体验。你需要将流推送到CDN厂商提供的RTMP入口而非自己的服务器。多码率自适应HLS Only为适应不同网络条件的观众可以推流多路不同分辨率和码率的视频流并生成包含多码率信息的master.m3u8文件。这需要在推流端OBS Studio 23.0 支持或服务器端使用FFmpeg转码生成多个变体Variants。录制文件管理录制文件会占用大量磁盘空间。需要制定清理策略例如使用record_max_size和record_max_frames限制单个文件大小或配合cron定时任务删除过期文件。6.3 监控与日志Nginx状态页充分利用/stat页面监控活跃流、客户端数量、带宽等信息。Nginx日志RTMP模块有独立的访问日志需要在rtmp { server { ... } }块中配置access_log。分析日志有助于排查问题。进程守护使用systemd或supervisor来守护Nginx进程确保异常退出后能自动重启。业务状态上报在exec_publish和exec_publish_done中触发脚本将推流开始/结束事件上报到你的业务监控系统。6.4 扩展方向更专业的工具链流媒体服务器考虑使用SRS、ZLMediaKit或Monibuca。它们是国产开源方案对RTMP、HLS、HTTP-FLV、WebRTC等协议支持更全面文档和社区更活跃且内置了丰富的鉴权、集群、录制管理功能。媒体处理服务对于需要复杂转码、水印、截图、内容审核的场景可以集成FFmpeg作为后台处理服务或使用云服务商的媒体处理产品。对象存储将录制完成的文件自动上传到AWS S3、阿里云OSS或腾讯云COS等对象存储服务实现持久化、高可用和便捷分发。通过从基础推流录制到生产级考量的完整梳理你应该能够根据“切尔西友谊赛”这样的具体场景设计并实施一套符合需求的直播录播技术方案。核心在于理解数据从采集到分发的每一个环节并针对性地进行配置、优化和排错。

相关新闻

从玩家到创造者:Phigros自制谱生态与AT15制作全指南

从玩家到创造者:Phigros自制谱生态与AT15制作全指南

如果你是一位音游爱好者,或者对《Phigros》这款游戏有所了解,最近可能会在B站或一些社区里刷到一些“自制谱”视频,标题里常常带着“AT Lv.15”甚至“本人上传”这样的字眼。这背后其实是一个让很多玩家既兴奋又困惑的现象:一个由…

2026/8/14 2:13:13 阅读更多 →
LangChain JS 实战:温度参数、提示词工程与异步调用优化 AI 写作

LangChain JS 实战:温度参数、提示词工程与异步调用优化 AI 写作

1. 从“AI 写手”到“可控的创作伙伴”:一次 LangChain JS 的深度实验最近在折腾一个内容生成的小项目,目标是让 AI 帮我写一些特定风格的文案,比如科技新闻稿或者产品功能介绍。一开始,我直接调用了大模型的 API,扔给…

2026/8/14 2:12:13 阅读更多 →
Kimi OpenClaw+Skills重塑跨境电商工作流:从自动化到智能决策

Kimi OpenClaw+Skills重塑跨境电商工作流:从自动化到智能决策

1. 项目概述:当AI开始“抢”跨境电商的饭碗最近圈子里聊得最凶的,莫过于一个听起来有点耸人听闻的预测:“90%的跨境电商工作流会被Kimi OpenClawSkills替代”。作为一个在跨境电商行业摸爬滚打了十来年的老运营,我第一反应是“又来…

2026/8/14 2:12:13 阅读更多 →

最新新闻

工业自动化流程设计新范式:从被动执行到主动进攻的智能控制

工业自动化流程设计新范式:从被动执行到主动进攻的智能控制

1. 项目概述:从“进攻”视角重构设备动作流程在工业自动化、机器人控制乃至智能家居领域,我们常常听到“流程”、“时序”、“控制逻辑”这些词。大多数文档和教程都习惯于从“设计者”或“维护者”的视角,平铺直叙地描述设备应该先做什么、再…

2026/8/14 3:59:59 阅读更多 →
11_DataFrame更改操作

11_DataFrame更改操作

设置行索引 创建DataFrame时如果不指定行索引,pandas会自动添加从0开始的索引。通过set_index()设置行索引 - inplace 是否进行原地操作, - 如果值是True,直接在原有DataFrame上进行修改, - 如果值是False,返回的是新…

2026/8/14 3:59:59 阅读更多 →
CRAG架构解析:基于置信度路由的检索增强生成技术

CRAG架构解析:基于置信度路由的检索增强生成技术

1. 项目概述:从“幻觉”到“置信度”的检索增强之路 在构建基于大语言模型(LLM)的应用时,我们常常面临一个核心矛盾:模型本身拥有强大的生成与推理能力,但其知识库受限于训练数据,存在“幻觉”&…

2026/8/14 3:59:59 阅读更多 →
从0到1落地电商网站建设流程图全流程解析与避坑指南

从0到1落地电商网站建设流程图全流程解析与避坑指南

本文关键词:电商网站建设流程图做电商的朋友可能都有过这样的经历:看着隔壁老王卖得风生水起,心里那个急啊,立马一拍大腿:“我也要做!”然后兴致勃勃地去联系外包公司,或者自己招了个技术团队,结果半年下来,网站上线了,功能也有了,但流量就是进不来,转化率更是惨不…

2026/8/14 3:59:59 阅读更多 →
从Claude Code源码看AI Agent架构:核心引擎与Harness层设计解析

从Claude Code源码看AI Agent架构:核心引擎与Harness层设计解析

1. 项目概述:从一次“意外”看AI Agent的工程化内核最近,一个名为“Claude Code”的AI Agent项目的源码在开发者社区中引起了不小的波澜。这并非一次官方的开源发布,而更像是一次意外的“泄漏”。但正是这次意外,为我们这些长期在…

2026/8/14 3:59:59 阅读更多 →
技术团队中三类让管理者心累的员工类型及改进指南

技术团队中三类让管理者心累的员工类型及改进指南

最近和几位技术团队的管理朋友聊天,发现一个挺有意思的现象:大家吐槽的“问题员工”类型,高度趋同。这些员工往往技术能力不差,甚至在某些方面很突出,但就是让管理者感到“心累”,甚至成为团队协作的“隐形…

2026/8/14 3:58:59 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →