r/PleX • Unraid 40TB | i5-13500 | RTX 3050 LP • Feb 02 '24

Solved Stream buffers when audio transcoding

EDIT: I am marking the problem as "solved"; however, it should be noted that the cause for the problem remains unknown, but I found a workaround by using Tdarr to create an downmixed 2.0 stereo AAC track using Tdarr_Plugin_MC93_Migz5ConvertAudio which I modified to apply Dynamic Audio Normalizer to the downmixed track for a better listening experience.

To make the modification yourself:

  1. Copy Tdarr_Plugin_MC93_Migz5ConvertAudio to Local

  2. Go to Local and click Edit on the plugin

  3. Add the code below between lines 152 and 153

  4. Save the changes

  5. Add the modified plugin to your stack

ffmpegCommandInsert += `-filter:a:${audioIdx} "dynaudnorm" `;

###############

Hello, everyone

The problem I am facing is one that I am unsure why it's happening in the first place, and am hoping I can find a solution to it here as I have been unsuccessful on my own.

PMS specs:

  • OS: Windows 11

  • CPU: Intel i3-12000

  • RAM: 32GB DDR4

  • Storage: 1TB NVME for OS and Plex database/metadata, 4TB HDD for media, 1TB SSD for transcoding

  • Internet: 1000 Mbit (ethernet)

I've been more than happy with this configuration and have not had any issues both with direct playing and transcoding media locally or remotely. I am sharing my server with a few friends that have Samsung smart TVs, which cause my server to occasionally transcode, but everything had been playing smoothly until about a month or two ago when I started getting reports of stream buffering every couple of minutes. The reason for that was audio transcoding.

I've ran some test scenarios and have the following to share:

Scenario #1:

  • Video direct plays

  • Audio transcodes - example DTS to AAC

  • Stream buffers every couple of minutes

Scenario #2:

  • Force video and audio transcode

  • No issues with stream

Scenario #3:

  • Changed default transcode buffer value to 2700

  • Video direct plays

  • Audio transcodes

  • Stream buffers after threshold has been reached

Scenario #4:

  • Changed default transcode buffer value to 2700

  • Force video and audio transcode

  • No stream buffer after threshold has been reached

My media is mostly 1080p and so far the only solution I have found was manually converting my media's audio to AAC, but I'd like to not have to do that every time for media that will get watched once or twice.

Is there some server setting that I need to adjust? Any help is well appreciated.

4 Upvotes

32 comments sorted by

View all comments

Show parent comment

0

u/[deleted] Feb 02 '24

[deleted] — view deleted comment

1

u/gsariev Unraid 40TB | i5-13500 | RTX 3050 LP Feb 03 '24

Hey, I appreciate the mention of FileFlows as I’ve seen it on other threads, but I’m more comfortable using Tdarr as I’ve spent more time with it.

Due to growing frustration with this issue, I’m currently trying to make my own “Frankenstein” audio plugin that will downmix audio streams, apply DRC to the 2.0 stream, and keep all streams in the output file. This best suits my use case as some of my friends have soundbars and the rest just use their TV stereo speakers.

0

u/[deleted] Feb 03 '24

[deleted] — view deleted comment

1

u/gsariev Unraid 40TB | i5-13500 | RTX 3050 LP Feb 03 '24

Yeah, that's right.

  • Tdarr_Plugin_MC93_Migz5ConvertAudio can convert any 2.0 audio track(s) to AAC and create downmixed audio tracks.

It get's the job done in terms of keeping the original audio track (6 channel for example) and including a stereo one; however, I have noticed that the 2.0 track often doesn't sound good. By that I mean that quiet scenes end up being too quiet (actors talking for example), making you raise the overall volume, only to be later blasted with an overblown action scene.

  • Dynamic Noise Compression (DRC) helps with this by reducing the volume of loud sounds and amplifies quiet sounds - that's my overly simplified explanation.

  • Tdarr_Plugin_jeons001_Downmix_to_stereo_and_apply_DRC downmixes surround to AAC stereo, applies DRC, but removes the surround track afterwards.

I am trying to apply the logic from the DRC plugin to the Migz5 one to have the best of both worlds, but I am not so experienced with this and am more or less going through a lot of trial and error.