似乎我想把我想在我的网站上看到的音频转换成audio/mp4; codecs="mp4a.40.2"。
使用ffmpeg-cli-wrapper,我将使用以下命令转换上传的音频文件:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.aac在客户机上,我创建了这样一个SourceBuffer:
this.sourceBuffer = this.mediaSource.addSourceBuffer('audio/mp4; codecs="mp4a.40.2"');这些错误是:
铬:
NotSupportedError: Failed to load because no supported source was found.Firefox:
NotSupportedError: The media resource indicated by the src attribute or assigned media provider object was not suitable.有趣的部分来了:
如果我使用SourceBuffer作为mime类型创建audio/aac:
this.sourceBuffer = this.mediaSource.addSourceBuffer('audio/aac');该音频在Chrome上正确播放,但Firefox说:
MediaSource.addSourceBuffer: Type not supported in MediaSource更新
在将命令更改为
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.mp4
^^^ Chrome/Firefox在使用audio/mp4; codecs="mp4a.40.2"时不会出现错误,但音频不会播放。
看见
发布于 2020-10-18 11:45:58
在ffmpeg命令中,使用扩展.m4a (或.mp4),而不是.aac
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.m4a.aac扩展用于ADTS容器中的AAC,它不是web上广泛使用或支持的格式。.m4a或.mp4扩展用于MP4容器中的AAC,这是更常见的。
或者,如果出于某种原因,您确实希望该文件命名为output.aac,但又希望它在MP4中包含AAC,那么您可以指定输出格式,而不是让ffmpeg根据输出文件扩展名猜测您想要的格式:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 -f mp4 /tmp/output.aac但是,如果您使用这样的非标准扩展,那么您可能还需要更新您的web服务器配置,以便它能够报告正确的媒体类型。
发布于 2021-10-27 08:30:23
我也有一个类似的问题,如果我的fMP4直接作为src在视频标签中使用,它就会弹得很好,但是当通过MediaSource扩展使用时,它就不会播放了。我的问题是,我在fMP4中的AAC帧是与ADTS头一起使用的,看起来MSE不喜欢这些标头。因此,我从每个AAC帧中删除了ADTS头,它工作得很好。(我已经在我的ESDS框中添加了特定于音频的Config,这样我可以在没有问题的情况下删除ADTS头。)
https://stackoverflow.com/questions/64412488
复制相似问题