【发布时间】:2019-07-25 09:17:53
【问题描述】:
当我尝试从webm 中提取 aac 时,持续时间会出现不一致。 aac 少了十分钟。不同的webm视频,差距不一样。
webm视频由chrome extensionchrome.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 - FPS:
30 - 音频位:
128000 - 视频位:
2500000 - mimeType:
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.
但无一例外,都失败了。这个问题困扰了我4天。
webm文件下载地址:https://drive.google.com/file/d/1m4fC1hU-tXFPOZayrYCs-yteSTxw_TaW/view?usp=sharing
【问题讨论】:
-
听起来像是 Chrome 中的一个错误,您可以在 crbug.com 上报告。
-
您无法将原始比特流从容器中提取出来并期望时间戳保留。
标签: google-chrome-extension ffmpeg aac webm web-mediarecorder