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년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠