- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,在我使用 MediaCodec 连接视频的过程中,我终于设法将 48k Hz 音频重新采样为 44.1k Hz。
我一直在测试将视频与两个视频连接在一起,第一个具有 22050 Hz 2 channel 格式的音轨,第二个具有 24000 Hz 1 channel 格式的音轨。由于我的解码器只为第一个视频输出 44100 Hz 2 channel 原始音频,为第二个视频输出 48000 Hz 2 channel 原始音频,我重新采样了 ByteBuffers
第二个视频的解码器使用此方法从 48000 Hz 输出到 44100 Hz:
private byte[] minorDownsamplingFrom48kTo44k(byte[] origByteArray)
{
int origLength = origByteArray.length;
int moddedLength = origLength * 147/160;
//int moddedLength = 187*36;
int delta = origLength - moddedLength;
byte[] resultByteArray = new byte[moddedLength];
int arrayIndex = 0;
for(int i = 0; i < origLength; i+=44)
{
for(int j = i; j < (i+40 > origLength ? origLength : i + 40); j++)
{
resultByteArray[arrayIndex] = origByteArray[j];
arrayIndex++;
}
//Log.i("array_iter", i+" "+arrayIndex);
}
//smoothArray(resultByteArray, 3);
return resultByteArray;
}
ByteBuffer
年代? MediaCodec
是否可以动态更改视频比特率,动态更改音频采样率或 channel 数的新功能是否可行? 最佳答案
原来它就像限制我的 ByteBuffers 的大小一样简单。
解码器输出 8192 字节(2048 个样本)。
下采样后,数据变为 7524 字节(1881 个样本) - 最初为 7526 字节,但总计 1881.5 个样本,因此我将其向下取整。
主要错误是在这段代码中,我必须使采样率接近原始值:
byte[] finalByteBufferContent = new byte[size / 2]; //here
for (int i = 0; i < bufferSize; i += 2) {
if ((i + 1) * ((int) samplingFactor) > testBufferContents.length) {
finalByteBufferContent[i] = 0;
finalByteBufferContent[i + 1] = 0;
} else {
finalByteBufferContent[i] = testBufferContents[i * ((int) samplingFactor)];
finalByteBufferContent[i + 1] = testBufferContents[i * ((int) samplingFactor) + 1];
}
}
bufferSize = finalByteBufferContent.length;
size
是解码器输出
ByteBuffer
的长度和
testBufferContents
是我用来修改其内容的字节数组(并且是下采样到 7524 字节的字节数组)。
new byte[size / 2]
至
new byte[testBufferContents.length / 2]
解决了这个问题。
关于android - MediaCodec - 从 48k Hz 到 44.1k Hz 的下采样音频仍以较慢的速度播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40105892/
到目前为止,在我使用 MediaCodec 连接视频的过程中,我终于设法将 48k Hz 音频重新采样为 44.1k Hz。 我一直在测试将视频与两个视频连接在一起,第一个具有 22050 Hz 2
我现在正在尝试编译某人的代码,这个人正在使用变量 HZ(我认为它代表 Hertz,代表 CPU 的赫兹),但编译器提示变量未定义。我猜这个人没有包含正确的头文件。 那么有谁知道HZ是在哪个头文件中定义
在 sched_fair.c 中有: unsigned int sysctl_sched_latency = 5000000ULL //5m unsigned int sysctl_sched_min
我看过这个http://kaasxxx.wordpress.com/2008/01/22/linux-hz-checker/但是脚本似乎不起作用。无论如何知道在 Linux 的终端中检查“HZ”的简单
我正在从Google的文本到语音服务获取16位PCM数据(24000 Hz),然后将其存储在u8数组中。有没有一种简单的方法可以将其重采样到48000 Hz,而输出是u8阵列?我不了解FFmpeg上的
我正在尝试制作一个简单的振荡器程序,我可以在其中更改 Octave 类型,就像 Massive VST 用正数和负数显示它的方式一样: (来源:massivesynth.com) 现在,我知道一个 O
我收到一条消息,该消息从在 ARM 平台上运行的 Linux 应用程序 (Qt C++) 打印出来: Unknown HZ value! (108) Assume 100. 此输出会定期出现在不同
我正在 python 上的 pandas 中开发一个项目。我收到这样的 .csv 文件作为输入: Name Timestamp Data A1 259
我正在使用 Estimote SDK (3.6.0) 与我的信标进行通信。现在我在某处读到,可以获取 5 Hz 信标的广告包。这仅适用于 Estimote 信标还是也适用于其他供应商的信标?在源代码中
音频数据如何下采样到 5512 Hz PCM?我读过一些文章,涉及的步骤是将音频解码为 PCM,将其转换为单声道,然后对其进行下采样。 为了转换为单声道,是否对每帧的 channel 进行平均以获得单
我以大约 50 Hz 的频率(每 0.02 秒一次,正如 Android 所允许的那样...)收集加速度计数据 这是 10 秒数据窗口的幅度图,我想在其上估计功率谱密度: 像这样应用 scipy.si
我有一个传感器,它使用 RS422 通过串口发送消息。 (我认为这是正确的术语。)无论如何,我制作了线束,并将其连接到我的 rs422 到 usb 转换器和 tada,我在 super 终端中获得了数
我一直在使用the Android NDK Camera sample有了它,人们就可以使用 the yuvreader_ inside DrawFrame 读取格式为 AIMAGE_FORMAT_Y
有没有可以读取的全局变量?从 2.6 内核开始,它是可配置的,所以我不能确定是否确实使用了默认值。我正在使用“崩溃”来调试内核核心转储。 最佳答案 它是在编译期间在内核的 .config 中配置的。检
我有 形式的原始音频数据 vector m_shorts; 音频数据为 22050 kHz 单声道。 有人知道我如何(没有任何第三方库)快速将短 vector 转换为 48000 Hz 单声道吗? 我
如何通过ADB shell知道Android内核的HZ值? (没有任何编码) 我检查了How to check HZ in the terminal? ,但这不适用于 Android ADB shel
从 iOS 上的音频流(音乐)获取 Hz 频率值的最佳方法是什么? Apple 提供的最好和最简单的框架是什么?提前致谢。 最佳答案 这是我使用 Accelerate Framework 在 iOS
这就是我所拥有的。它生成 5 秒 Au file具有 440 Hz 正弦波,灵感来自 this question . -- file: tone.hs import qualified Data.By
我目前正在研究 WiFI 的内核源代码(net/mac80211) (三星Galaxy S3---GT-I9300---内核) 我已经看到了如下代码: /* * Scanning implement
我正在使用 ublox NEO-M8N-0-01全局导航卫星系统模块。该模块最高支持 5Hz GPS+GLONASS 和 10Hz GPS。 但是,当我尝试更改采样率(通过消息 View 中的 UBX
我是一名优秀的程序员,十分优秀!