Cannot play mpegdash video created with amazon elastic transcoder in videogular

250 views Asked by At

I transcoded a few videos using Amazon Elastic Transcoder and I am using videogular also with wowza for some live videos. When I use wowza with mpegdash the players work fine. But when I try to use my transcoded files with cloudfront nothing works. Also I used the example from the videogular page I get the same errors. I am thinking that I am doing something wrong on my transcoded files. This is a sample of my transcoded files https://d19cwas8lp55sz.cloudfront.net/archivos/1048/mpegDash/playlist.mpd I used this example from videogular

Videogular Dash Plugin Example

I just changed the source and I got the same problems, I cannot play the file. I was getting some cors problems that got solved after I added ssl to my cloudfront distribution and added $sce.trustAsResourceUrl(), but I still get the same problems

Cannot play media. No decoders for requested formats: application/dash+xml

and

HTTP “Content-Type” of “application/dash+xml” is not supported. Load of media resource https://xxxxxxxxx/archivos/1053/mpegDash/playlist.mpd failed.

I checked the headers of my cloudfront distribution with curl and for the moment and they seem ok

I used curl like this

curl -H "origin: http://ramonaclient2.localdomain/" -v "https://xxxxxxxxxxx/archivos/1046/mpegDash/mpegDash0600k/2f79632dd95a45519d1ec09bc230aad3b824384d09edebd0e214aa07b9c0fc8b" 

I do the this on the headers

access-control-allow-origin: *
access-control-allow-methods: GET, HEAD

This is how I create my jobs for elastic transcoder in my java app

CreateJobOutput mpegDashAudio = new CreateJobOutput()
                .withKey("mpegDashAudio/" + outputKey)
                .withPresetId(MPEG_DASH_128K_AUDIO_PRESET_ID)
                .withSegmentDuration(SEGMENT_DURATION);
        CreateJobOutput mpegDash0600k = new CreateJobOutput()
                .withKey("mpegDash0600k/" + outputKey)
                .withPresetId(MPEG_DASH_600K_PRESET_ID)
                .withSegmentDuration(SEGMENT_DURATION);
        CreateJobOutput mpegDash1200k = new CreateJobOutput()
                .withKey("mpegDash1200k/" + outputKey)
                .withPresetId(MPEG_DASH_1200K_PRESET_ID)
                .withSegmentDuration(SEGMENT_DURATION);
        CreateJobOutput mpegDash2400k = new CreateJobOutput()
                .withKey("mpegDash2400k/" + outputKey)
                .withPresetId(MPEG_DASH_2400K_PRESET_ID)
                .withSegmentDuration(SEGMENT_DURATION);
        CreateJobOutput mpegDash4800k = new CreateJobOutput()
                .withKey("mpegDash4800k/" + outputKey)
                .withPresetId(MPEG_DASH_4800K_PRESET_ID)
                .withSegmentDuration(SEGMENT_DURATION).withThumbnailPattern("thumbs/img-{resolution}-{count}");
1

There are 1 answers

0
Juan Diego On

It was more a cloudfront problem

I just needed to add

<AllowedHeader>range</AllowedHeader>