用途:把音频片段(播客亮点、口播、引语)转为带字幕的短视频,波形或均衡器条提示“这里有声音”,字幕服务静音观看者,封面、标题与进度条构成完整品牌画面。适用播客切片、口播配视频、音乐等以波形为主角的场景。
关键规则:所有条高必须由当前帧计算,不能用实时 AnalyserNode 加 requestAnimationFrame,因为渲染器按帧而非实时绘制,会导致波形不同步或卡住。应先把整段音频解码为振幅样本,再按帧索引。在 Remotion 中用 useAudioData() 与 visualizeAudio(),普通 canvas 用 decodeAudioData() 得到样本数组。
两种波形:visualizeAudio() 返回频谱(0–1)用于均衡器条,适合音乐与能量感;visualizeAudioWaveform() 返回时域振幅(−1…1)用于平滑示波波形,适合语音与播客。numberOfSamples 必须是 2 的幂(16/32/64),居中均衡器取前 N 条并在中间镜像。
长文件处理:useAudioData() 会把整个文件读入内存,适合 30–90 秒片段;长音频应先用 useWindowedAudioData() 按 HTTP 范围请求只取当前帧附近音频,或先裁剪到不超过 90 秒。
布局为五层:背景、封面与标题、波形或条、字幕、进度条。进度条由 frame / durationInFrames 计算。字幕需经转写得到词或短语时间轴,一次显示一个短语,与波形共用同一音频时钟;字幕动画细节见 caption-animation 技能。
画幅:1:1 用于信息流;9:16 用于 Reels/TikTok/Shorts,需避开底部约 18% UI 区域;16:9 用于 YouTube。必须用 <Audio src={...} /> 混入真实音频,静音时仍能看懂。
交付与验证:输出为真实 MP4(含音频)加 Remotion 项目;渲染前先用 npx remotion still 在首帧、中间帧、末帧检查波形高度与字幕同步,再执行 npx remotion render Audiogram out/audiogram.mp4 --props=./props.json。辅助脚本可生成拼图并探测编码。要求全部运动由帧驱动,禁止 Date.now()、Math.random()、计时器和实时分析器。目前未提供具体授权、版本与依赖安装信息。