NAS硬解,硬币的两面,我会牺牲什么
iN经常在后台看到不少读者兴冲冲地发来配置单问:“iN,我打算组一台家用NAS,是不是必须加钱上带Intel核显的CPU,或者在机箱里塞一张刀卡做硬解?”
问的人实在太多了,甚至很多人把“能不能硬解”当成了衡量一台NAS及不及格的唯一黄金标准。看到大家被各种带货文和论坛帖子搞得这么焦虑,iN索性不再空对空地讲大道理,直接拉出手头这台机器随手跑了一组对照测试,把全部原始数据和现象摊开在桌面上,咱们拿客观事实说话。
测试的所有现场记录、数据表和脚本,iN都规整地保存在测试目录 video-benchmark-20261002 里的 转码实测报告 report.md 和原始数据集 results.json 中,有需求的可以找iN来要。但在细看数据之前,iN想先带大家把脑子里的逻辑理清楚:为什么好端端的,大家会陷在“NAS必须硬解”的执念里不可自拔?
很多数码伪需求的诞生,都是因为大家习惯用十年前的陈旧老药方,来医治今天根本不存在的假毛病。
十年前大家为什么对服务端转码趋之若鹜?那时候家里路由器很多还是百兆网口,外网ADSL宽带上传往往只有几百KB/s,而且手里的手机、机顶盒性能弱得可怜,播放稍高规格的1080p原片立刻卡成幻灯片,服务端不把码率压扁、把分辨率降下来,根本没办法看。
但退回来看今天,你家里的局域网早就是千兆甚至2.5G,Wi-Fi 6和Wi-Fi 7满屋跑;你手上的iPhone、iPad、两三百块的电视盒子,哪一个芯片不能硬解4K HDR和HEVC?在绝大多数正常家庭场景下,播放视频最健康也最理性的模式永远是原画直通(Direct Play)——NAS老老实实做它网络附加存储的本职,读盘、发包,解码全丢给终端芯片,画面毫无二次压缩损耗,NAS整机负载无限趋近于零。
可很多营销宣传硬是把这种低频甚至虚构的需求炒成了“刚需”。于是很多人陷入了典型的消费主义陷阱:为了给NAS强行安上硬解能力,不惜加价买特定型号的带显处理器,或者硬给机箱塞进一张独立显卡,额外承担十几瓦的常年待机电费,还要在PVE或ESXi里折腾得焦头烂额。然而,普通家庭用户一个星期能看几回电影?而且一般家庭用户看电影的时候能开几个客户端?真正的使用环境大多数就是在平时99%时间都在待机的极低播放需求下,大家花了真金白银折腾来的硬件,到底能换来什么?
为了彻底看清这枚硬币的两面,iN就拿手头这台平时跑服务的现代小主机(AMD Ryzen 7 8745H,16线程CPU,集成Radeon 780M显卡,运行FFmpeg 6.1.1)随手跑了一轮基准测试。测试截取了120秒的经典《Big Buck Bunny》片段,统一按1280×720、25fps、目标码率1200kbps(maxrate 1440k,bufsize 2400k)、无B帧的典型流媒体外网推流规格,对比CPU软件编码(libx264 veryfast zerolatency)与GPU硬件编码(h264_vaapi VBR)。

抛开所有主观滤镜,咱们先看这组按播放源速率推进(模拟真实外网推流)的实测数据:

只看表面,硬解似乎赢了:进程占用的单核CPU从37.78%降到了13.15%,APU功耗读数也降了2.5瓦。但在系统架构层面,这不过是一个数字游戏。放在一台16线程的现代多核主机上,CPU软解消耗的不过是整机 2.36% 的算力,硬解只是把它抹平到了 0.82%。从 gpu_live.csv 的能耗采样来看,省下的功率不过2.5瓦左右。你一个月真正在外网看视频的时间满打满算也就两三个小时,为了在这两三个小时里省下这点微不足道的负载和两分钱电费,你额外砸在显卡和硬件上的几百上千块钱,算过投资回报比吗?

如果只是“省得不多”倒也罢了,更让人哭笑不得的是硬币的反面——你在低播放需求下不仅花了冤枉钱,还实打实地降低了画质。

很多人以为硬件硬解也是按算法无损还原,但iN在3000帧对齐比较的画质日志 cpu_quality_aligned.log 中抓出来的结果,结结实实地打了这种幻想的脸。表面上,全片平均SSIM两者差不多(CPU 0.977827,GPU 0.976462),GPU的PSNR甚至还略高一点点(42.16dB vs 42.00dB)。但平均数是最大的遮羞布,真正衡量画面下限、反映最差5%极端复杂帧质量的 SSIM P05指标,CPU软件编码稳定在 0.960176,而GPU硬件编码直接崩塌到了 0.951036。

在 report.md 中提取的原尺寸关键帧微观裁切诊断里,差异一目了然:在18.52秒的草地特写中,原片有极细密交错的草叶脉络,CPU软编尚能保住条理清晰的线条;而GPU硬件编码的草地直接粘连成了一片,叶片边缘彻底变软泛糊。第86.40秒密集晃动的树叶和草地明暗微粒也是同样的情况,GPU硬件管线为了保吞吐,把那些高频细微纹理粗暴地当成噪点平滑掉了。

iN甚至在脚本里把GPU的目标码率从1200kbps刻意拔高到1256.68kbps进行补测(记录在补测日志 gpu_matched_quality_aligned.log),把成品实际码率拉平到了1208.69kbps,但丢失的高频纹理依然无法逆向逆转。

这是硬件编码芯片(ASIC)的底层物理特性决定的。集成在GPU里的编解码器是固化的硬件电路,它的第一设计原则是“实时低延迟”,无法像CPU上的x264算法那样运行精细复杂的心理视觉调优模型(Psy-RD)和自适应量化(AQ)。在码率控制上它也相当粗暴,同样指定1200kbps,GPU实际打出来的码率只有1176.41kbps,比CPU低了4.51%,遇到复杂大动态画面极易因为码控滞后导致画面崩裂。
而且,“开硬解CPU就完全不工作”本身就是不切实际的幻想。看前面的实测表格,GPU硬件编码时,进程依然吃掉了整整 13.15% 的单核CPU占用。视频文件的解复用、音频转码、色彩格式重排、以及通过总线把内存数据塞进显存(hwupload),这全套体力活CPU一丁点都没少干。
把这整套逻辑梳理清楚,事情的本质就很讽刺了:对于普通家庭用户来说,内网大屏电视和手里的平板走原画直传,既不消耗NAS算力,画质又是原汁原味;退一万步讲,极偶尔出门在外想看一眼视频,现代多核CPU分出一两个小核心跑个软解,整机轻轻松松,草地毛发的细节保留得还比硬解更好。
但,偏偏有一大批玩家,为了一个极低频甚至根本不存在的播放痛点,心甘情愿掏出真金白银加价上显卡、折腾直通驱动,平时让这块显卡在机箱里白白吃灰耗电,好不容易用上一回,换来的反而是画面高频细节被抹得像塑料油画一样的降级体验。
这大概就是当下NAS折腾圈里最标准的得不偿失。把省下来的预算去添置两块大容量冷备硬盘,或者给家里拉两根靠谱的网线,都远比为这种伪需求买单有意义得多。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
