gpt4 book ai didi

google-chrome-extension - webm提取aac时,时长不一致

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

当我尝试从 webm 中提取 aac 时, 时长会不一致。 aac少了十分钟。不同webm视频,差距是不一样的。
webm视频由 chrome extension 生成chrome.tabCapture.capture

代码:

chrome.tabCapture.capture({
video: true,
audio: true,
videoConstraints: {
mandatory: {
minWidth: 1920,
minHeight: 1080,
maxWidth: 1920,
maxHeight: 1080,
maxFrameRate: 30,
minFrameRate: 30,
}
}
})

上面的代码会返回一个流,我会用JS的 MediaRecorder方法来处理这个流,最后保存为 webm 文件。

代码:
new MediaRecorder(stream, {
audioBitsPerSecond: 128000,
videoBitsPerSecond: 2500000,
mimeType: 'video/webm;codecs=vp9'
})

如果你不知道上面代码的含义,没关系,我将主要信息解释一下:
  • 宽度:1920
  • 高度:1080
  • 转数:30
  • 音频位:128000
  • 视频位:2500000
  • mime 类型:video/webm;codecs=vp9

  • 我尝试了很多方法,如下所示:

    # 1
    ffmpeg -i ./source.webm -y -fflags +genpts -max_muxing_queue_size 99999 -r 15 -crf 30 -filter:v crop=750:560:0:0 ./x.mp4
    ffmpeg -i ./x.mp4 -y -vn -acodec libfdk_aac -b:a 200k ./x.aac

    # 2
    ffmpeg -i ./source.webm -y -vn -acodec libfdk_aac -b:a 200k ./x.aac

    # 3
    ffmpeg -i ./source.webm -y -vn -acodec libfdk_aac -b:a 200k -map 0 ./x.aac

    # 4
    ffmpeg -i ./source.webm -y -max_muxing_queue_size 99999 -r 15 -crf 30 -filter:v crop=750:560:0:0 ./x.mp4
    ffmpeg -i ./source.webm -y -vn -acodec aac -b:a 200k ./x.aac

    # etc.

    但无一异常(exception),都失败了。我被这个问题困扰了4天。

    webm文件下载地址: https://drive.google.com/file/d/1m4fC1hU-tXFPOZayrYCs-yteSTxw_TaW/view?usp=sharing

    最佳答案

    许多 session 或网络录制应用程序所做的不是在音频输入丢失或静音(由某个音量阈值定义)时存储静音。 WebM 和 MP4 是时间索引容器,因此媒体数据具有正确的时间戳以用于播放或编辑目的。 .mp3.aac不要,所以没有时间戳,持续时间是记录和存储的实际音频量的持续时间。另一个问题是您在 ffmpeg -i in.aac 中看到的持续时间是基于文件大小和名义比特率的估计值。对于 VBR 流,此估计可能是错误的。

    在带有时间戳的容器中存储和处理音频,如 MP4、MKV..等

    ffmpeg -i ./x.mp4 -y -vn -acodec libfdk_aac -b:a 200k ./x.mp4

    或用音频静音插入时间戳间隙,
    ffmpeg -i ./x.mp4 -y -vn -af aresample=async=1:first_pts=0:min_hard_comp=0.01 -acodec libfdk_aac -b:a 200k ./x.aac

    后一个命令可能仍显示错误的估计持续时间,但编辑器在生成峰值后将显示正确的持续时间。

    关于google-chrome-extension - webm提取aac时,时长不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57198419/

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