HEVC/MP4 Movies Stutter on Various Devices

Here is the same video & audio stream in a MP4 container

  1. Move the LG demo MKV file out from where it is now (anywhere Plex won’t see it)
  2. Move this file in its place
  1. Scan files (so PMS updates)
  2. Play
1 Like

Ok, I deleted the MKV Test Video, Scanned (to remove from library), added in the MP4 Test Video, Scanned, and Played. It also played flawlessly.

That confirms the problem is neither MKV or MP4 containers. :white_check_mark:
It also confirms you don’t have a network bitrate problem :white_check_mark:

With these Player settings, If you go back to “Creed” and play it, what happens ?

1 Like

I’ve since ran Creed through MKVToolNix, so that file no longer stutters, but other files, like Guardians of the Galaxy, still stutters under the current settings.

And yes, @OttoKerner helped me determine it is specific HEVC/MP4 files that are causing the issue, not all HEVC/MP4 files. As such, I am in the process of converting those specific HEVC/MP4 files to play properly. I am just curious why the files cause an issue on some devices and not others.

If you can grab the XML for me of any of those problematic files and share it, I’ll look and see if I can spot what the root problem is.

  1. Hover over the movie poster
  2. Click ellipsis
  3. Get Info
  4. View XML
  5. You can copy & paste the text or a screenshot (your choice) as long as I can see all of it
1 Like

I will do you one better, attached are two XMLs, one with a test video that stutters, and the other that plays fine. Let me know if you need any more information.

Test Video w/ Stutter:

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="35" librarySectionTitle="Other Videos" librarySectionUUID="7244075b-b3b4-416e-b858-7d595bf7bda8" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1744189307">
<Video ratingKey="127021" key="/library/metadata/127021" guid="tv.plex.agents.none://127021" type="movie" title="Test Video VeeTwo (2025)" librarySectionTitle="Other Videos" librarySectionID="35" librarySectionKey="/library/sections/35" subtype="clip" summary="" thumb="/library/metadata/127021/thumb/1745445619" art="/library/metadata/127021/art/1745445619" duration="212887" addedAt="1745364260" updatedAt="1745445619" createdAtAccuracy="epoch" createdAtTZOffset="-25200">
<Media id="233115" duration="212887" bitrate="1875" width="1920" height="800" aspectRatio="2.35" audioChannels="6" audioCodec="aac" videoCodec="hevc" videoResolution="1080" container="mp4" videoFrameRate="24p" optimizedForStreaming="1" audioProfile="lc" has64bitOffsets="0" videoProfile="main 10" hasVoiceActivity="0">
<Part accessible="1" exists="1" id="273762" key="/library/parts/273762/1745364260/file.mp4" duration="212887" file="/volume1/Test Movies/Test/Test Video VeeTwo (2025).mp4" size="49905809" audioProfile="lc" container="mp4" has64bitOffsets="0" optimizedForStreaming="1" videoProfile="main 10">
<Stream id="820046" streamType="1" default="1" codec="hevc" index="0" bitrate="1646" bitDepth="10" chromaLocation="left" chromaSubsampling="4:2:0" codecID="hvc1" codedHeight="800" codedWidth="1920" colorRange="tv" frameRate="23.976" height="800" level="120" profile="main 10" refFrames="1" streamIdentifier="1" width="1920" displayTitle="1080p" extendedDisplayTitle="1080p (HEVC Main 10)"> </Stream>
<Stream id="820047" streamType="2" selected="1" default="1" codec="aac" index="1" channels="6" bitrate="224" audioChannelLayout="5.1" profile="lc" samplingRate="48000" streamIdentifier="2" displayTitle="Unknown (AAC 5.1)" extendedDisplayTitle="Unknown (AAC 5.1)"> </Stream>
<Stream id="820052" key="/library/streams/820052" streamType="3" canAutoSync="0" codec="srt" language="English" languageTag="en" languageCode="eng" format="srt" displayTitle="English" extendedDisplayTitle="English (SRT External)"> </Stream>
</Part>
</Media>
<Image alt="Test Video VeeTwo (2025)" type="coverPoster" url="/library/metadata/127021/thumb/1745445619"/>
<Image alt="Test Video VeeTwo (2025)" type="background" url="/library/metadata/127021/art/1745445619"/>
<UltraBlurColors topLeft="03140b" topRight="1d335d" bottomRight="03101c" bottomLeft="081c15"/>
<Extras size="0"> </Extras>
<Related> </Related>
</Video>
</MediaContainer>

Test Video w/o Stutter:

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="35" librarySectionTitle="Other Videos" librarySectionUUID="7244075b-b3b4-416e-b858-7d595bf7bda8" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1744189307">
<Video ratingKey="127020" key="/library/metadata/127020" guid="tv.plex.agents.none://127020" type="movie" title="Test Video VeeThree (2025)" librarySectionTitle="Other Videos" librarySectionID="35" librarySectionKey="/library/sections/35" subtype="clip" summary="" thumb="/library/metadata/127020/thumb/1745445616" art="/library/metadata/127020/art/1745445616" duration="373165" addedAt="1745364324" updatedAt="1745445616" createdAtAccuracy="epoch" createdAtTZOffset="-25200">
<Media id="233114" duration="373165" bitrate="3954" width="1920" height="800" aspectRatio="2.35" audioChannels="6" audioCodec="aac" videoCodec="hevc" videoResolution="1080" container="mp4" videoFrameRate="24p" optimizedForStreaming="1" audioProfile="lc" has64bitOffsets="0" videoProfile="main 10" hasVoiceActivity="0">
<Part accessible="1" exists="1" id="273761" key="/library/parts/273761/1745364324/file.mp4" duration="373165" file="/volume1/Test Movies/Test/Test Video VeeThree (2025).mp4" size="184443725" audioProfile="lc" container="mp4" has64bitOffsets="0" optimizedForStreaming="1" videoProfile="main 10">
<Stream id="820043" streamType="1" default="1" codec="hevc" index="0" bitrate="3720" bitDepth="10" chromaLocation="left" chromaSubsampling="4:2:0" codecID="hvc1" codedHeight="800" codedWidth="1920" colorRange="tv" frameRate="23.976" height="800" level="120" profile="main 10" refFrames="1" streamIdentifier="1" width="1920" displayTitle="1080p" extendedDisplayTitle="1080p (HEVC Main 10)"> </Stream>
<Stream id="820044" streamType="2" selected="1" default="1" codec="aac" index="1" channels="6" bitrate="224" audioChannelLayout="5.1" profile="lc" samplingRate="48000" streamIdentifier="2" displayTitle="Unknown (AAC 5.1)" extendedDisplayTitle="Unknown (AAC 5.1)"> </Stream>
<Stream id="820051" key="/library/streams/820051" streamType="3" canAutoSync="0" codec="srt" language="English" languageTag="en" languageCode="eng" format="srt" displayTitle="English" extendedDisplayTitle="English (SRT External)"> </Stream>
</Part>
</Media>
<Image alt="Test Video VeeThree (2025)" type="coverPoster" url="/library/metadata/127020/thumb/1745445616"/>
<Image alt="Test Video VeeThree (2025)" type="background" url="/library/metadata/127020/art/1745445616"/>
<UltraBlurColors topLeft="4e1c08" topRight="3b491f" bottomRight="313332" bottomLeft="9c273b"/>
<Extras size="0"> </Extras>
<Related> </Related>
</Video>
</MediaContainer>

Edit: Here are pictures of the XML if it is more convenient:

Test Video w/ Stutter:

Test Video w/o Stutter:

Thank you.

All that is clean.

That tells me the timing (audio & video timestamps) inside the files have problems.
You’ve confirmed it’s fixed by running it through mkvtoolnix.

If you’d like, I can craft a little script, which you run either from the Synology command line or under Scheduled Tasks to process ALL your files.

Mkvtoolnix looks at timestamps in both the audio and video streams. It remultiplexes (reassembles) the output file according to those timestamps without touching the actual contents of the streams.

Here’s how the names get fixed:

[chuck@lizum testfiles.2005]$ test="/volume1/movies/MyMovie/MyMovie (2019).mp4"
[chuck@lizum testfiles.2006]$ 
[chuck@lizum testfiles.2006]$ echo $test
/volume1/movies/MyMovie/MyMovie (2019).mp4
[chuck@lizum testfiles.2007]$ Newname="${test%.*}.mkv"
[chuck@lizum testfiles.2008]$ echo $Newname
/volume1/movies/MyMovie/MyMovie (2019).mkv
[chuck@lizum testfiles.2009]$ 
  1. “test” is the filename I’m starting with
  2. Create “Newname” from “test” but remove the MP4 extension and add .mkv
  3. Print out the new name

The next step would be to invoke mkvmerge

mkvmerge -o"$Newname" "$test"
Errors=$?

if [ $Errors -gt 0 ]; then
  echo  "Errors while processing '$test'.  Deleting '$Newname'"
  rm "$Newname"
else
  echo "'$Newname' processed without errors.  Removing '$test'"
  rm "$test"
fi

There’s a little more script work to go with this but this is the foundation

1 Like

I appreciate the offer, but I am already utilizing a batch script that is converting all the files at issue (I’ve narrowed them down). Still a lot of files, but it will be much faster now that I have the files specified.

My main question still remains, why do these problematic files play with a stutter on some devices, but play normally on others?

Stutter is based on how much internal memory the device has.

If it has enough memory to receive the packets and hold the pending audio or video until the other part arrives – then you get playback.

If not, it stutters (pauses) –
– it waits for the data to be resent
– it assembles
– Now it plays what it can

1 Like

My assumption would be that the Firestick 4K MAX Gen 1 (2GB Memory) and PlayStation 5 would have more internal memory than the Firestick 4K Gen 1 (1.5 GB Memory), but this could be a false/incomplete assumption.

Edit: For clarity, the stutter persists in the Firestick 4K MAX Gen 1 and PS5, but there is no stutter in the Firestick 4K Gen 1.

Working RAM versus persistent app storage (Flash) are two different items.

FWIW: My stick is 2021 vintage

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.