Plex introduced an Auto-Sync Subtitles feature that aligns subtitles with audio using an algorithm that detects voices, supporting external SRT files and those from OpenSubtitles.com.
The feature requires a Plex Pass subscription, voice activity detection, and media analysis enabled on the server, but won’t work on some systems like FreeBSD, Nvidia Shield, and certain NAS servers.
Plex is expanding its app offerings, including a new dedicated photos app in open beta, and currently offers a 20% discount on Lifetime Plex Pass subscriptions.
I should get lifetime…
What I’d like is the ability to fix out-of-sync audio. My wife won’t watch movies/tv/etc on Plex (on Roku) because some part of it creates an audio delay, and it really bothers her that the audio doesn’t match the lip movement.
I’ve tried all sorts of settings, both server and client. It mostly only seems to affect my Roku, though, so that seems to be the issue. I just want to add a small video delay or something.
I usually don’t skip an opportunity to rip on Roku but it’s possible the player supports the video codec but the audio is being software rendered.
Our stereo system also added delay for some codecs so we had to change that as well
We had to retranscode some of our library because my dad really likes his Roku
Do you have somewhere I could get more information?
Most of my video files are mkv, encoded as MPEG, and audio is AC3 5.1, but I’m only playing audio through my TV speakers, so maybe it’s transcoding for my cheap 2-speaker setup? I also typically enable subtitles, which I think can cause transcoding.
I’ve enabled Direct Stream wherever I could find it, but it didn’t seem to have any effect.
What I would do if look at every point in the video and audio chain and validate they all support hardware decoding (or passthrough / direct stream) for your supported codec.
Based on what you told me. I know your chain might look something like this:
Server > Network > streamer > HDMI > TV > audio cable > receiver or amp > audio cable > speaker
For your two speaker setup, is it hooked up with a digital cable or analogue?
If the stereo is analogue, does it support audio at a different sampling and bitrate than what the player puts out?
Or if it’s digital, does it support AC3? In a quick search I saw complaints about EAC3 not working well despite being advertised as such. So I wouldn’t rule it out.
When you stream from the Roku, you can look in your media servers settings to see if it’s transcoding the video or audio. However for the stereo system, or whatever is powering the speakers, you would have to reference its supported formats.
I did find the Roku Developers page and something noteworthy is
Supported video codecs
Videos can be encoded using H.264, HEVC (H.265), VP9, or AV1 (DASH only) codecs.
Something else that may be a good lead, looking at their supported audio codecs it lists
16bit | 48 Khz | Passthrough
For AC3, this is a but ambiguous to me, if given 44.1hkz (much more popular), will it pass through 44.1khz? Will it be delayed? Will it refuse to play? They also don’t specify if this is hardware accelerated or software decoding within the Roku.
If the Roku’s cpu is being fully utilized decoding video in software, it may not have the cpu to decode the audio reliably. This is unlikely as most streamers are built with hardware decoding support to enable cheaper smaller lower power components to be used.
I did see on the forums people recommend AAC for general support but Roku themselves recommenf E-AC3 for 5.1 audio.
People often recommend forcing Direct Stream and disabling transcoding as a troubleshooting step to force out the container formats that won’t work. It may also be worth a test and see if you lose audio.
As for where I look specifically, I tend to look for the most verbose documentation I can find, the Roku developer docs i linked would be what I would look for. I also did a lot of research on audio gear which helped as prior knowledge. Audio-science review forums taught me a lot over time from reading reviews.
As an aside I generally recommend Open Source formats where possible (AC3 and EAC3 are not) because they tend to have broader support in perpetuity. I also find Android players tend to have very broad codec support (piggybacking mobile phone components).
But I don’t like to recommend new hardware in general because not everyone can buy a new device.
This is a bit all over the place at this point, but I hope it gives you some leads for determining the cause!
That’s an amazing writeup. Thanks! I’ll take a look.
I did some testing, and it turns out I did not have Direct
StreamPlay forced. I think I enabled it at one point, but I didn’t see much difference on the “worst case scenario” video I was testing with, so I turned it back off. Looking at the Dashboard page, I can see that, even with the setting forced, that particular video is still transcoding video from MPEG2VIDEO to H264, and audio from AC3 5.1 to AAC. I may have to look into re-encoding that particular series, though the files for that show should have followed the same process as most of my other files, so I’m not sure why they’re different.Some other videos that I tested did show improvements when forcing Direct Play, but the Dashboard still shows transcoding (hw) video from H.264 to H264 (note the missing period) and transcoding audio from DTS-HD MA 5.1 to AC3.
As far as my TV setup, I don’t have external speakers. I’m essentially feral, and I don’t feel like they’re worth it in most situations. The built-in TV speakers get loud enough, and sound fine to me. I’d rather not have to defend that setup, so hopefully no one comes at me for that unless it’s actually responsible for the audio delay.
at least on Apple TV you can adjust the audio offset in the plex player. I think it’s a universal feature, give it a shot.
I have had similar issues with Plex on my Nvidia shield. Changing the audio track often helps
just put a delay in the image
Do you have a way to do that? I don’t see any settings that allow that, which is why I posted.
Or did you mean just re-encode all of my video files with a delay to fix the one device that has an issue?