【问题标题】:Concatenating mka files but keeping timestamp连接 mka 文件但保留时间戳
【发布时间】:2020-07-27 21:26:12
【问题描述】:

我正在尝试将一些文件与 FFMPEG 混合,这些文件是 mka 并且来自 Twilio 视频会议记录。我正在尝试获取每个参与者的曲目,但我正在尝试保留文件中的整体时间戳。

具体例子:我有这三个文件:

0PA1896e43f4ca0edf17d8dbfc0bab95a52.mka
1PA2a640f11bc13af2c29397800f058cb05.mka
2PA9fa5b32edc016f6f5b9669bb9b308d97.mka

这些文件都是通话参与者的轨迹,但在不同时间加入(离开会议并重新进入,会生成一个新文件)。

我想将这些文件混合在一个文件中,同时保留记录时的时间戳。 FFProbe 显示每个文件的开头:

0PA1896e43f4ca0edf17d8dbfc0bab95a52.mka - Duration: 00:00:17.87, start: 1.360000, bitrate: 78 kb/s
1PA2a640f11bc13af2c29397800f058cb05.mka - Duration: 00:00:22.76, start: 22.521000, bitrate: 78 kb/s
2PA9fa5b32edc016f6f5b9669bb9b308d97.mka - Duration: 00:00:20.36, start: 48.944000, bitrate: 78 kb/s

所以第一个 00:00:17.87 应该被静音,然​​后从 00:00:22.76 附加第二个文件,从 48.944000 附加第三个文件。这将导致添加了所有这 3 个录音的单个文件,但在没有任何内容时会静音,并添加所有录音。实际上,我希望在开始时延迟。

想象一下,我要添加从第 2 分钟开始的第 4 条录音,在第 3 和第 4 录音之间会有一段沉默。

或者想象一个有 3 个参与者的呼叫,但第 3 个参与者只会从第 5 分钟开始。前 5 分钟应该被静音,这样我就可以将 trascribe api 传递给第 3 个参与者并且仍然获得正确的时间戳。

我想要这样的原因是因为我想将音频转录为文本,并希望在可以听到文本时获得确切的时间戳。

【问题讨论】:

    标签: ffmpeg twilio ffprobe


    【解决方案1】:

    您可以为此使用 aresample 和 amix 过滤器。 aresample 过滤器将应用于每个输入,以便在开始时间戳之前插入静音。然后将这些处理过的流与 amix 过滤器混合在一起。

    我将调用输入 0.mka、1.mka 和 2.mka

    ffmpeg -copyts -i 0.mka -i 1.mka -i 2.mka -filter_complex "[0]aresample=async=1:first_pts=0[a0];[1]aresample=async=1:first_pts=0[a1];[2]aresample=async=1:first_pts=0[a2];[a0][a1][a2]amix=inputs=3" out.mka
    

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 2020-12-03
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2011-07-20
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多