The future of video streaming: Alliance for Open Media


It’s September!, and from my previous posts, two things happened recently:

This month Google will disable Silverlight in chrome definitely, and Microsoft has discontinued ActiveX Plugins in the new Edge browser integrated in Windows10.

Microsoft will mainly use DASH, MSE, EME and CENC natively to deal with premium media and DRM’s, as many others are doing, also this trend can be seen in other companies as well using MSE and EME to deal with premium media and DRM’s (like Samsung with Tizen); where  I think the industry will converge to a standard world free of plugins at the end.

For that reason, Microsoft, Mozilla, Google, Netflix, Cisco, Amazon and Intel have just announced yesterday the Alliance for Open Media to crete a free (royalty-free) video format, inviting others to join the Alliance.

The initial project will pursue a new, open royalty-free video codec specification and open-source implementation based on the contributions of members, along with binding specifications for media format, content encryption and adaptive streaming, thereby creating opportunities for next-generation media experiences.”

Alliance for Open Media was just officially announced yesterday, and the first thing we can see from this Alliance is Microsoft Edge adopting Google WebM as an allowed web video format for Microsoft Edge.
Personally I believe that WebM will be the format that Alliance for Open Media will support, but couldn’t find information to validate this.

Microsoft Edge WebM is actually under development ( and the Google format allow a better integration on high resolution videos using VP9, which allow to reduce the bit rate to half without scarifying image quality, currently being the best way to transmit 4K video on internet, as seen on Youtube. 


My thoughts about VR

VR is arriving, and I’m still wondering if people will get used to this devices.

I have been personally working in some VR projects, and I believe there is a huge potencial for this technology, but In terms of hardware I still think they need to be smaller and confortable for normal users, so I still have my doubts on how the market will react.

vr2There is a huge expectation, and the truth is there is a lot of hardware companies and kickstarter projects prepared to jump into the market; and I believe the first wave of devices to the general public will come from Facebook Oculus.

So, ok! we are going to have VR devices in the general users hands during this year or the beginning of 2016.
But, what we will do with them? 

VRPersonally I believe there is a lack of applications and the applications we have seen so far are for gaming, and I’m expecting to see games like World Of Warcraft VR! Would be so cool! and I’m clearly expecting to see more games.

In video streaming, it could be amazing. Imagine VR devices to provide 3D VR content in airplanes. Well, a company has already done it.

But at the end, I still think the technology is too invasive for the user, and secondly, the experience is involving, but is too personal.

I have heard some thoughts from psychologists that express some concerns about the effects on using this devices, like “using this devices will enforce the people to escape from reality, and become less social”.

So, what can we do with this devices?

I think the biggest potencial on VR devices in in Social applications.

I’m still waiting to see more collaborative VR games, or Imagine a Skype VR, or a tool to share experiences with your friends, like watching a football game and been able to have a chat together, a virtual cinema + Google Hangouts.

Like, recently I came up with the idea to develop a virtual cinema where I can watch a movie simultaneously with my girlfriend without disturbing my neighbours with the TV at night (My place is ridiculously small in HongKong), and It has worked super good for me.

Anyway, I recommend this article that talks about social VR:
Virtual Reality killer app will be Social


The announced death of Flash


It’s five years already since Steve Jobs published this blog post about Flash ( It was the beginning of the end of Flash Kingdom.

In May of this year, Netflix, one of the last big supporters of Silverlight for video streaming, decided to stop using it, due Microsoft announced to stop support for Silverlight on 2021,
but last week,Silverlight decided to commit suicide before, when microsoft announced they wont include support for Silverlight in Edge; Also In September of this year, Google Chrome will join removing completely their support for Silverlight.

A few days ago, after the leaks from Hacking Team, a “beautiful bug” (as they say) in Flash Player was revealed, exposing how easy is to hack a target machine using Flash through a website.

After this event, a lot of things are happening around Flash;:

Facebook new Chef security officer, Alex Stamos is encouraging Adobe to announce Flash End of Life date.

Yesterday, Mozilla announced that Flash will be blocked indefinitely from Firefox, until they release an stable and secure version of Flash Player; but they hope this measure to be permanent, backing up the movement to spread the voice among the users to stop using this technology (

At the end I think Flash will still be around, specially for the online marketing industry, but for video streaming; I think the industry is moving faster to adopt HTML5 technologies and standards as DASH

How to lead people in different countries

I have had the chances to work in very different cities such as Santiago, Madrid and HongKong.

In software development we have working methodologies that can apply to different kind of processes, such as Kanban and Scrum and of course, we have amazing flexible tools like Jira that allows us to implement standardised working flows through all the organisation.

But the processes can vary depending on specific groups of people, or the methodologies under my point of view can be adapted to the team needs, where they might be influenced by external environmental variables such as culture and government.

Generating a SSH key for bitbucket / Linux & windows

Step 1: Check for SSH keys

First, we need to check for existing SSH keys on your computer. Open up your Git Bash and type:

ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

Check the directory listing to see if you already have a public SSH key. The default public key file names are:


Step 2: Generate a new SSH key

To generate a new SSH key, copy and paste the text below, making sure to substitute in your email address. The default settings are preferred, so when you’re prompted to “Enter a file in which to save the key”, just press Enter to continue.

ssh-keygen -t rsa -C ""
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

Next, you’ll be asked to enter a passphrase.

# Enter passphrase (empty for no passphrase): [Type a passphrase]
# Enter same passphrase again: [Type passphrase again]

Which should give you something like this:

# Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db

Then add your new key to the ssh-agent:

# start the ssh-agent in the background. In windows use eval.
eval `ssh-agent -s`
# Agent pid 59566
ssh-add ~/.ssh/id_rsa

Step 3: Add your SSH key to your account

Run the following command to copy the key to your clipboard. Keep in mind that your key may also be named or

clip < ~/.ssh/
# Copies the contents of the file to your clipboard

Alternatively, using your favorite text editor, you can open the public key file and copy the contents of the file manually.

Configure Git to use your user.

git config –global “Firstname Lastname” git config –global “”

Nginx, Timthumb and Cache

Sometimes our applications uses different image sizes for movie posters and grids in general that are not supported by the clients API.

This is a solution that allow you to generate thumbnails and cache them.
Timthumb is an opensource solution to resize images, and it works very good, but it has a problem, Timthumb cache is not that good and stores image cache inside a text file, and it requires to execute the timthumb script everytime the user is requesting for an image.

So, this is a modified version of timthumb script, to save the generated thumbnails in a physical location as an image, not as a txt file.

And everytime when a user request for a thumbnail, it goes to the Nginx controller to check if the file / image already exists in the physical location, much more faster than doing a request to the timthumb PHP script, and only if the thumb have not been generated, nginx calls timthumb script to generate the cached thumbnail only once.

Plus, I use Amazon CloudFront as an extra cache level on the top.

Nginx config:

TimThumb version: