Skip to content

Instantly share code, notes, and snippets.

@mseeley
Last active May 16, 2024 06:39
Show Gist options
  • Save mseeley/ba83926642a7d076aa4b to your computer and use it in GitHub Desktop.
Save mseeley/ba83926642a7d076aa4b to your computer and use it in GitHub Desktop.
Work in progress Plex DLNA profile for the PlayStation 4 Media Player
<?xml version="1.0" encoding="UTF-8"?>
<Client name="PlayStation 4">
<!-- Author: Plex Inc. -->
<!-- http://blog.us.playstation.com/2015/06/15/media-player-coming-to-ps4/ -->
<Identification>
<Header name="User-Agent" substring="PlayStation 4" />
<Header name="User-Agent" substring="UPnP/1.0 DLNADOC/1.50" />
</Identification>
<TranscodeTargets>
<!--
Issues:
* No current time or duration is displayed.
* Cannot seek mpegts.
* The video sits on the last frame until user presses Back.
-->
<VideoProfile prototcol="http" container="mpegts" videoCodec="h264" audioCodec="ac3,aac" context="streaming" />
<PhotoProfile container="jpeg" />
<!--
No supported <MusicProfile> has been found.
-->
</TranscodeTargets>
<DirectPlayProfiles>
<!--
Visual: H.264/MPEG-4 AVC High Profile Level4.2
Audio: MP3, AAC LC, AC-3(Dolby Digital)
-->
<VideoProfile container="mkv" codec="h264" audioCodec="ac3,aac,mp3" />
<!--
Visual: H.264/MPEG-4 AVC High Profile Level4.2
Audio: AAC LC, AC-3(Dolby Digital)
-->
<VideoProfile container="mp4" codec="h264" audioCodec="ac3,aac" />
<!--
Visual: MPEG4 ASP, H.264/MPEG-4 AVC High Profile Level4.2
Audio: MP3, AAC LC, AC-3(Dolby Digital)
-->
<VideoProfile container="avi" codec="h264,mpeg4" audioCodec="ac3,aac,mp3" />
<!--
MPEG-2 TS
Visual: H.264/MPEG-4 AVC High Profile Level4.2, MPEG2 Visual
Audio: MP2(MPEG2 Audio Layer 2), AAC LC, AC-3(Dolby Digital)
AVCHD: (.m2ts, .mts)
Issues:
* No current time or duration is displayed.
* Cannot seek mpegts.
* The video sits on the last frame until user presses Back.
* AC3 support is hit-and-miss on a per-file basis.
* AAC audioCodec is supported but untested.
* Some interlaced videos frames jump or visually glitch. Unrelated to FPS.
-->
<VideoProfile container="mpegts" codec="h264,mpeg2video" audioCodec="ac3,aac,mp2" />
<MusicProfile container="mp3" codec="mp3" />
<MusicProfile container="mp4" codec="aac" />
<PhotoProfile container="bmp,jpeg,png" />
</DirectPlayProfiles>
<CodecProfiles>
<VideoCodec name="*">
<Limitations>
<UpperBound name="video.width" value="1920" />
<UpperBound name="video.height" value="1080" />
<UpperBound name="video.bitDepth" value="8" isRequired="false" />
</Limitations>
</VideoCodec>
<VideoAudioCodec name="aac">
<Limitations>
<Match name="audio.profile" value="lc" isRequired="false" />
</Limitations>
</VideoAudioCodec>
<VideoCodec name="h264">
<Limitations>
<UpperBound name="video.level" value="42" isRequired="false" />
</Limitations>
</VideoCodec>
</CodecProfiles>
<ContainerProfiles>
<PhotoContainer name="*">
<Limitations>
<!--
Pushed the value to a FUHD box. We respond with the full resolution for
36mp photos. The PS4 downloads the full res file and manages the photo
sizing itself. It doesn't display the file at its actual resolution but
it does give the user moderate pan/zoom.
-->
<UpperBound name="media.width" value="7680" />
<UpperBound name="media.height" value="7680" />
</Limitations>
</PhotoContainer>
</ContainerProfiles>
</Client>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment