如何列出这个 WASM 模块中的符号?

How to list the symbols in this WASM module?

我正在寻找使用 good-ol' FFmpeg 和 Rust 做一些浏览器内视频工作。调用者与 ffmpeg 命令行进行交互的简单示例比比皆是。更复杂的例子更难找到。就我而言,我希望提取、处理和旋转离散帧。

Clipchamp makes impressive use of WASM and FFmpeg, however the downloaded WASM file (there's only one) 不会向 wasm-nmwasm-decompile 显示自己,两者都抱怨相同的操作码:

有没有人分享我如何(1)反思正在使用的 WASM 模块或(2)更一般地建议我如何(最有可能使用 WASM 和 Rust)处理视频文件?

WASM模块使用SIMD指令(前缀为0xfd,也称为vector instructions), which were merged into the spec just last month. The latest release of wasm-decompile therefore doesn't have these enabled by default yet, but will in the next release。同时,您可以使用--enable-simd命令行选项手动启用它们。此调用适用于我的最新版本:

./wasm-decompile --enable-simd ffmpeg_wasm_simd_c8f3841de02a8803b5e2618ed47cb70f.wasm

我还研究了 wasm-nm,因为这对您的用例来说会方便得多。不幸的是,它已经四年没有更新了。然而,它只是 parity-wasm 的薄包装,所以我尝试将其更新到最新版本,包括对 SIMD 和其他尚未标准化的指令集的支持。这编译得很好,但不幸的是仍然抱怨未知的操作码。在解决该问题后,由于意外的 EOF 而出错。所以我担心这个库有更多的基本问题需要解决。