[Implemented] Direct Play support in Plex/Web

As a user of PMS on Synology ARM-based NAS box, would be really great if Plex/Web would simply direct play content or at least attempt a direct play.  Since us ARM-based users don't have transcode support this really does cripple an incredibly useful aspect of Plex.  Nearly all other Plex "clients" support direct play and work great with my setup.

 

I've already taken the pains to transcode my library to work within the limits of ARM (most content is either 480p or 1080p h.264 and between 1 and 4 Mbps) - would love to be able to play it back via web browser.

 

For now I always get the dreaded "Cannot load: M3U8" error.....

 

 

As a user of PMS on Synology ARM-based NAS box, would be really great if Plex/Web would simply direct play content or at least attempt a direct play.  Since us ARM-based users don't have transcode support this really does cripple an incredibly useful aspect of Plex.  Nearly all other Plex "clients" support direct play and work great with my setup.

I've already taken the pains to transcode my library to work within the limits of ARM (most content is either 480p or 1080p h.264 and between 1 and 4 Mbps) - would love to be able to play it back via web browser.

For now I always get the dreaded "Cannot load: M3U8" error.....

It will where it can, but codec support over HLS is extremely limited in browsers and even then supported differently on various platforms.  Which browser and OS are you using?

I've got a few different clients:

Win7x64 + IE9 or Chrome

Win8x64 + IE10 or Chrome

All right now result in Cannot load: M3U8 404 Not Found errors when I try to playback through Plex/Web.

I've got a few different clients:

Win7x64 + IE9 or Chrome

Win8x64 + IE10 or Chrome

All right now result in Cannot load: M3U8 404 Not Found errors when I try to playback through Plex/Web.

and they do direct play on other mobile devices? (i.e., you have already sorted all the moov atom type requirements to make the media itself direct playable)

aka, if you view the media info on your media in Plex/Web, optimize for streaming is set to 1.

OK - this is good info - I check and my whole library is all set to streaming = 0.   What tools would adjust this.  I can direct play from Roku, Android, iOS, etc. without issue as I suppose that is due to being able to force Direct Play from the client?

If I need to edit this metadata how would I go about that?

Here is full media info for example file - all are basically transcoded the same with the exception of some that are 1080p and ~3Mbps bit rate:

<span style="color:#000000;">MEDIA</span>
  • Duration 1:40:59
  • Bitrate 1170 kbps
  • Width 720
  • Height 480
  • Aspect Ratio 1.78
  • Video Resolution 480p
  • Container MP4
  • Video Frame Rate 24p
  • Optimized For Streaming 0
<span style="color:#000000;">FILE</span>
  • Accessible Yes
  • Exists Yes
  • Duration 1:40:59
  • File /volume1/video/Family/xxxxx (2010)/xxxxx (2010).mp4
  • Size 845.34 MB
  • Container MP4
  • Has 64bit Offsets 0
  • Optimized For Streaming 0
<span style="color:#000000;">VIDEO</span>
  • Codec H264
  • Bitrate 1006 kbps
  • Anamorphic 1
  • CABAC 1
  • Duration 1:40:59
  • Frame Rate 23.976 fps
  • Height 480
  • Level 3.0
  • Pixel Aspect Ratio 32:27
  • Profile main
  • Ref Frames 2
  • Width 720
<span style="color:#000000;">AUDIO</span>
  • Codec AAC
  • Channels Stereo
  • Bitrate 159 kbps
  • Language English
  • Bitrate Mode VBR
  • Duration 1:40:59
  • Profile lc
  • Sampling Rate 48000 Hz

OK - this is good info - I check and my whole library is all set to streaming = 0.   What tools would adjust this.  I can direct play from Roku, Android, iOS, etc. without issue as I suppose that is due to being able to force Direct Play from the client?

If I need to edit this metadata how would I go about that?

Here is full media info for example file - all are basically transcoded the same with the exception of some that are 1080p and ~3Mbps bit rate:

MEDIA

  • Duration 1:40:59
  • Bitrate 1170 kbps
  • Width 720
  • Height 480
  • Aspect Ratio 1.78
  • Video Resolution 480p
  • Container MP4
  • Video Frame Rate 24p
  • Optimized For Streaming 0
FILE
  • Accessible Yes
  • Exists Yes
  • Duration 1:40:59
  • File /volume1/video/Family/xxxxx (2010)/xxxxx (2010).mp4
  • Size 845.34 MB
  • Container MP4
  • Has 64bit Offsets 0
  • Optimized For Streaming 0
VIDEO
  • Codec H264
  • Bitrate 1006 kbps
  • Anamorphic 1
  • CABAC 1
  • Duration 1:40:59
  • Frame Rate 23.976 fps
  • Height 480
  • Level 3.0
  • Pixel Aspect Ratio 32:27
  • Profile main
  • Ref Frames 2
  • Width 720
AUDIO
  • Codec AAC
  • Channels Stereo
  • Bitrate 159 kbps
  • Language English
  • Bitrate Mode VBR
  • Duration 1:40:59
  • Profile lc
  • Sampling Rate 48000 Hz

look for a tool called QT-faststart, 

once done, you will need to re-analyze the media in Plex (enter each section, then More -> Analyze Media)

Awesome Trudge - thanks.  Will try tonight once I'm back at home and will report back my results - this will likely solve my issue.

Trudge - thanks so much - tried the python version of qt-faststart and that did the trick - now my .mp4 have the moov atom at the front of the file.   Media analyze now shows  "optimized for streaming 1" and a fixed file plays back via plex/web.

Thanks so much as this was driving me nuts!

Early 2021 clean-up: implemented