Encoding profile for PS4

0

Hi All,

Looking to see if anyone has been successful in generating a job/presets that will playback on PS4 successfully. This would be for DASH outputs. The playstation developer documentation provides very high level requirements and have been testing some of the OTT presets and not having luck. Source vido is MP4 with stereo and optionally dd51 tracks available.

Thanks for any input.

MikeE1
已提問 3 年前檢視次數 261 次
4 個答案
0

Hey Mike,

Matthew from the AWS Team here. Hoping my colleagues and I can help on this.

How are you trying to play the file? Over the internet or local usb?

What type of error or playback issue do you experience?

Cheers,
Matthew

AWS
已回答 3 年前
0

Hi Mike,

Not sure if you've got any further info to hand.

Meanwhile, I'll provide any info I have on this post.

https://manuals.playstation.net/document/gb/ps4/music/mp_format_m.html

The key takeaway for USB is: When using a USB storage device, your video files need to be in a folder for your PS4™ system to recognise them.

For streaming, have you been able to confirm that the content plays on any other Dash player?

AWS
已回答 3 年前
0

Hello,

Just to add my colleague also has some useful notes when testing with video playback on PS4.

What I learned so far from my testing with NexPlayer is that the PS4 doesn’t like the <SegmentTemplate> element to be present in both AdaptationSet and Representation elements at the same time. Here are few examples:

The Dash manifest produced by EMT will either be skipped (so the player will jump to end of playback right away) or with certain modifications it also crashed the player. Here is an example of such manifest:

“write segment timeline in representation” was sufficient to make the output works properly in all my tests. This by default is disabled on AWS Elemental MediaConvert.


<Period duration="PT10S" id="_PT0S_0" start="PT0S">
<BaseURL>https://url.cloudfront.net/tm/url/url/</BaseURL>
<AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
<SegmentTemplate timescale="90000">
<SegmentTimeline>
<S d="180000" r="4" t="0"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation bandwidth="296000" codecs="avc1.64000d" height="240" id="7" width="416">
<SegmentTemplate initialization="asset_240_0_1_init.mp4" media="asset_240_0_1_$Time$.mp4">
<SegmentTimeline>
<S d="180000" r="4" t="0"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>

We manually modified the manifest to remove the <SegmentTemplate> from either location and it worked in both cases:


<Period duration="PT10S" id="_PT0S_0" start="PT0S">
<BaseURL>https://url.cloudfront.net/url/url/url/</BaseURL>
<AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
<SegmentTemplate timescale="90000" initialization="asset_$RepresentationID$_init.mp4" media="asset_$RepresentationID$_$Time$.mp4">
<SegmentTimeline>
<S d="180000" r="4" t="0"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation bandwidth="296000" codecs="avc1.64000d" height="240" id="240_0_1" width="416"></Representation>
<Representation bandwidth="480000" codecs="avc1.64001e" height="360" id="360_0_2" width="640"></Representation>
<Representation bandwidth="640000" codecs="avc1.64001e" height="360" id="360_0_3" width="640"></Representation>
<Representation bandwidth="896000" codecs="avc1.64001e" height="360" id="360_0_4" width="640"></Representation>
<Representation bandwidth="1280000" codecs="avc1.64001e" height="360" id="360_1_5" width="640"></Representation>
<Representation bandwidth="1536000" codecs="avc1.64001f" height="540" id="540_1_6" width="960"></Representation>
<Representation bandwidth="1856000" codecs="avc1.64001f" height="540" id="540_1_7" width="960"></Representation>
</AdaptationSet>

Or:


<Period duration="PT10S" id="_PT0S_0" start="PT0S">
<BaseURL>https://url.cloudfront.net/url/url/url/</BaseURL>
<AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
<Representation bandwidth="296000" codecs="avc1.64000d" height="240" id="7" width="416">
<SegmentTemplate timescale="90000" initialization="asset_240_0_1_init.mp4" media="asset_240_0_1_$Time$.mp4">
<SegmentTimeline>
<S d="180000" r="4" t="0"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation b

Hoping some of the information here is useful to you or anybody else trying to achieve similar!

Edited by: MatthewH-AWS on Jun 9, 2021 2:09 AM

AWS
已回答 3 年前
0

Sorry for the delay.

We did find that the segment template was causing the issue and generated a lambda function to strip it off and create a custom copy for PS4. We also got a response from Sony indicating that they should be releasing a new SDK Framework upgrade that will fix the issue (adding support for SegmentTemplate and a few other things). WebMAF 2.8.0 "Add support for Indexed Addressing (SegmentBase) format in multi-period DASH content"

MikeE1
已回答 3 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南