gpt4 book ai didi

android - 如何在 Android 上的 WebRTC 通话期间将麦克风录制为更压缩的格式?

转载 作者:行者123 更新时间:2023-12-02 13:29:53 26 4
gpt4 key购买 nike

我有一个使用 WebRTC 进行调用的应用。但在通话过程中,我需要录制麦克风。 WebRTC 有一个对象 WebRTCAudioRecord 来录制音频,但音频文件太大(PCM_16bit)。我想录制,但尺寸较小。

我尝试过 MediaRecorder 但它不起作用,因为 WebRTC 已录制,而 MediaRecorder 无权在通话时进行录制。

有人这样做过,或者有任何可以帮助我的想法吗?

最佳答案

Webrtc 被认为是相对更好的音频视频预处理工具。

Webrtc native 开发包括完全优化的 native C和C++类,以保持音频和视频的出色语音质量和清晰度,这非常有趣。

访问引用链接:https://github.com/jitsi/webrtc/tree/master/examples定期。

<小时/>

如问题所述;

I want to record but smaller size. I've tried MediaRecorder and it doesn't work because WebRtc is recorded and MediaRecorder has not permission to record while calling.

<小时/>

首先,要减少或最小化录制数据(音频字节)的大小,您应该考虑不同类型的语音编解码器通过将声音质量保持在一定水平,基本上可以减少录制数据的大小。看不同voice codecs ,以下是著名的语音编解码器:

就音频数据的大小而言,它基本上取决于您录制 block 的采样率时间或音频数据包。

Supppose time = 40ms ---then---> Reocrded Data = 640 bytes (or 320 short)

Size of recorded data is **directly proportional** to both Time and Sample rate.

Sample Rate = 8000 or 16000 etc. (greater the sample rate, greater would be the size)

要查看更多详细信息,请访问:fundamentals of audio data representation 。但Webrtc主要处理10ms音频数据进行预处理,其中数据包大小减少至160字节

<小时/>

其次,如果您想一次使用多个 AudioRecorder 实例,那么这实际上是不可能的。由于 WebRtc 已经从麦克风进行录音,因此实际上 MediaRecorder 实例不会执行任何功能,正如此答案所述 audio-record-multiple-audio-at-a-time 。 Webrtc 有以下方法来管理音频字节,例如;

 1. Push input PCM data into `ProcessCaptureStream` to process in place.
2. Get the processed PCM data from `ProcessCaptureStream` and send to far-end.
3. The far end pushed the received data into `ProcessRenderStream`.

我维护了一个与使用Webrtc进行音频处理相关的完整教程,您可以访问查看更多详细信息; Android-Audio-Processing-Using-Webrtc .

关于android - 如何在 Android 上的 WebRTC 通话期间将麦克风录制为更压缩的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51441718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com