gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:00:38 26 4
gpt4 key购买 nike

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

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

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

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

还有另一种更好的方法来处理同步吗?如果没有,如果我能得到一些关于标记技术的提示,我将不胜感激。
谢谢你。

编辑:
忘了说给不懂的人记录RTC 记录在 Javascript 中在客户端完成的工作。同步问题来自于 javascript 不擅长同步调用的事实。

该过程如下完成:

1)用户记录自己

[User 1] -> Records on his browser an audio file
|
| Saves raw audio file (call it audio_1.ogg)
|
[Server]

2) 另一个用户想加入 user_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]

同步问题来自 中没有办法。 Javascript 确保处理开始录制的功能和负责开始播放现有音频文件的功能同时发生。

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

最佳答案

您应该使用 --enable-exclusive-audio 标志以消除 Windows 上这种大约 100 毫秒的延迟。

你甚至可以use ffmpeg-commands消除延迟:

ffmpeg -i audio-file.wav -itsoffset -00:00:01 -i video-file.webm -map 0:0 -map 1:0 output-file-name.webm

RecordRTC 有 How to fix audio/video sync issues on chrome?部分:
recordAudio = RecordRTC( stream, {
onAudioProcessStarted: function( ) {
recordVideo.startRecording();
}
});

recordVideo = RecordRTC(stream, {
type: 'video'
});

recordAudio.startRecording();

更新:

啊,忘了回答实际问题:
ffmpeg -i audio-1.wav -itsoffset -00:00:01 -i audio-2.wav -map 0:0 -map 1:0 output.wav

关于ffmpeg - 如何使用标记同步两个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24383793/

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