google-chrome - 如何解压audio.aecdump?

标签 google-chrome webrtc

我有一个来自 chrome://webrtc-internals 的转储,我想解压缩它。我怎样才能做到这一点?我知道我可以使用 unpack_aecdump 但在哪里可以找到它?

最佳答案

获取unpack_aecdump

您需要unpack_aecdump,您可以通过以下方式获取:

  1. 按照 https://webrtc.org/native-code/development/ 中的说明设置 WebRTC 开发环境.
  2. 拥有存储库后(因此在完成 gclient 同步之后),创建构建目录:

    gn gen out/Release --args='is_component_build=false'
    
  3. 最后,构建可执行文件(有关源代码,请参阅 unpack.cc;有关构建标志和依赖项,请参阅 build.GN):

    ninja -C out/Release/ unpack_aecdump
    

is_component_build=false 标志确保“unpack_aecdump”二进制文件可以单独使用。如果省略该标志,则默认情况下会打开组件构建(正如您在运行 gn gen out/Release 后从 gn args out/Release --list 中看到的那样,没有参数)。在这种情况下,库与主二进制文件是分离的,如果您想与其他人共享二进制文件,则需要复制多个文件(不仅仅是“unpack_aecdump”,还有“libprotobuf_lite.so”)。

执行上述步骤后,我的存储库的总大小为 7 GB。大约 1Gb 用于存储库,5.5Gb 用于外部依赖项,0.5Gb 用于构建的工件。前两个步骤可能需要一段时间,尤其是在网络较差的情况下。对我来说,实际的构建步骤在一分钟内完成。二进制文件本身只有 3MB。

(使用 https://chromium.googlesource.com/external/webrtc.git/+/0e3213a18ceceb325f5b679f6eea7aff12059960 进行测试)

使用unpack_aecdump

构建unpack_aecdump后,我将其复制到不同的位置并按如下方式使用:

./unpack_aecdump audio_debug.4440.aec_dump.1

下面第一行是输入文件,其他是输出文件(文件大小在前面以字节为单位)。 如果输出文件已存在,它们将被覆盖

163865593 audio_debug.4440.aec_dump.1
      643 settings.txt
 39862916 reverse0.wav
 21696044 ref_out0.wav
 19933244 input0.wav

请注意,input0.wavaudio_debug.4440.source_input.1.wav 完全相同,我也是从 chrome 获得的://webrtc-internals 以及 aecdump 文件。

https://groups.google.com/d/msg/discuss-webrtc/NxPHdEAyU9k/QcH-DkVtD6oJ中也解释了这些文件的含义。 :

  • reverse.pcm: the received audio from the network, bound for rendering.
  • input.pcm: the captured audio, before audio processing.
  • ref_out.pcm: the captured audio, after audio processing, bound for the network.

输出格式(包括文件名)可以自定义,参见the source code--help :

$ ./unpack_aecdump --help
 ( ... )
  Flags from ../../webrtc/modules/audio_processing/test/unpack.cc:
    -delay_file (The name of the delay file.) type: string
      default: "delay.int32"
    -drift_file (The name of the drift file.) type: string
      default: "drift.int32"
    -full (Unpack the full set of files (normally not needed).) type: bool
      default: false
    -input_file (The name of the input stream file.) type: string
      default: "input"
    -keypress_file (The name of the keypress file.) type: string
      default: "keypress.bool"
    -level_file (The name of the level file.) type: string
      default: "level.int32"
    -output_file (The name of the reference output stream file.) type: string
      default: "ref_out"
    -raw (Write raw data instead of a WAV file.) type: bool default: false
    -reverse_file (The name of the reverse input stream file.) type: string
      default: "reverse"
    -settings_file (The name of the settings file.) type: string
      default: "settings.txt"
    -text (Write non-audio files as text files instead of binary files.)
      type: bool default: false

关于google-chrome - 如何解压audio.aecdump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338446/

相关文章:

javascript - es6 babelify 更改变量名,检查器中找不到变量

rest - 删除从 chrome 到 couchDB 的 rest 调用

javascript - 将客户端生成的数据分块保存为 JavaScript 中的文件

android - GT : error: neither tool nor script specified;

javascript - 从浏览器录制音频并实时可视化

webrtc - FreeSWITCH:无法从企业防火墙后面的浏览器(WebRTC)进行连接

c - 您如何构建Pion mediadevices webrtc示例?

生产环境中的 JavaScript 刷新 - IIS

google-chrome - CSS 虚线边框在 Chrome 中呈现为虚线

javascript - 鼠标滚动在 Google Chrome 上不起作用