使用指南 / AUDIO TO MIDI
视频转 MIDI 为什么需要接近视频本身的播放时长?
简短回答:AudioNote MIDI 会在浏览器播放所选视频时读取其中的音轨。转换需要等播放过程提供音频采样,因此视频越长,处理通常也越久。
转换时发生了什么
选择受支持的视频文件后,页面会根据本地文件创建一个临时视频元素,再把这个元素的音频接入 Web Audio 处理流程。页面在播放期间收集音频采样,之后才运行音高跟踪;当前实现会等到视频触发 ended 事件后,才继续进行音符检测。这就是视频转换耗时与视频播放时长相关的原因。
浏览器平台支持这种音频连接方式:AudioContext.createMediaElementSource() 可以从现有的 <video> 元素创建音频源节点。实际能否播放,仍取决于浏览器和所选文件内部使用的编码格式。
对你的使用有什么影响
- 选择包含目标乐句的短片段。本站目前接受最大 100 MB、最长 120 秒的文件;这是产品限制,不代表所有编码格式都一定能解码。
- 确认视频带有音轨,而且浏览器能播放该音轨使用的编码。文件选择器接受某种视频容器,不等于浏览器一定支持容器内部的编码。
- 视频音频按实时播放处理。开始转换后,基于播放过程的采集无法在视频播放结束之前完成。
- 如果已经有 MP3、WAV、M4A、AAC、OGG 或 AIFF 音频文件,可以直接选择音频文件;页面对音频使用另一条解码流程。
- 下载后检查 MIDI 音符。输出是单旋律的音符与时值草稿,不是原始音轨,也不是视频本身。
为什么不能直接粘贴视频链接?
这个转换器处理的是从设备中选择的文件,不会读取 YouTube 观看页面链接。如果你有权使用某个视频文件,可以在本地选择它;否则,请使用你有权处理的音频文件。转换在浏览器中进行。
来源与范围
- AudioNote MIDI 工具及当前输入限制
- AudioNote MIDI:音符遗漏排查指南
- MDN:AudioContext.createMediaElementSource()
- MDN:MediaElementAudioSourceNode
以上关于耗时的说明依据当前实现和浏览器 API 文档。站内 FAQ 已有一句简短说明,本文展开解释其原因。