JWplayer Technical Assessment

Please find below my submitted answers to the technical assessment...

Section 1

Writing and communication

1. Please give a brief description to demonstrate your familiarity with the following formats:
  • MP4: Commonly used to store video and audio, but it can also be used to store other data such as subtitles and still images
  • HLS: A media streaming protocol for delivering visual and audio media to viewers over the internet, default for IOS devices
  • RTMP: An open-source protocol owned by Adobe that's designed to stream audio and video by maintaining low latency connections.
  • FLV: A file format used by Adobe Flash Player and Adobe AIR to store and deliver synchronized audio and video streams over the Internet. There are two different FLV formats, F4V for H.264-based content and open FLV for other supported codecs.
  • WEBM: A documented, non-propriety, royal free open-source format developed and maintained by Google optimized for web-based media content.
  • VAST: “Video Ad Serving Template,” is a script that gives video players information about which ad to play, how the ad should show up, how long it should last, and whether users are able to skip it.
  • IMA: Interactive Media Ads (IMA) is a suite of SDKs that make it easy to integrate multimedia ads into your websites and apps. IMA SDKs can request ads from any VAST-compliant ad server and manage ad playback in your apps.
  • VPAID: Stands for Video Player Ad-Serving Interface Definition. It's an ad template with a focus on delivering inline creatives to video players. VPAID inherits the IAB communication standard for delivery and third-party video players when layered with VAST.
  • VMAP: Video Multiple Ad Playlist (VMAP) specification is an XML template that video content owners can use to describe the structure for ad inventory insertion when they don't control the video player or the content distribution outlet.
  • WideVine: Widevine Classic uses .WVM file format, which is a proprietary packaging format. Widevine Modular: It is current Widevine DRM which is developed with new specifications and features. Widevine Modular supports adaptive streaming formats such as DASH/HLS as well as HTML5 standards
  • PlayReady: Specifies the number of PlayReady Object Records in the PlayReady Object. Contains a variable number of records that contain information related to licenses and license acquisition.
  • FairPlay: A digital rights management (DRM) technology developed by Apple Inc. It is built into the MP4 multimedia file format as an encrypted AAC audio layer, and was used until April 2009 by the company to protect copyrighted works sold through iTunes Store, allowing only authorized devices to play the content.
2. Which of the above video formats do not playback on mobile devices?

WEBM: Needs a third-party app to play on IOS devices. Whereas Android devices despite a fact that WebM is on the list of Android Supported Media Formats, uses tend to run into the following issues;

  • The WebM file is corrupted or damaged during the device-to-device transferring or downloading from Web.
  • WebM file may not have been encoded in common video codec (VP8 or VP9).
  • You are using media player that cannot recognize and decode WebM file.
  • The current device OS build version doesn't support WebM file.

Not asked but answered...
Widevine modular is supported on Android (4.4 – 5.1), Android (6+) and Huawei but not on Windows phones and IOS devices.

WideVine Classic is supported on Android (3.1 – 4.3) and Android (4.4 – 5.1) but not on Android (6+), IOS, Windows phones and Huawei devices.

PlayReady is only supported on Windows phones.

Fairplay works on IOS but not on android, Huawei and windows mobile phones or tablets.


3. How would you explain an SDK to someone who doesn’t have a strong background in technology?

Software Development Kits
SDK stands for “Software Development Kit”, which is a great way to think about it — a kit. Think about putting together a model car or plane. When constructing this model, a whole kit of items is needed, including the kit pieces themselves, the tools needed to put them together, assembly instructions, and so forth.

An SDK or devkit functions in much the same way, providing a set of tools, libraries, relevant documentation, code samples, processes, and or guides that allow developers to create software applications on a specific platform.

Section 2

Embedding JW Player on a web page

Level 1 - Set up a JW Player. Use the OnComplete() feature from our JavaScript API, to pop up a JavaScript alert that says "thanks for watching!" when the video completes
Loading the player

Section 3

Playback issue.
One of our customers has opened a support case stating that their video (https://d2onmd7jxrypb4.cloudfront.net/myvideo.m3u8) will not play back.

  • The HTTP 403 is an HTTP status code meaning access to the requested resource is forbidden. The server understood the request, but will not fulfill it. This could be related to geoblocking which is technology that restricts access to internet content based upon the user's geographical location.

  • To fix this issue in cloud front you could...
      1. Open the CloudFront console.
      2. Choose the distribution that you want to apply geo restriction to.
      3. Choose the Geographic Restrictions tab.
      4. Choose Edit.
      5. To allow access to countries, for Restriction type choose Allow List
      6. For Countries, select the countries that you want to allow or block.
      7. Choose Save Changes

  • The request is initiated over HTTP, but the CloudFront distribution is configured to only allow HTTPS requests.

  • The requested alternate domain name (CNAME) isn't associated with the CloudFront distribution.

  • Try adding https:// infront of cloudfront domain, an "alternate domain" to the cloudfront distribution in the control pannel. For instance... www.example.com vs example.com. CloudFront requires both domains to be covered in the alternative domain names list, which requires a single AWS ACM SSL cert to cover both, as well as the appropriate CNAME records configured in the DNS.

  • The request could not be satisfied. Request Blocked" is an error from the client. This error can occur due to AWS Web Application Firewall (AWS WAF) rules associated with the CloudFront distribution. To troubleshoot this error, first check the AWS WAF default action that is set on the associated web access control list (web ACL).

Section 4

Below you will find a workplace scenario.
Your answer can be brief, one paragraph is sufficient. Please be as honest as possible on how you would approach these issues. We are looking for diverse and innovative solutions to our everyday problems. There is no right or wrong.

Scenario:

One of our customers has a critical/P1 support issue. Their live video stream has failed to start at the scheduled time. The customer is extremely frustrated as this has happened twice in the past 6 months. The support team resolved the issue within the customer’s Service Level Agreement on both occasions however the customer is not happy that the same issue has occurred on two different occasions and has lost faith in the solution. How would you deal with this scenario?

Answer:

Confirm that both issues are the same, Confirm what percentage of customers were affected by the live stream fault, Has there been a problem raised under the ITIL working format and submitted to the relevent team to resolve ongoing issue with the solution? Take ownership of the issue and present findings to customer whilst comparing both "failed starts". Show empathy with the cusomer and ensure them that full commincation will be provided until the faulty live stream start has been fixed.