Tag Archives: error

Amazon Cloudfront – Video Streaming (rtmp) Issue?

Are you using Amazon Cloudfront for public/private video streaming over rtmp? Having trouble to figure out why some of your videos fail to stream (over rtmp) and throw ‘Stream not found’  flash/actionscript client side errors?

I have figured out:

  • Videos with invalid chapter markers would not stream over rtmp (Adobe Flash Media Server) or via Cloudfront.
  • Adobe’s FLVCheck utility suggests our videos have invalid chapter markers. I am not sure, if chapter markers in our videos are invalid or Adobe Media Server expect those to be in different format.
  • Same set of videos play fine with Quicktime/VLC player, Adobe Flash Player (over http progressive download) and html5 player (chrome or others which support H.264 videos)

I am disappointed with the fact – Adobe Media Server ceases to play (core feature) a video because of (optional feature?) chapter marker(s) which can be ignored if it is corrupt or invalid.

Thanks to AWS engineers who confirmed the case, and provided more details.

Update: Thanks to Justin Riley for sharing a solution (in comments below). He suggested to use ‘-map_chapters -1′ to get rid of this issue. It works for me.

Amazon S3 RequestTimeTooSkewed Error

Recently, we have started noticing “RequestTimeTooSkewed” erro while making requests to Amazon S3. The official FAQs suggests following:

Amazon S3 requires all machines making requests be within 15 minutes of an Amazon S3 webserver’s clock

Reading documentation and various blog posts made me believe, this is problem with the date/time settings on machine (which makes request). However, in our case, it turned out to be something else.

We use boto (Python library) for AWS stuff. Boto caches the connection objects (for S3, EC2, SQS, etc.), and tries to reuse those in later calls.

Imagine a simple use-case:

  1. Read data from S3
  2. Process data on EC2-instance/your-server
  3. Store processed-data on S3

In our case, #2 takes longer than 15 minutes (allowed limit by S3) sometimes, hence,  we were noticing ‘RequestTimeTooSkewed’ error.

Anyway, we fixed it by explicitly creating a different/fresh S3(http) connection before sending request to S3. This might sound inefficient, perhaps it is.

This is how we do now, a stripped down version of code from our class:

s3_connection = boto.connect_s3(aws_access_key_id="aws_access_key_id",aws_secret_access_key="aws_secret_access_key")
output_bucket = s3_connection.get_bucket("output_bucket")
key = output_bucket.new_key(key_name)
key.set_contents_from_filename(file_path, file_headers, True, None, 10, file_policy)

I am Python and boto noob; I am sure there would be a better way of doing this, so please share if you know one.

iSync: SyncSession record validation failure

ISyncSession record validation failure: Value other pushed for enumeration property service on com.apple.contacts.IM is not an allowed value.

If you get above error while synchronising your OSX addressbook with Google Contacts, you might want to remove various IM types (Skype, Google Talk, etc) specified for contacts. OSX AddressBook can only accept “AIM”, “Yahoo”, “Jabber”, “MSN” and “ICQ” as types.