dis*_*ame 1 firefox google-chrome ffmpeg audio-streaming media-source
我似乎想将我想在网站上流式传输的音频转换为audio/mp4; codecs="mp4a.40.2".
使用ffmpeg-cli-wrapper,我在此处使用以下命令转换我上传的音频文件:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.aac
Run Code Online (Sandbox Code Playgroud)
在客户端上,我创建一个像这样的 SourceBuffer:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.aac
Run Code Online (Sandbox Code Playgroud)
错误是:
铬合金:
NotSupportedError: Failed to load because no supported source was found.
Run Code Online (Sandbox Code Playgroud)
火狐浏览器:
NotSupportedError: The media resource indicated by the src attribute or assigned media provider object was not suitable.
Run Code Online (Sandbox Code Playgroud)
audio/aac如果我使用mime-type创建 SourceBuffer :
this.sourceBuffer = this.mediaSource.addSourceBuffer('audio/mp4; codecs="mp4a.40.2"');
Run Code Online (Sandbox Code Playgroud)
音频在 Chrome 上正确播放,但 Firefox 说:
MediaSource.addSourceBuffer: Type not supported in MediaSource
Run Code Online (Sandbox Code Playgroud)
将命令更改为后
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.mp4
^^^
Run Code Online (Sandbox Code Playgroud)
Chrome/Firefox 使用时不会报错audio/mp4; codecs="mp4a.40.2",但音频未播放。
在 ffmpeg 命令中,使用扩展名.m4a(或.mp4),而不是.aac:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 /tmp/output.m4a
Run Code Online (Sandbox Code Playgroud)
该.aac扩展用于 ADTS 容器中的 AAC,这不是 Web 上广泛使用或支持的格式。or.m4a扩展.mp4名用于 MP4 容器中的 AAC,这更为常见。
或者,如果由于某种原因您确实想要命名该文件,output.aac但又希望它包含 MP4 中的 AAC,那么您可以指定输出格式,而不是让 ffmpeg 根据输出文件扩展名猜测您想要的格式:
ffmpeg -i /tmp/input.any -acodec aac -b:a 256000 -f mp4 /tmp/output.aac
Run Code Online (Sandbox Code Playgroud)
但如果您使用类似的非标准扩展,那么您可能还需要更新您的 Web 服务器配置,以便它报告正确的媒体类型。
| 归档时间: |
|
| 查看次数: |
10789 次 |
| 最近记录: |