From 08afc1d834868bab87908d969c8689d68d752fde Mon Sep 17 00:00:00 2001 From: Jonny Burger Date: Sun, 15 Jun 2025 08:37:29 +0200 Subject: [PATCH 1/7] `remotion`: Disable bufferUntilFirstFrame behavior in Chrome --- packages/core/src/buffer-until-first-frame.ts | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/packages/core/src/buffer-until-first-frame.ts b/packages/core/src/buffer-until-first-frame.ts index 3d023e5f871..f25d59e3680 100644 --- a/packages/core/src/buffer-until-first-frame.ts +++ b/packages/core/src/buffer-until-first-frame.ts @@ -10,12 +10,6 @@ const isSafariWebkit = () => { return isSafari; }; -const isDesktopChrome = () => { - const isChrome = /chrome/i.test(window.navigator.userAgent); - const isDesktop = !/mobile/i.test(window.navigator.userAgent); - return isChrome && isDesktop; -}; - export const useBufferUntilFirstFrame = ({ mediaRef, mediaType, @@ -50,16 +44,7 @@ export const useBufferUntilFirstFrame = ({ return; } - if ( - current.readyState >= current.HAVE_FUTURE_DATA && - !isSafariWebkit() && - // In Desktop Chrome, the video might switch to playing - // but does not play due to Bluetooth headphones - - // Enabling back this flag for Chrome without extensive testing - // because we never had big problems on Chrome - !isDesktopChrome() - ) { + if (current.readyState >= current.HAVE_FUTURE_DATA && !isSafariWebkit()) { playbackLogging({ logLevel, message: `Not using buffer until first frame, because readyState is ${current.readyState} and is not Safari or Desktop Chrome`, From 4bd6629467103df8eb7bc3f2411bbd406361bcbd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Jun 2025 12:04:37 +0000 Subject: [PATCH 2/7] Initial plan for issue From ca09646ae03349c018aabb8eed13b1f099b6b29d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Jun 2025 12:09:53 +0000 Subject: [PATCH 3/7] media-utils: Deprecate getAudioDurationInSeconds() in favor of parseMedia() Co-authored-by: JonnyBurger <1629785+JonnyBurger@users.noreply.github.com> --- packages/docs/docs/get-audio-duration-in-seconds.mdx | 4 ++++ packages/media-utils/src/get-audio-duration-in-seconds.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/docs/docs/get-audio-duration-in-seconds.mdx b/packages/docs/docs/get-audio-duration-in-seconds.mdx index c5d7266c7ca..b3dbaa9d518 100644 --- a/packages/docs/docs/get-audio-duration-in-seconds.mdx +++ b/packages/docs/docs/get-audio-duration-in-seconds.mdx @@ -5,6 +5,10 @@ id: get-audio-duration-in-seconds crumb: '@remotion/media-utils' --- +:::warning Deprecated +This function has been deprecated. Use [`parseMedia()`](/docs/media-parser/parse-media) instead, which is more powerful and supports more formats. +::: + _Part of the `@remotion/media-utils` package of helper functions._ _Previously called `getAudioDuration()`._ diff --git a/packages/media-utils/src/get-audio-duration-in-seconds.ts b/packages/media-utils/src/get-audio-duration-in-seconds.ts index 948154dac51..6bf027bb592 100644 --- a/packages/media-utils/src/get-audio-duration-in-seconds.ts +++ b/packages/media-utils/src/get-audio-duration-in-seconds.ts @@ -45,9 +45,10 @@ const fn = (src: string): Promise => { }); }; -/* +/** * @description Gets the duration in seconds of an audio source by creating an invisible `