resources

Convert WMV to FLV Using ffmpeg and a Dash of Cloud Computing!

At LegalCloud we use GoToWebinar to produce our webinar series on LegalCloud and Cloud Computing for law firms. I needed to convert our WMV files that GoToMeeting provides to FLV so that I could integrate them with my tools of choice for our website. I chose Flowplayer; which is excellent by the way.  Hopefully this information might help someone else who ends up needing to do this similar task.

You can see the results of my efforts here:

http://www.legalcloud.net/buzz.php

As for how I did this, it wasn't terribly difficult and I'm quite happy with the results. I decided to use a Rackspace Ubuntu 9.04 cloud server of the 1G size. You could use any server you want, this was just what I chose to use. Using your manage.rackspacecloud.com account you need to do the following:

  • Start an Ubuntu 9.04 server
  • Log in to server as root
  • apt-get Update
  • apt-get install ffmpeg

Transfer your WMV file from where ever you put it to your new server.  I uploaded mine to Cloud Files then just downloaded them from there to encode.

The following command can be used to convert a GoToMeeting Webinar (not the proprietary format) to an FLV.

ffmpeg -i "tdp.wmv" -sameq -ar 22050 -ab 96000 -deinterlace -nr 500 -s 720x576 -aspect 4:3 -r 20 -g 500 -me_range 20 -b 270k -deinterlace -f flv -y "tdp.flv" 2>tdp.txt

This command converted the 26MB file in 2-3 minutes for me which I was happy with. I tried this with local desktop tools on a mac and it took well over 1 hour (and wasn't mostly free).

The whole process takes under an hour so you can do this for approximately $0.06 which seems good to me since it's only something I do occassionally.


Note: You cannot use this command to convert the GoToMeeting proprietary format. I haven't found anything that would yet but I hope to. So, make sure you don't choose the compressed proprietary format for recording your meeting!

Once the conversions were done I uploaded the resulting FLV files to Rackspace Cloud Files and enabled the CDN feature for them. Then, I integrated them with our Flowplayer installation on my web site. I'm quite happy with the result and the Flowplayer team deserves massive amounts of credit for their very cool and usable software that building upon jquery.

I'm not an ffmpeg expert but this did produce nice results for me and it's what I came up with after some trial an error. If anyone has any suggestions to make it even better then please let me know.

This same process would work just fine with any cloud provider of your choice really so if you use GoGrid or AWS the same steps should apply. I can't speak for other Linux distros at the moment but I'm sure you'd have good luck there too.

Cheers,
Kent


NIST Cloud Computing Definition Revisited

NIST has made quite a few changes and additions to their working definition of cloud computing.  It is worth a re-visit if you haven't checked up on it lately.

Draft NIST Working Definition of Cloud Computing

Authors: Peter Mell and Tim Grance

6-1-09

 

National Institute of Standards and Technology, Information Technology Laboratory

 

Note 1: Cloud computing is still an evolving paradigm. Its definitions, use cases, underlying technologies, issues, risks, and benefits will be refined in a spirited debate by the public and private sectors. These definitions, attributes, and characteristics will evolve and change over time.

 

Note 2: The cloud computing industry represents a large ecosystem of many models, vendors, and market niches. This definition attempts to encompass all of the various cloud approaches.

Definition of Cloud Computing:

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three delivery models, and four deployment models.

Essential Characteristics:

On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.

Ubiquitous network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Location independent resource pooling. The provider’s computing resources are pooled to serve all consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. The customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.

Rapid elasticity. Capabilities can be rapidly and elastically provisioned to quickly scale up and rapidly released to quickly scale down. To the consumer, the capabilities available for provisioning often appear to be infinite and can be purchased in any quantity at any time.

Measured Service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.

 

Note: Cloud software takes full advantage of the cloud paradigm by being service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.

Delivery Models:

Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure and accessible from various client devices through a thin client interface such as a Web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Cloud Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created applications using programming languages and tools supported by the provider (e.g., java, python, .Net). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, or storage, but the consumer has control over the deployed applications and possibly application hosting environment configurations.

Cloud Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly select networking components (e.g., firewalls, load balancers).

Deployment Models:

Private cloud. The cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on premise or off premise.

Community cloud. The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on premise or off premise.

Public cloud. The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

Hybrid cloud. The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting).

ORIGINAL SOURCE: http://csrc.nist.gov/groups/SNS/cloud-computing/

Launching a Community? Questions and Comments

Designing, launching, and integrating community platforms that leverage trends in modern computing such as Cloud Computing and Virtualization well can be a tremendous strategic benefit for a company. However, much of those benefits can be quickly erased by operational and development issues surrounding doing that successfully are often marginalized. This has fiscal, operational, and morale impacts over time.

ROI no matter who you might calculate it will include the total actual costs (TCO - Total Costs of Ownership) of running or renting the platforms that community sites run upon.

Will your system stand up to Digg/Slashdot/TechCrunch/Reddit or exponential user base growth? Does it have a clear scalability path? These are questions that development, operations, and business staff need to discuss periodically throughout any community development project and long after when the project is live.

I saw a case study recently about a facebook community app that went from zero to a billion page views per MONTH in just a short time. I’m sure they thought about scalability and operations upfront at least a little or they would not still be in business. Do you know what you would do if your community caught fire like that? Would you get a dreaded “Site Not Available” message at your time of greatest success?

If you plan your communities technology platform correctly from the start you have a much better chance of succeeding and fully leveraging your investments in your businesses technology over time.

Here are some things you might want to think about and questions to ask. They pretty much all break down to how you spend time and money. Since time and money are often inexorably related.

Time.
How much time is needed to upgrade, maintain, and manage the underlying infrastructure as the site grows?

Time. How long will it take you to build the infrastructure out from development through production with proper environments and capacity?

Money. What are your up front capital costs?

Money. What are your on-going maintenance costs for infrastructure and operational support?

Money. How much operational support will you need to keep things running and scaling?

Money. What is the total cost of ownership of this community including the underlying infrastructure, software, and people?

Ask those questions and you will lay the groundwork for better understanding of your project and a better opportunity for success.

Note:  This is a Re-Post of my Blog entry for blog.solutionset.com

AWS EC2 Email Problems and Solutions

If, like pretty much everyone else, you are thinking of launching your web site/service in the "cloud" on Amazon Web Services?  One of the things people don't often realize is that they will not be able to successfully send email from an EC2 AMI's.  Why?  You need a few things these days to be able to successfully send mail from a server.  In most cases you need reverse DNS, SPF record, and a static IP address.  At AWS you do not have a static IP or a reverse DNS entry.  That is a non-starter.  You will need to use an external to AWS relay server or service.  Following are 3 services you might want to review depending on your needs.

http://www.authsmtp.com
Subscription service by email volume in numbers of emails, tiered pricing.

http://www.easydns.com
Email forwarding by subscription.

http://www.dnsmadeeasy.com
Email forwarding by subscription.

http://www.rackspace.com good location to build your own SMTP server if you are so inclined and install either open source (postfix) or commercial software.  That choice will likely come down to your needs for tracking the data your emails generate.  It's difficult, but not impossible, to mirror the functionality of a product like Port25's PowerMTA (http://www.powermta.com/) when it comes to tracking and reporting on email sending and activity.

How to choose?  It's all about business needs, volume, and what technical skills you have available to you to manage your services.  So, just take the time to look at your options.

Book Recommendation: Release It!

I am a few pages away from finishing the book Release It! by Michael Nygard.  I honestly can't really say enough to recommend this book to anyone who actually does care about creating web applications that work well and fulfill their purpose.  The book is a bit Java centric but that is not an issue.  The concepts, examples, and stories that often made me laugh remembering similar situations just lay it all out there.  The patterns/anti-patterns idea is an interesting way to organize and present the ideas that works well.  Most of all, this is a well written and readable yet technical book.  A well written book is a breath of fresh air and I see it often when reading the books in the Pragmatic Programmers line of products.

Again, I can't recommend this book enough for anyone responsible for all or part of building a software application.  I think this is especially true of people in a position of technical leadership and decision making.