The iPhone 7 is gorgeous. At the end of “Introducing iPhone 7” video, there is a another gorgeous scene – the Hong Kong Victoria Harbour. There are similar scenes in other iPhone ad…
iPhone 7 ad – Introducing iPhone 7 (2min 6sec)
iPhone 6s ad – The Only Thing That’s Changed Is… (56sec)
iPhone 5 ad – Music Every Day (58sec)
In my previous post I showed how to use HolaCDN to improve the performance of a mp4 video which is already accelerated using CDN service.
This time I would like to show how to use HolaCDN MultiCDN feature to improve the performance of a multi-birate HLS video. HolaCDN MultiCDN will automatically measure performance of multiples CDNs (defined by user) and select the optimal CDN to use.
In this demo, HolaCDN will select among the customer origin, a 3rd party CDN and HolaCDN.
In the screen capture below, Chrome Developer Tools shows the HolaCDN JS client loads video chunks from serveral hosts: s3video.cheungwaikin.com (customer origin), dc7tqspqe5l18.cloudfront.net (a 3rd party CDN) and 22.214.171.124 (a HolaCDN server).
The following picture shows the result generated by the command hola_cdn.get_stats() in the Chrome Develop Tools Console: 20% of traffic is from the customer origin, 18% from the 3rd party CDN, and the remaining is from HolaCDN.
How to set up HolaCDN MultCDN feature in this demo?
Step 1: create a new Zone named “hlsmulti” by defining the Page URL as http://aws.cheungwaikin.com/video-hls-flowplayer-cloudfront-hola-origin.html.
Step 2: in the MultiCDN selection algorithm, I input the $0.5 as the cost of HolaCDN and $0.05 as the cost of “My existing CDN”. Doing so to instruct HolaCDN to use My existing CDN unless HolaCDN improve performance (better video start/seek time, less buffering, higher video quality/bitrate).
Step 3: for demo purpose, HolaCDN will take actions – collects QoE statistics and deliver video content – if the user is using Chrome browser. For every 100 pageviews from Chrome users, all will colllect QoE statistics, and HolaCDN will try to deliver video content in 90 pageviews.
Step 4: define “My existing CDN”. In this demo, the are two “CDNs” – dc7tqspqe5l18.cloudfront.net and s3video.cheungwaikin.com.
Step 5: I use Static MultiCDN switching mode. If HolaCDN finds dc7tqspqe5l18.cloudfront.net and s3video.cheungwaikin.com perform better than HolaCDN, then 50% possibility that video will be retrieved from dc7tqspqe5l18.cloudfront.net and 50% possibility that video will be loaded from s3video.cheungwaikin.com.
In other to do a control experiment, I use Firefox to browse the demo page. Based on my setup, HolaCDN will do nothing and the browser will get all HLS TS chunks from the host defined in the html source code. Here is the result from Firefox + Firebug:
Want to try it yourself? Go to apply a HolaCDN free trial account now!
Hola is a Spanish word meaning Hello.
Hola!CDN is the first CDN purpose built for video. It is developed and operated by Hola!. Hola!CDN makes Internet video delivery Faster, Cheaper and More Reliable.
It is my pleasure to share with readers that I am now working at Hola!CDN!
In my last blogpost I talked my first Israel visit. The main objective of the trip was to attend Hola!CDN training.
The unique Hola!CDN architecture makes it possible to do Five things that other CDNs cannot do:
- Significantly speeds up your video delivery (start time, buffering, seek time, bit rate, failure rate)
- Provides accurate statistics on your viewers’ quality of experience
- Enables mid stream switching of multiple CDNs (configure Hola!CDN’s dashboard to work with several CDNs, taking each video chunk from the fastest and cheapest)
- Reduces video delivery cost substantially, with same low cost from first byte, to anywhere in the world
- Keeps your existing CDN – Hola will only participate where its faster and cheaper
Detail Hola!CDN implementation guide can found at GitHub: https://github.com/hola/cdn/blob/master/install.md
In this blogpost I would like to SHOW how to implement Hola!CDN in a webpage with MP4 progressive download.
Step 1: apply a Hola!CDN account account. We offer 14-day free trial account at holacdn.com
Three steps. That’s all. No DNS change is required!
the page implemented Hola!CDN: There are 6 HTTP requests in the original page and 65 in the page implemented Hola!CDN. Why?
Let’s talk more next time.
Shalom is a Herbrew word meaing peace, armony, wholeness, completeness, prosperity, welfare and tranquility and can be used idiomatically to mean both hello and goodbye.
The distance between Hong Kong and Israel is 7764km, almost one-third of the Equator length. It is lucky that there is direct flight between Hong Kong (HKG) and Tel Aviv Yafo (TLV), Israel. EL AL Israel Airline operates the direct flights from Sunday to Thursday. I guess due to Sabbath (Friday 6pm to Saturday 6pm) there is no flight on Fri and Sat. HKG-to-TLV is about 12hr 30min, TLV-to-HKG is 11hr! Long flights!
Passengers should arrive the boarding gate at Hong Kong International Airport one hour before the departure time. EL AL will do security check of hand carry baggage again at the boarding gate and the process is about 20 to 30 minutes. One should arrive Ben Gurion International Airport two hours before departure time. There is security check of hand carry baggage at the custom and it will also take 20 to 30 minutes. Keep hand carry baggage minimal!
Israel area is about 20,770 square kilometers (21 times that of HK) and the population is 8.4m (while HK is 7.4m). 75% are Jewish and 20% are Arab. The electricity plug in Israel is Type C (CEE 7/16 “Europlug”). It is better to bring a plug adaptor if you travel to Netanya. It is not easy to get an adaptor in hotel or buy one in shopping area.
I spend most of the time in Netanya. There are many technology companies. Cisco and Microsoft have huge campus there. There are many ambitious and energetic startups as well.
Netanya is a beautiful city. There are great beaches and many surfers! Mostly sunny day. Bright blue sky, white sand, navy blue Mediterranean Sea. Apartments are built with large balconies. Enjoy the sunshine and the breeze!
I was lucky to have a Tel Aviv leisure trip by end of the trip. Tel Aviv Is the major commercial centre in IsraeI and a popular travel destination. It took me about 30min by taxi from Netanya to Tel Aviv. I visited the Sarona Market area in the morning. There are many old German-style buildings. They are turned into shops, boutiques and designer stores. (Sound familiar? Xintiandi in Shanghai!) I bought some very nice Hamsa there!
I had Hummus as lunch. Falafel and Turkish coffee too.
I visited Jaffa area in the afternoon. Jaffa, with many thousand years of history, is one of the oldest port in the world! The area was called Joppa in the past. Jaffa is famous for its association with the biblical stories of Jonah and Saint Peter.
I wondered how difficult and dangerous it was for Saint Peter and other disciples to spread Jesus’ teaching under the Jewish and Roman persecutions. I was in the place where all these were happening nearby two thousand year ago. Thank God.
“Go therefore and make disciples of all nations, baptizing them in the name of the Father and of the Son and of the Holy Spirit, teaching them to observe all that I have commanded you. And behold, I am with you always, to the end of the age.”
Finally I use the famous Amazon Web Service. I use AWS Simple Storage Service (S3) to test something about online videos.
- Web server support of Cross-Origin Resource Sharing (CORS) is a common requirement for video players.
- AWS is a popular platform. I don’t know how to set up Cross Origin Resource Sharing (CORS) on my existing hosting provider GoDaddy. While there are more Google results about “AWS S3 CORS”.
- AWS offers free trial. Many AWS services are free at low volume usages. S3 is free is usage is less than 5GB & 20000 Get Request & 2000 Put Request per month.
- GoDaddy becomes more difficult to use. GUI becomes more chaotic and slow!
There are many motivations for me to use AWS. The remaining question is learning curve. I spend sometime of the recent Chinese New Year holidays studying how to use AWS as customer origin for HLS videos. It was quite easy and interesting to learn and use AWS.
And now I am thinking to move my demo sites demo.cheungwaikin.com from GoDaddy to AWS!
Lesson learnt: cloud service provider should provide user-friendly support information and free trial to help people to become its users.
Since HLS is not supported by many desktop browsers, I need to use a video player to help desktop users to view my testing HLS videos. I pick Flowplayer because there is good support information (adequate and useful for me) and it is free (again)!
I created two S3 buckets, one for html files and one for video content. Serve-side CORS support is required by Flowplayer. I used the suggestions from an AWS doc and a StackOverflow discussion (see the online resources below). I verified Access-Control-Allow-Origin response header was returned by AWS S3 by the command
curl -sI -H "Origin: http://aws.cheungwaikin.com" -H "Access-Control-Request-Method: GET" s3video.cheungwaikin.com
Below was the command output:
HTTP/1.1 200 OK x-amz-id-2: ufXH6929lMlXDveTkzj1IDPW1Q1q0/LtW/joHnui0LBM7l0TQ/hNQ59+0mxLUPGjPoBqyxBcopg= x-amz-request-id: 37DE725CA5A9B471 Date: Sat, 20 Feb 2016 18:32:20 GMT Access-Control-Allow-Origin: http://aws.cheungwaikin.com Access-Control-Allow-Methods: HEAD, GET Access-Control-Expose-Headers: Content-Range, Date, Etag Access-Control-Max-Age: 600 Access-Control-Allow-Credentials: true Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method Last-Modified: Sat, 20 Feb 2016 18:31:34 GMT ETag: "53252b004b38563c1afdd13a3647b7fa" Content-Type: text/html Content-Length: 581 Server: AmazonS3
Moreover, I wrote a simple crossdomain.xml file suggested by FlowPlayer, uploaded it to the video content bucket. With all these, my new testing site aws.cheungwaikin.com is now up and running! I use iPhone, Android 5+ device and MacBook (Safari, Chrome and Firefox) to check browser compatibility.
I am not going to re-invent the wheel. Please find below the online resources I find very useful about how to use AWS S3 as customer origin for HLS videos!
- Setting Up to Host a Static Website on AWS | AWS
- Enabling Cross-Origin Resource Sharing | AWS
- AWS S3 – No ‘Access-Control-Allow-Origin’ header is present on the requested resource | SO
- Choosing a Video Player: Features and Specs for the Top Five | streamingmedia.com
- FlowPlayer setup guide | Flowplayer
Shalom! Wish you have a great Friday evening!
PS: My CDN demo site demo.cheungwaikin.com will be under re-construction and not available between 26-Feb and 11-Mar.
Gong Xi Fa Cai! Wish everyone has a happy and healthy Year of Monkey.
It is the fifth day of the new Chinese New Year. It is time to write something new.
I am studying Media Source Extensions (MSE) recently. In a nutshell, MSE enables browsers to play streaming media without plugins.
What is MSE?
-Microsoft: build custom adaptive streaming solutions using MSE. Such an adaptive streaming solution would look for the optimal bit rate based on network bandwidth and CPU utilisation to provide the highest quality streaming experience. For example, if the network bandwidth drops, you can use MSE to programmatically switch the video stream to a lower bit rate. This reduces the quality of the image, but allows the video to keep playing without interruptions.
More and more video providers are moving away from browser plug-ins to MSE. Youtube and BBC are two examples.
Not all browsers are created equal. At the moment Chrome v34 (both desktop Android 4.4+ versions) and IE 11 on Windows 8 are the best browsers supporting MSE.
Safari on iOS does not support MSE.
Maybe I need an Android tablet.
PS: My CDN demo site demo.cheungwaikin.com will be under re-construction and not available between 26-Feb and 11-Mar.
It is a busy January. I did some long distance travels.
I traveled to US early this month. Didn’t fly Delta for sometime. It was a surprise to me there was in-flight WiFi Internet access service. It costed me US$29.95 (before VAT) for WiFI service during the flight. It was operated by Gogo. There were some restrictions using the service, such as no VoIP and no video streaming. Plane is connected to Internet via satellites. The physical distance that electronic signal travels is long and hence the latency is long too. It is VERY LONG. And because of the long latency and limited bandwidth, it takes a lot of time to download files. It is VERY SLOW. It is fine for text-based instant messaging thought. With all the slowness and restrictions, it was still very amazing that I could search and text with friends via the Internet when I was 10000 feet (~= 3048m) above the earth!
The in-flight entertainment was good. Watched the 150-min movie Everest. Because of the fast-changing extreme weather, it is possible to reach the Earth’s highest place only on a few days a year. And hence the mountain is full of climbers on those few days! Amazing there is traffic congestion at 8848m!
Also watched a 15-min TED talk “Psychology myths”. Ben Ambridge talks through 10 popular ideas about psychology that have been proven wrong. Is it true that a normal person uses only 10% of its brain power?
Used Uber many times this trip. Convenient, Fast and Cheap! It really made a difference! By the way, there is a good Exponent podcast (episode #063) about how Uber’s transportation-as-a-service is going to change the world!
It is great to see and communication with colleagues in person. Internet tools are great. But a handshake or a hug is even better! Happy New Year!