diff --git a/src/lib/converters/ffmpeg.svelte.ts b/src/lib/converters/ffmpeg.svelte.ts index 4aa1995..7b61bdc 100644 --- a/src/lib/converters/ffmpeg.svelte.ts +++ b/src/lib/converters/ffmpeg.svelte.ts @@ -398,14 +398,23 @@ export class FFmpegConverter extends Converter { // detect sample rate of original file and use if (isLosslessToLossy) { // use safe default - sampleRateArgs = ["-ar", "44100"]; + const defaultRate = to === ".opus" ? "48000" : "44100"; log( ["converters", this.name], - `converting from lossless to lossy, using default sample rate: 44100Hz`, + `converting from lossless to lossy, using default sample rate: ${defaultRate}Hz`, ); + sampleRateArgs = ["-ar", defaultRate]; } else { - const inputSampleRate = - await this.detectAudioSampleRate(ffmpeg); + let inputSampleRate = await this.detectAudioSampleRate(ffmpeg); + if (to === ".opus" && inputSampleRate === 44100) { + // special case: opus does not support 44100Hz which is more common - adjust to 48000Hz + log( + ["converters", this.name], + "conversion to opus with 44100Hz sample rate detected, adjusting to 48000Hz", + ); + inputSampleRate = 48000; + } + sampleRateArgs = inputSampleRate ? ["-ar", inputSampleRate.toString()] : []; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 1ccdf29..95f8b69 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -20,9 +20,7 @@ } from "$lib/store/index.svelte"; import "$lib/css/app.scss"; import { browser } from "$app/environment"; - import { page } from "$app/state"; import { initStores as initAnimStores } from "$lib/animation/index.js"; - import { locales, localizeHref } from "$lib/paraglide/runtime"; import { VertdInstance } from "$lib/sections/settings/vertdSettings.svelte.js"; let { children, data } = $props(); diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte index 003b147..c50ebde 100644 --- a/src/routes/about/+page.svelte +++ b/src/routes/about/+page.svelte @@ -1,5 +1,5 @@