Ffmpeg 如何使用标记同步两个音频文件

Ffmpeg 如何使用标记同步两个音频文件,ffmpeg,html5-audio,webrtc,audio-processing,voice-recording,Ffmpeg,Html5 Audio,Webrtc,Audio Processing,Voice Recording,我正在做一个项目,我们使用WebRTC和库来录制音频文件 我希望能够处理服务器端的音频文件,以确保良好的同步 为此,我正在考虑用一个听不见的声音标记标记每条记录的开始,以便分析新记录,然后使用开始偏移量(我已经使用它来压缩由RecordRTC创建的原始文件) 问题是我以前从未做过任何高级音频处理,我环顾四周,找不到合适的方法 有没有其他更好的方法来处理同步?如果没有,如果我能得到一些关于标记技术的提示,我将不胜感激。 多谢各位 编辑: 对于那些不知道RecordRTC如何工作的人,我忘了提到记录

我正在做一个项目,我们使用WebRTC和库来录制音频文件

我希望能够处理服务器端的音频文件,以确保良好的同步

为此,我正在考虑用一个听不见的声音标记标记每条记录的开始,以便分析新记录,然后使用开始偏移量(我已经使用它来压缩由RecordRTC创建的原始文件)

问题是我以前从未做过任何高级音频处理,我环顾四周,找不到合适的方法

有没有其他更好的方法来处理同步?如果没有,如果我能得到一些关于标记技术的提示,我将不胜感激。 多谢各位

编辑: 对于那些不知道RecordRTC如何工作的人,我忘了提到记录是用Javascript在客户端完成的。同步问题来自javascript不擅长同步调用这一事实

流程如下所示:

1) 用户记录自己

[User 1] -> Records on his browser an audio file
   |
   | Saves raw audio file (call it audio_1.ogg)
   |
[Server]
2) 另一个用户希望加入用户_1的项目

[User 2]  <--- Fetch audio_1.ogg (in an audio html tag) --- [Server]
   |
   | Press record
   |
[Webapp] -> Plays audio_1.ogg and starts recording audio_2.ogg
   |
   | Saves audio_2.ogg when record is over
   |
[Server]
[User 2]播放音频\u 1.ogg并开始录制音频\u 2.ogg
|
|录制结束时保存音频_2.ogg
|
[服务器]
同步问题源于这样一个事实,Javascript无法确保启动录制的函数和负责开始播放现有音频文件的函数同时发生

根据项目中已经有多少音频文件(因为它不限于两个),我最终会有大约50/100毫秒的间隔

您应该使用flag删除Windows上的此类约100毫秒延迟

您甚至可以执行以下操作以消除延迟:

ffmpeg -i audio-file.wav -itsoffset -00:00:01 -i video-file.webm -map 0:0 -map 1:0 output-file-name.webm
RecordRTC具有以下部分:

更新: 啊,忘记回答实际问题了:

ffmpeg -i audio-1.wav -itsoffset -00:00:01 -i audio-2.wav -map 0:0 -map 1:0 output.wav

对于抓取的每个数据包/屏幕,您可以包含一个时间戳并围绕该时间戳进行同步…我怀疑原始提要是否已经有时间戳。问题是音频文件没有同时录制。我可以在某天录制一个音频文件,几小时后再录制一个。
ffmpeg -i audio-1.wav -itsoffset -00:00:01 -i audio-2.wav -map 0:0 -map 1:0 output.wav