From 2e78ca2393a56ba958e50b951b4f3a366c3b6941 Mon Sep 17 00:00:00 2001 From: Merlin Scheurer Date: Fri, 1 May 2026 18:52:04 +0200 Subject: [PATCH] Fix bitrate being treated as byterate in video and audio streams (#1164) --- frontend/src/components/VideoListItemTable.tsx | 5 +++-- frontend/src/functions/bitsToBytes.ts | 5 +++++ frontend/src/pages/Video.tsx | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 frontend/src/functions/bitsToBytes.ts diff --git a/frontend/src/components/VideoListItemTable.tsx b/frontend/src/components/VideoListItemTable.tsx index 52b7cc2a..dc09c585 100644 --- a/frontend/src/components/VideoListItemTable.tsx +++ b/frontend/src/components/VideoListItemTable.tsx @@ -8,6 +8,7 @@ import { useUserConfigStore } from '../stores/UserConfigStore'; import { useVideoSelectionStore } from '../stores/VideoSelectionStore'; import iconChecked from '/img/icon-seen.svg'; import iconUnchecked from '/img/icon-unseen.svg'; +import bitsToBytes from '../functions/bitsToBytes'; const StreamsTypeEmun = { Video: 'video', @@ -97,9 +98,9 @@ const VideoListItemTable = ({ videoList, viewStyle }: VideoListItemProps) => { {`${videoStream?.width || '-'}x${videoStream?.height || '-'}`} {humanFileSize(media_size, useSiUnits)} {videoStream?.codec || '-'} - {humanFileSize(videoStream?.bitrate || 0, useSiUnits)} + {humanFileSize(bitsToBytes(videoStream?.bitrate || 0), useSiUnits)} {audioStream?.codec || '-'} - {humanFileSize(audioStream?.bitrate || 0, useSiUnits)} + {humanFileSize(bitsToBytes(audioStream?.bitrate || 0), useSiUnits)} ); })} diff --git a/frontend/src/functions/bitsToBytes.ts b/frontend/src/functions/bitsToBytes.ts new file mode 100644 index 00000000..ed8c3f86 --- /dev/null +++ b/frontend/src/functions/bitsToBytes.ts @@ -0,0 +1,5 @@ +function bitsToBytes(bits: number) { + return bits / 8; +} + +export default bitsToBytes; diff --git a/frontend/src/pages/Video.tsx b/frontend/src/pages/Video.tsx index 1198fe48..2a4e39f7 100644 --- a/frontend/src/pages/Video.tsx +++ b/frontend/src/pages/Video.tsx @@ -45,6 +45,7 @@ import NotFound from './NotFound'; import { ApiResponseType } from '../functions/APIClient'; import VideoThumbnail from '../components/VideoThumbail'; import { ViewStylesEnum, ViewStylesType } from '../configuration/constants/ViewStyle'; +import bitsToBytes from '../functions/bitsToBytes'; const isInPlaylist = (videoId: string, playlist: PlaylistType) => { return playlist.playlist_entries.some(entry => { @@ -460,7 +461,7 @@ const Video = () => { return (

{capitalizeFirstLetter(stream.type)}: {stream.codec}{' '} - {humanFileSize(stream.bitrate, useSiUnits)}/s + {humanFileSize(bitsToBytes(stream.bitrate), useSiUnits)}/s {stream.width && ( <> | {stream.width}x{stream.height}