- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 android 中的音频输入流中提取 SMPTE 时间码 ( wikipedia )。
如此处所述https://stackoverflow.com/a/2099226第一步是扫描输入流字节序列 0011111111111101 以进行同步。但是如何使用 AudioRecord 类做到这一点呢?
最佳答案
这个答案并不正确。您获得的音频信号是调制载波,从中提取 SMPTE 位是一个多步骤过程:您通过麦克风或音频输入获得的原始数据不会对应于 SMPTE 时间码。因此,您需要对音频进行解码,这并不简单。
第一步是转换来自 biphase mark code 的音频信号.我自己还没有实现 SMPTE 阅读器,但你知道 SMPTE 标准的时钟速率,所以我要做的第一件事就是仔细过滤以消除背景噪音,因为听起来你正在从麦克风。消除任何直流偏移的温和高通应该可以,高频噪声的温和低通也应该有所帮助。 (您可以改用宽带通)
然后,您需要找到每个时钟周期的开始。您可以做一些花哨的事情,例如自相关或 PLL 算法,但我怀疑从 SMPTE 标准中了解大致的时钟速率并能够上下调整几个百分点就足够了——也许更好。因此,只需根据规范查找重复转换即可。如果您怀疑您的时间码高度扭曲,那么做一些奇特的事情会有所帮助(如果您有一个非常旧的磁带机或者您想要以非常高/低的速度同步,可能会出现这种情况,但 LTC 并不是为此而设计的。那是更多 VTC 的域名。)。
确定时钟后,您需要针对每个时钟节拍确定信号中的转换是否发生在时钟周期开始时。每个时钟滴答在中间都会有一个转换,但开始时的转换表示 0 位。这就是 BMC 在单个流中传输时钟和数据的方式。这允许您创建一个新的实际 SMPTE 数据流。
现在您已将 BMC 解码为 SMPTE 流。下一步是查找同步代码。查看维基百科上的规范以及我对 SMPTE 的内存,我断言找到单个同步代码是不够的,这可能在 80 位 block 的其他地方偶然或巧合地发生。相反,您必须以正确的间隔连续找到几个。然后您可以将数据读取到 80 位 SMPTE block 中,并且在读取时,您必须继续验证同步代码。如果您没有在预期的位置看到一个,请从头开始搜索。
最后,解码后,您将不得不想出一些“飞轮”方式,因为您几乎肯定不会一直正确读取所有数据(没有校验和!)。这就是野兽的本性。
关于android - 在 android 中读取原始音频并提取 SMPTE 时间码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294089/
我以前从未处理过信号/流编码或解码,至少不会超出 HTTP 等相当基本的协议(protocol),所以如果我让这件事变得比我应该做的更难,请原谅我。 我们在工作中使用的一些系统依赖于 SMPTE 时间
我在 Windows 上使用 Quicktime-API 工作,我想知道如何获取电影文件的开始时间码 (SMPTE)?有人可以发布链接或示例如何做到这一点吗? 最佳答案 您需要使用 {GetMovie
我正在尝试从 android 中的音频输入流中提取 SMPTE 时间码 ( wikipedia )。 如此处所述https://stackoverflow.com/a/2099226第一步是扫描输入流
有人知道用于解码 SMPTE 信号的现有 Java 库吗?我熟悉libltcsmpte和Javier Jaimovitch's Matlab code ,它们都做我想要的,只是它们不是用 Java 编
如何获取 QT 影片的时间码开始和持续时间?我发现我必须使用 QTKIt,也许还有 QTStringFromSMPTETime,但我在网络上找不到任何示例。 最佳答案 以下是使用 QTKit 和 Qu
正如您在附图中看到的那样,根据 MediaInfo,我的文件中有两个不同的时间码。有没有办法将它们设置为不同的值? 谢谢你。 最佳答案 您可以使用 -timecode ffmpeg 的选项。 我有一个
我正在尝试编写一个程序,将 SMPTE 时间码轨道添加到 QuickTime 影片中,以便我可以在 Final Cut 或 Avid 等专业编辑应用程序中使用该影片。 Apple 有一个很好的示例,解
我有 2 个视频文件(vid1.mov 和 vid2.mov),两者具有相同的帧大小和帧速率。我想要 1 个最终视频,依次显示 vid1.mov 和 vid2.mov。我还希望有从一个视频到另一个视频
我一直在为此烦恼。 我在这里找到了一些东西,但似乎没有任何效果。而且文档真的很有限。 我在这里想弄清楚的是如何从时间码轨道获取 Objective-C 中 Quicktime 电影的开始时间码,并从中
我是一名优秀的程序员,十分优秀!