Page 1 of 1

PlayStation 4 Profile

PostPosted: Thu Sep 17, 2015 10:10 pm
by teflontacticss
Hey all, I've been using this profile on my PlayStation 4 for a while and it seems to work for me on a low power system. It's obviously not the best result as I've only been able to figure out some of the limitations (I don't completely get the native profile system), but I've got AVI files, MKVs, and standard MP4s to play - the ones that aren't compatible transcoding to play.

Here's the profile code;

  Code:

   <Profile id="3" name="PlayStation 4" extendsProfileId="1">
      <MediaFormatProfiles>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L1_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L2_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L3_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/mp4" name="">MPEG4_P2_MP4_ASP_AAC</MediaFormatProfile>
      </MediaFormatProfiles>
      <Transcoding>
         <!-- Transcode all h264 video with HIGH/MAIN > Level 4.1 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
         <Video targetContainer="m2ts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="192" maxVBitrate="6000" forceStereo="true" aSamplerate="48000" >
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.1" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.1" />
            <Matches container="avi" />
            <Matches container="*" vCodec="h265" />
         </Video>
         <!--
            remux MKV with any video to MPEG2TS and possibly change audio to ac3, also AVI and FLV with H264
         -->
         <Video targetContainer="m2ts" targetACodec="ac3" aBitrate="192" forceStereo="true" aSamplerate="48000" >
            <Matches container="avi" vCodec="h264" />
            <Matches container="flv" vCodec="h264" />
            <Matches container="3gp" vCodec="h264" />
         </Video>
         <Video targetContainer="m2ts" >
            <Matches container="wtv" />
            <Matches container="asf" vCodec="mpeg2video"/> <!--  dvr-ms -->            
         </Video>
         <!-- all other unplayable files just transcode to mpeg2 -->
         <Video targetContainer="m2ts" targetACodec="ac3" targetVCodec="mpeg2video" forceStereo="true" aBitrate="192" maxVBitrate= "5000" aSamplerate="48000" >
            <Matches container="flv" />
            <Matches container="ogg" />
            <Matches container="3gp" />
            <Matches container="asf" vCodec="mpeg1video"/> <!--  dvr-ms -->
            <Matches container="asf" vCodec="vc1" aCodec="wmapro"/> <!-- only 2 channel audio is natively supported -->
            <Matches container="asf" vCodec="wmv2"/>
            <Matches container="rm" />
         </Video>
         
         <Audio targetContainer="lpcm" aSamplerate="48000">
            <Matches container="flac" />
            <Matches container="ogg" />
            <Matches container="adts" />
            <Matches container="wavpack" />
            <Matches container="mp2" />
            <Matches container="mpc" />
               <Matches container="ape" />
         </Audio>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="m2ts" targetACodec="ac3"  forceStereo="true" aBitrate="192" maxVBitrate= "6000" aSamplerate="48000" >
            <Matches container="mp4"/>               
             <Matches container="applehttp" vCodec="h264"/>
         </Video>
         <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3">
            <Matches container="asf"/> <!-- to support mms:// streams -->
         </Video>
         <!-- PS3 doesn't like mp3 with unlimited duration (eg online mp3 streams or streams transcoded into mp3 -->
         <Audio targetContainer="lpcm" aSamplerate="48000">
            <Matches container="mp3"/>
            <Matches container="flv"/>
            <Matches container="asf"/>
         </Audio>
      </OnlineTranscoding>
      <LimitImageResolution>false</LimitImageResolution>
      <AutomaticImageRotation>true</AutomaticImageRotation>
   </Profile>



Anyways, if anyone can offer any ways to improve native playback or simply wants to use this to get themselves up and running go ahead. :)

Re: PlayStation 4 Profile

PostPosted: Wed Sep 30, 2015 12:36 pm
by QHudspeth
Hey Teflon,
Thanks for posting the profile. As I've posted here, the profile doesn't work for me when transcoding audio, though video seems to do fine. The problem may lie with the PS4 not handling LPCM natively (since it doesn't have to play CDs as the PS3 did). However, I've tried just changing the targetcontainer tag to "mp3", with no result.

Curiously, MediaMonkey can transcode and stream to the PS4 just fine. Unfortunately, I can't get at their profiles, so I have no idea what they're doing. I also barely understand the profile scripts, so I'm at my limit on poking around in yours.

Q

Re: PlayStation 4 Profile

PostPosted: Sat Oct 03, 2015 10:47 pm
by teflontacticss
Hey QHudspeth,

Are you referring to straight up audio files or audio files contained in containers with video? Might be able to help.

Re: PlayStation 4 Profile

PostPosted: Tue Oct 20, 2015 5:17 pm
by QHudspeth
I'm referring to straight up audio, specifically FLAC and OGG, that aren't transcoding (or even showing up in the library when viewed) on the PS4, but work fine on the PS3.

Re: PlayStation 4 Profile

PostPosted: Sat Oct 31, 2015 2:30 am
by teflontacticss
QHudspeth wrote:I'm referring to straight up audio, specifically FLAC and OGG, that aren't transcoding (or even showing up in the library when viewed) on the PS4, but work fine on the PS3.


Try this;

  Code:
<Profile id="3" name="PlayStation 4" extendsProfileId="1">
      <MediaFormatProfiles>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L1_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L2_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L3_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/mp4" name="">MPEG4_P2_MP4_ASP_AAC</MediaFormatProfile>
      </MediaFormatProfiles>
      <Transcoding>
         <!-- Transcode all h264 video with HIGH/MAIN > Level 4.1 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
         <Video targetContainer="m2ts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="192" maxVBitrate="6000" forceStereo="true" aSamplerate="48000" >
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.1" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.1" />
            <Matches container="avi" />
            <Matches container="*" vCodec="h265" />
         </Video>
         <!--
            remux MKV with any video to MPEG2TS and possibly change audio to ac3, also AVI and FLV with H264
         -->
         <Video targetContainer="m2ts" targetACodec="ac3" aBitrate="192" forceStereo="true" aSamplerate="48000" >
            <Matches container="avi" vCodec="h264" />
            <Matches container="flv" vCodec="h264" />
            <Matches container="3gp" vCodec="h264" />
         </Video>
         <Video targetContainer="m2ts" >
            <Matches container="wtv" />
            <Matches container="asf" vCodec="mpeg2video"/> <!--  dvr-ms -->           
         </Video>
         <!-- all other unplayable files just transcode to mpeg2 -->
         <Video targetContainer="m2ts" targetACodec="ac3" targetVCodec="mpeg2video" forceStereo="true" aBitrate="192" maxVBitrate= "5000" aSamplerate="48000" >
            <Matches container="flv" />
            <Matches container="ogg" />
            <Matches container="3gp" />
            <Matches container="asf" vCodec="mpeg1video"/> <!--  dvr-ms -->
            <Matches container="asf" vCodec="vc1" aCodec="wmapro"/> <!-- only 2 channel audio is natively supported -->
            <Matches container="asf" vCodec="wmv2"/>
            <Matches container="rm" />
         </Video>
         
         <Audio targetContainer="mp3" aSamplerate="48000">
            <Matches container="flac" />
            <Matches container="ogg" />
            <Matches container="adts" />
            <Matches container="wavpack" />
            <Matches container="mp2" />
            <Matches container="mpc" />
            <Matches container="ape" />
         </Audio>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="m2ts" targetACodec="ac3"  forceStereo="true" aBitrate="192" maxVBitrate= "6000" aSamplerate="48000" >
            <Matches container="mp4"/>               
             <Matches container="applehttp" vCodec="h264"/>
         </Video>
         <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3">
            <Matches container="asf"/> <!-- to support mms:// streams -->
         </Video>
         <!-- PS3 doesn't like mp3 with unlimited duration (eg online mp3 streams or streams transcoded into mp3 -->
         <Audio targetContainer="lpcm" aSamplerate="48000">
            <Matches container="mp3"/>
            <Matches container="flv"/>
            <Matches container="asf"/>
         </Audio>
      </OnlineTranscoding>
      <LimitImageResolution>false</LimitImageResolution>
      <AutomaticImageRotation>true</AutomaticImageRotation>
   </Profile>

Re: PlayStation 4 Profile

PostPosted: Tue Nov 17, 2015 11:08 am
by DenyAll
Now that I (or more correctly my son) have a PS4 I have created a profile based on the PS3 profile, teflontacticss' profile above, integrating some other suggestions in the forum and added a few of my own:

  Code:
   <Profile id="ps4" name="Playstation 4" extendsProfileId="1">
      <!-- http://manuals.playstation.net/document/en/ps4/music/mp_format_m.html
      Videos
      MKV
         Visual: H.264/MPEG-4 AVC High Profile Level4.2
         Audio: MP3, AAC LC, AC-3 (Dolby Digital)
      AVI
         Visual: MPEG4 ASP, H.264/MPEG-4 AVC High Profile Level4.2
         Audio: MP3, AAC LC, AC-3 (Dolby Digital)
      MP4
         Visual: H.264/MPEG-4 AVC High Profile Level4.2
         Audio: AAC LC, AC-3 (Dolby Digital)
      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)
      Photos
         JPEG (DCF 2.0/Exif 2.21 compliant), BMP, PNG,
      Music
         MP3, AAC (M4A) -->
      <Detection>
         <HttpHeaders>
            <User-Agent>.*PlayStation 4.*</User-Agent>
         </HttpHeaders>
      </Detection>
      <MediaFormatProfiles>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L1_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L2_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/x-ms-wmv">VC1_ASF_AP_L3_WMA</MediaFormatProfile>
         <MediaFormatProfile mime-type="video/mp4" name="">MPEG4_P2_MP4_ASP_AAC</MediaFormatProfile>
      </MediaFormatProfiles>
      <Transcoding>
         <!-- Transcode all h264 video with HIGH/MAIN > Level 4.2 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="384">
            <Matches container="*" vCodec="h264" profile="high_10" />
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.2" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.2" />
            <Matches container="avi" vCodec="dvvideo" />
            <Matches container="matroska" vCodec="vp8" />
            <Matches container="*" vCodec="h265" />
         </Video>
         <!-- Remux any video with unsupported audio (DTS, FLAC, True-HD) changing audio to ac3,
             Also remux all AVI, 3GP and FLV with H264 changing audio to AC3 if needed -->
         <Video targetContainer="mpegts" targetACodec="ac3" aBitrate="384">
            <Matches container="*" vCodec="h264" aCodec="dca" />
            <Matches container="*" vCodec="h264" aCodec="dts-hd" />   
            <Matches container="*" vCodec="h264" aCodec="flac" />
            <Matches container="*" vCodec="h264" aCodec="truehd" />            
            <Matches container="avi" vCodec="h264" />
            <Matches container="flv" vCodec="h264" />
            <Matches container="3gp" vCodec="h264" />
         </Video>
         <Video targetContainer="mpegts" >
            <Matches container="wtv" />
            <Matches container="asf" vCodec="mpeg2video"/> <!--  dvr-ms -->            
         </Video>
         <!-- all other unplayable files just transcode to mpeg2 -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="384">
            <Matches container="avi" />
            <Matches container="flv" />
            <Matches container="ogg" />
            <Matches container="3gp" />
            <Matches container="mp4" vCodec="mpeg4"/>
            <Matches container="asf" vCodec="mpeg1video"/> <!--  dvr-ms -->
            <Matches container="asf" vCodec="vc1" aCodec="wmapro"/>
            <Matches container="asf" vCodec="wmv2"/>
            <Matches container="rm" />
         </Video>
         <Audio targetContainer="mp3" aSamplerate="48000">
            <Matches container="flac" />
            <Matches container="ogg" />
            <Matches container="adts" />
            <Matches container="wavpack" />
            <Matches container="mp2" />
            <Matches container="mpc" />
               <Matches container="ape" />
         </Audio>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="mpegts" targetACodec="ac3" aBitrate="384">
            <Matches container="mp4"/>               
             <Matches container="applehttp" vCodec="h264"/>
         </Video>
         <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3">
            <Matches container="asf"/> <!-- to support mms:// streams -->
         </Video>
         <Audio targetContainer="mp3" aSamplerate="48000">
            <Matches container="mp3"/>
            <Matches container="flv"/>
            <Matches container="asf"/>
         </Audio>
      </OnlineTranscoding>
      <LimitImageResolution>false</LimitImageResolution>
      <AutomaticImageRotation>true</AutomaticImageRotation>
      <ThumbnailsResolution>HD</ThumbnailsResolution>      
   </Profile>
Can everyone please test and submit changes/let me know of any issues. Once we have consensus we can package up for inclusion in the next Serviio release.

I haven't as yet tested subtitles.

Re: PlayStation 4 Profile

PostPosted: Tue Nov 17, 2015 11:11 am
by DenyAll
@zip: I can't get detection working for this - maybe you can provide some guidance. This is what I get in the log:

  Code:
2015-11-16 17:57:54,429 DEBUG [ServiioHttpService] Incoming request from /192.168.0.91:55279: GET /deviceDescription/c41c5514-0d79-3774-967b-023b9e31d01f HTTP/1.1, headers = [Host: 192.168.0.2:8895,Date: Mon, 16 Nov 2015 07:26:06 GMT,User-Agent: UPnP/1.0]]
2015-11-16 17:57:54,429 DEBUG [RendererDAOImpl] Reading a Renderer with ip address 192.168.0.91
2015-11-16 17:57:54,429 DEBUG [DeviceDescriptionRequestHandler] DeviceDescription request received for device c41c5514-0d79-3774-967b-023b9e31d01f from 192.168.0.91 (headers = [Host: 192.168.0.2:8895,Date: Mon, 16 Nov 2015 07:26:06 GMT,User-Agent: UPnP/1.0])
2015-11-16 17:57:54,429 DEBUG [RendererDAOImpl] Reading a Renderer with ip address 192.168.0.91
2015-11-16 17:57:54,445 DEBUG [RendererManager] Looking for a renderer profile for Http headers: [Host: 192.168.0.2:8895,Date: Mon, 16 Nov 2015 07:26:06 GMT,User-Agent: UPnP/1.0]
2015-11-16 17:57:54,445 DEBUG [RendererDAOImpl] Creating a new Renderer (uuid = ce7b39c2-1af8-4d0d-b415-c00663e19e81)
2015-11-16 17:57:54,538 INFO  [RendererManager] Stored a new renderer: uuid='ce7b39c2-1af8-4d0d-b415-c00663e19e81', name = 'Unrecognized device', ipAddress='192.168.0.91', profile = '1', accessGroupId = '1'
2015-11-16 17:57:54,538 DEBUG [RendererDAOImpl] Reading a Renderer with ip address 192.168.0.91
2015-11-16 17:57:54,554 DEBUG [DeviceDescriptionRequestHandler] Sending DeviceDescription XML back using profile 'Generic DLNA profile'
2015-11-16 17:57:54,570 DEBUG [ServiioHttpService] Incoming request from /192.168.0.91:54740: GET /icon/largePNG HTTP/1.1, headers = [Host: 192.168.0.2:8895,User-Agent: PS4Application libhttp/1.000 (PS4) libhttp/3.11 (PlayStation 4),Connection: Keep-Alive]]
The first line is the first time the PS4 is detected, but the header is non-descriptive. The last line shows has a more meaningful header (user agent) but is after the device is added to the renderer list. Any ideas?

Also, the thumbnails for movies are not the correct size (the thumbnail has its top cut-off). Is there any control over this?

Re: PlayStation 4 Profile

PostPosted: Tue Nov 17, 2015 4:12 pm
by zip
Does the PS4 appear in Intel tools' Device Info?

Re: PlayStation 4 Profile

PostPosted: Tue Nov 17, 2015 9:43 pm
by DenyAll
zip wrote:Does the PS4 appear in Intel tools' Device Info?
No, it doesn't.

Re: PlayStation 4 Profile

PostPosted: Sun Dec 27, 2015 11:56 am
by backhack
Hey Guy's,

i have just test the profile and it works fine. Some transcoding takes longer than expect but it is very good.

thank for the profile. It would be nice if this Profile is in the next release.

Re: PlayStation 4 Profile

PostPosted: Mon Dec 28, 2015 9:53 pm
by zip
It'll be included in 1.6. Thanks everyone for testing this.

Re: PlayStation 4 Profile

PostPosted: Sun Jan 03, 2016 2:26 am
by Nutte
Awesome news. Thanks to everyone!

I just discovered this thread; will test it shortly.

Re: PlayStation 4 Profile

PostPosted: Sun Jan 03, 2016 8:10 am
by DenyAll
There is also this topic: viewtopic.php?f=11&t=21282 which is probably the better one for any testing and feedback.

Re: PlayStation 4 Profile

PostPosted: Fri Jan 08, 2016 1:32 pm
by QHudspeth
Sorry everyone, but this profile still DOES NOT WORK.

It may transcode video just fine, but it does not transcode audio properly. When I enter the service in Media Player, any artists in FLAC format show as "There is no playable media".

Re: PlayStation 4 Profile

PostPosted: Fri Jan 08, 2016 11:16 pm
by DenyAll