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年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ