diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-03-09 00:10:31 +0100 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-03-09 00:10:31 +0100 |
| commit | 26d523ebad3dfdcb682db049899ada84ac739ed7 (patch) | |
| tree | 3920899fab6fc5bb45246d54d55e19fd21214fef /apps/web/src/services | |
| parent | 0be9275a2d8d7b024b26b62b52c86effca75ba78 (diff) | |
| download | opencut-26d523ebad3dfdcb682db049899ada84ac739ed7.tar.gz | |
fix: fallback to opus codec
Diffstat (limited to 'apps/web/src/services')
| -rw-r--r-- | apps/web/src/services/renderer/scene-exporter.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/apps/web/src/services/renderer/scene-exporter.ts b/apps/web/src/services/renderer/scene-exporter.ts index a715efe7..c5bad94f 100644 --- a/apps/web/src/services/renderer/scene-exporter.ts +++ b/apps/web/src/services/renderer/scene-exporter.ts @@ -100,8 +100,21 @@ export class SceneExporter extends EventEmitter<SceneExporterEvents> { let audioSource: AudioBufferSource | null = null; if (this.shouldIncludeAudio && this.audioBuffer) { + let audioCodec: "aac" | "opus" = + this.format === "webm" ? "opus" : "aac"; + + if (audioCodec === "aac" && typeof AudioEncoder !== "undefined") { + const { supported } = await AudioEncoder.isConfigSupported({ + codec: "mp4a.40.2", + sampleRate: this.audioBuffer.sampleRate, + numberOfChannels: this.audioBuffer.numberOfChannels, + bitrate: 192000, + }); + if (!supported) audioCodec = "opus"; + } + audioSource = new AudioBufferSource({ - codec: this.format === "webm" ? "opus" : "aac", + codec: audioCodec, bitrate: qualityMap[this.quality], }); output.addAudioTrack(audioSource); |
