Jellyfin Forum
Remuxing or direct play buffers entire movie into RAM ? - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Remuxing or direct play buffers entire movie into RAM ? (/t-remuxing-or-direct-play-buffers-entire-movie-into-ram)

Pages: 1 2


Remuxing or direct play buffers entire movie into RAM ? - wyvernshill - 2024-08-17

Latest windows portable install : 10.9.9 64 bit.

Pointed the install directory and data to a separate SSD away from my operating system's disk and away from my hard drive that contains the media.

Using the ios store latest version of swiftfin on appletv 4K.

My "server" :
Ryzen 3900X
2080 Super
32 GB ram
16 TB Hard drive (media)
1 TB NVME for Windows 11 pro
2 TB NVME for games.

Description :
So i tried Jellyfin on my pc and use the swiftfin player on appletv to connect to it.
It all works fine except whenever a movie is started on the appletv and it starts without any transcoding (according to the dashboard on the pc) i see the entire movie being uploaded into RAM and even beyond.

My computer has 32 GB of ram and if i start a 30 GB movie it'll ramp up the usage to about 36 GB which means it used 30 GB of RAM + the memory already in use for the operating system.
At that point it starts swapping on the operating system's drive and the pc becomes unresponsive.

Stopping the movie on the appletv (swiftfin) sees that the memory use is released.
Starting a 6 GB movie that remuxes or direct plays and it uses about 12 GB of memory, it's each time exactly the size of the original file.

If however i launch the same movie on that pc/server via the webinterface it tells me it's transcoding and suddenly there is no issue and memory use only goes up a few gigabytes but no more.

Is there an issue with direct play or is this a swiftfin issue ? (I can't test on anything else but ios here, i have no other windows devices except the jellyfin server itself)
Unfortunately there seems to be no way to force swiftfin to transcode.

It seems weird that it tries to only remux in memory and not write it somewhere locally ?

I do not see a log being generated either ?

Thanks.


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-17

Where are you looking for the log? You can look in the Jellyfin Dashboard. In the left frame close to the bottom. Or in C:\ProgramData\Jellyfin\Server.


RE: Remuxing or direct play buffers entire movie into RAM ? - wyvernshill - 2024-08-17

Well i wiped the log files and restarted and now i got this.
Just like before i started the movie twice and each time after a few minutes it gobbles up all the RAM memory until it starts swapping.

Note i removed the personal and internal ip addresses from the log

[2024-08-17 22:27:18.655 +02:00] [INF] [1] Main: Jellyfin version: "10.9.9"
[2024-08-17 22:27:18.669 +02:00] [INF] [1] Main: Environment Variables: ["[JELLYFIN_LOG_DIR, G:\Progs\jellyfin\data\log]"]
[2024-08-17 22:27:18.672 +02:00] [INF] [1] Main: Arguments: ["G:\Progs\jellyfin\system\jellyfin.dll", "-d", "G:\Progs\jellyfin\data"]
[2024-08-17 22:27:18.674 +02:00] [INF] [1] Main: Operating system: "Microsoft Windows 10.0.22631"
[2024-08-17 22:27:18.674 +02:00] [INF] [1] Main: Architecture: X64
[2024-08-17 22:27:18.675 +02:00] [INF] [1] Main: 64-Bit Process: True
[2024-08-17 22:27:18.676 +02:00] [INF] [1] Main: User Interactive: True
[2024-08-17 22:27:18.677 +02:00] [INF] [1] Main: Processor count: 24
[2024-08-17 22:27:18.677 +02:00] [INF] [1] Main: Program data path: "G:\Progs\jellyfin\data"
[2024-08-17 22:27:18.678 +02:00] [INF] [1] Main: Log directory path: "G:\Progs\jellyfin\data\log"
[2024-08-17 22:27:18.679 +02:00] [INF] [1] Main: Config directory path: "G:\Progs\jellyfin\data\config"
[2024-08-17 22:27:18.679 +02:00] [INF] [1] Main: Cache path: "G:\Progs\jellyfin\data\cache"
[2024-08-17 22:27:18.680 +02:00] [INF] [1] Main: Web resources path: "G:\Progs\jellyfin\system\jellyfin-web"
[2024-08-17 22:27:18.681 +02:00] [INF] [1] Main: Application directory: "G:\Progs\jellyfin\system\"
[2024-08-17 22:27:18.783 +02:00] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "G:\Progs\jellyfin\data\cache"
[2024-08-17 22:27:18.852 +02:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[2024-08-17 22:27:18.949 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "REDACTED/12", "REDACTED/16"]
[2024-08-17 22:27:18.950 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: []
[2024-08-17 22:27:18.951 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "REDACTED/12", "REDACTED/16"]
[2024-08-17 22:27:18.953 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["REDACTED", "REDACTED", "REDACTED", "127.0.0.1"]
[2024-08-17 22:27:18.954 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["0.0.0.0"]
[2024-08-17 22:27:18.955 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is "Allowlist"
[2024-08-17 22:27:18.955 +02:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: []
[2024-08-17 22:27:24.060 +02:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TMDb" "10.9.9.0"
[2024-08-17 22:27:24.061 +02:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "Studio Images" "10.9.9.0"
[2024-08-17 22:27:24.062 +02:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "OMDb" "10.9.9.0"
[2024-08-17 22:27:24.079 +02:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "MusicBrainz" "10.9.9.0"
[2024-08-17 22:27:24.080 +02:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "AudioDB" "10.9.9.0"
[2024-08-17 22:27:24.167 +02:00] [INF] [1] Main: Kestrel is listening on "0.0.0.0"
[2024-08-17 22:27:24.688 +02:00] [WRN] [1] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: "G:\Progs\jellyfin\wwwroot". Static files may be unavailable.
[2024-08-17 22:27:24.725 +02:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks
[2024-08-17 22:27:24.725 +02:00] [INF] [13] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "F:\Media\Movies\Animatie"
[2024-08-17 22:27:24.725 +02:00] [INF] [9] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "F:\Media\Series\Animatie"
[2024-08-17 22:27:24.725 +02:00] [INF] [7] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "F:\Media\Series\Normaal"
[2024-08-17 22:27:24.725 +02:00] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "F:\Media\Movies\Normaal"
[2024-08-17 22:27:24.735 +02:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Generate Trickplay Images" set to fire at 2024-08-18 03:00:00.000 +02:00, which is 04:32:35.2647621 from now.
[2024-08-17 22:27:24.745 +02:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Extract Chapter Images" set to fire at 2024-08-18 02:00:00.000 +02:00, which is 03:32:35.2549993 from now.
[2024-08-17 22:27:25.005 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version "6.0.1"
[2024-08-17 22:27:25.165 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "decoders": ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
[2024-08-17 22:27:25.328 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "encoders": ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "mjpeg_qsv", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[2024-08-17 22:27:25.470 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["deinterlace_qsv", "hwupload_cuda", "overlay_opencl", "overlay_qsv", "overlay_cuda", "scale_cuda", "scale_opencl", "scale_qsv", "tonemap_cuda", "tonemap_opencl", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[2024-08-17 22:27:26.101 +02:00] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: "overlay_vaapi" with option "Action to take when encountering EOF from secondary input" is not available
[2024-08-17 22:27:26.221 +02:00] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: "overlay_vulkan" with option "Action to take when encountering EOF from secondary input" is not available
[2024-08-17 22:27:26.355 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "dxva2", "qsv", "d3d11va", "opencl"]
[2024-08-17 22:27:26.894 +02:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: "ffmpeg"
[2024-08-17 22:27:26.895 +02:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: "9c3190198dbb49ebbdcc3afd91761cf0"
[2024-08-17 22:27:26.896 +02:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete
[2024-08-17 22:27:26.897 +02:00] [INF] [1] Main: Startup complete 0:00:08.3652624
[2024-08-17 22:27:27.762 +02:00] [INF] [9] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Clean up collections and playlists" Completed after 0 minute(s) and 0 seconds
[2024-08-17 22:27:28.523 +02:00] [INF] [13] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Update Plugins" Completed after 0 minute(s) and 0 seconds
[2024-08-17 22:28:26.619 +02:00] [INF] [20] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Test". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-17 22:28:26.619 +02:00] [INF] [24] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Test". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-17 22:29:05.675 +02:00] [INF] [13] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Avatar: The Way of Water". Stopped at "636000" ms
[2024-08-17 22:29:05.718 +02:00] [INF] [27] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Test". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-17 22:30:59.536 +02:00] [INF] [10] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Avatar: The Way of Water". Stopped at "746000" ms
[2024-08-17 22:30:59.569 +02:00] [INF] [27] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Test". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-17 22:31:18.043 +02:00] [INF] [30] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "REDACTED" request


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-17

Hmmm.  Neither my main Linux Jellyfin server and my test Windows Jellyfin server showed any appreciable change in memory usage when direct playing.  Tried both 1080P and 4K HDR content.

   
   

The memory usage in Windows is from running Destiny, btw.  Not Jellyfin server.


RE: Remuxing or direct play buffers entire movie into RAM ? - wyvernshill - 2024-08-17

Well for me as you can see it keeps reading the file from disk F at about 140 MB/s and keeps storing it in RAM until i go over 32 GB of ram in use, at that point you can see my drive C/D (Windows) starting to swap.
When i stop the playback it releases the file in memory but it keeps doing that with ALL files i try to direct play which is most of them.

In this case the file is more than 30 GB but i have a few of my blurays which are even bigger so i can't even watch them because of this issue.

https://imgur.com/NWleA8H

P.S. thanks already for your responses.


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-17

Are you using an app to create a ram disk?


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-18

I was made aware of a dotnet bug being the culprit. Attempting to replicate with a particular set of conditions.


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-18

Hmmmm.  No memory usage.

Can you share the media info for the files in question?

   


RE: Remuxing or direct play buffers entire movie into RAM ? - wyvernshill - 2024-08-18

Sure, a few examples :

Avatar the Way of Water (2022)
Container: mkv
Path: F:\Media\Movies\Normaal\Avatar the Way of Water (2022).mkv
Size: 29008 MB

Subtitle
Title: Latin America (Forced) - Spanish - SUBRIP
Language: spa
Codec: SUBRIP
AVC: No
Default: No
Forced: Yes
External: No

Video
Title: 4K HEVC SDR
Codec: HEVC
AVC: No
Profile: Main 10
Level: 150
Resolution: 3840x2072
Aspect ratio: 1.85:1
Anamorphic: No
Interlaced: No
Framerate: 23.976025
Bitrate: 21024 kbps
Bit depth: 10 bit
Video range: SDR
Video range type: SDR
Color space: bt709
Color transfer: bt709
Color primaries: bt709
Pixel format: yuv420p10le
Ref frames: 1

Audio
Title: English - Dolby Digital+ - 5.1 - Default
Language: eng
Codec: EAC3
AVC: No
Profile: Dolby Digital Plus + Dolby Atmos
Layout: 5.1
Channels: 6 ch
Bitrate: 768 kbps
Sample rate: 48000 Hz
Default: Yes
Forced: No
External: No

Subtitle
Title: English - SUBRIP
Language: eng
Codec: SUBRIP
AVC: No
Default: No
Forced: No
External: No

Subtitle
Title: Latin America - Spanish - SUBRIP
Language: spa
Codec: SUBRIP
AVC: No
Default: No
Forced: No
External: No

This one is also direct playing and is a 10 GB file, it fills my ram to 16.5 GB trying to play it (10 GB movie + 6GB Windows use)

Captain Harlock Arcadia Of My Youth
Container: mkv
Path: F:\Media\Movies\Animatie\Captain Harlock Arcadia Of My Youth.mkv
Size: 10023 MB

Video
Title: U2 Encode (2-Pass x264 @ 9000 kbps) - 1080p - H264 - SDR
Codec: H264
AVC: Yes
Profile: High
Level: 41
Resolution: 1920x1080
Aspect ratio: 16:9
Anamorphic: No
Interlaced: No
Framerate: 23.976025
Bitrate: 10778 kbps
Bit depth: 8 bit
Video range: SDR
Video range type: SDR
Pixel format: yuv420p
Ref frames: 1
NAL: 4

Audio
Title: 5.1 FLAC (2013 Blu-ray Mix) - Japanese - Default
Language: jpn
Codec: FLAC
AVC: No
Layout: 5.1
Channels: 6 ch
Bitrate: 2880 kbps
Sample rate: 48000 Hz
Bit depth: 16 bit
Default: Yes
Forced: No
External: No

Subtitle
Title: Styled DVD Translation - English - Default - ASS
Language: eng
Codec: ASS
AVC: No
Default: Yes
Forced: No
External: No

Audio
Title: 2.0 FLAC (Original Theatrical Mix) - Japanese - Stereo
Language: jpn
Codec: FLAC
AVC: No
Layout: stereo
Channels: 2 ch
Bitrate: 960 kbps
Sample rate: 48000 Hz
Bit depth: 16 bit
Default: No
Forced: No
External: No


RE: Remuxing or direct play buffers entire movie into RAM ? - TheDreadPirate - 2024-08-18

Which track and subtitles are you using when this happens? I'm going to try making a Franken-file to as closely match your case.

Also, can you go to the control panel and list out what versions of .Net you have installed?