Canonical Voices

Posts tagged with 'video'

Dustin Kirkland


If you're interested in learning how to more effectively use your terminal as your integrated devops environment, consider taking 10 minutes and watching this video while enjoying the finale of Mozart's Symphony No. 40Allegro Assai (part of which is rumored to have inspired Beethoven's 5th).

I'm often asked for a quick-start guide, to using Byobu effectively.  This wiki page is a decent start, as is the manpage, and the various links on the upstream website.  But it seems that some of the past screencast videos have had the longest lasting impressions to Byobu users over the years.

I was on a long, international flight from Munich to Newark this past Saturday with a bit of time on my hands, and I cobbled together this instructional video.    That recent international trip to Nuremberg inspired me to rediscover Mozart, and I particularly like this piece, which Mozart wrote in 1788, but sadly never heard performed.  You can hear it now, and learn how to be more efficient in command line environments along the way :-)


Enjoy!
:-Dustin

Read more
Dustin Kirkland

Transcoding video is a very resource intensive process.

It can take many minutes to process a small, 30-second clip, or even hours to process a full movie.  There are numerous, excellent, open source video transcoding and processing tools freely available in Ubuntu, including libav-toolsffmpegmencoder, and handbrake.  Surprisingly, however, none of those support parallel computing easily or out of the box.  And disappointingly, I couldn't find any MPI support readily available either.

I happened to have an Orange Box for a few days recently, so I decided to tackle the problem myself, and develop a scalable, parallel video transcoding solution myself.  I'm delighted to share the result with you today!

When it comes to commercial video production, it can take thousands of machines, hundreds of compute hours to render a full movie.  I had the distinct privilege some time ago to visit WETA Digital in Wellington, New Zealand and tour the render farm that processed The Lord of the Rings triology, Avatar, and The Hobbit, etc.  And just a few weeks ago, I visited another quite visionary, cloud savvy digital film processing firm in Hollywood, called Digital Film Tree.

Windows and Mac OS may be the first platforms that come to mind, when you think about front end video production, Linux is far more widely used for batch video processing, and with Ubuntu, in particular, being extensively at both WETA Digital and Digital Film Tree, among others.

While I could have worked with any of a number of tools, I settled on avconv (the successor(?) of ffmpeg), as it was the first one that I got working well on my laptop, before scaling it out to the cluster.

I designed an approach on my whiteboard, in fact quite similar to some work I did parallelizing and scaling the john-the-ripper password quality checker.

At a high level, the algorithm looks like this:
  1. Create a shared network filesystem, simultaneously readable and writable by all nodes
  2. Have the master node split the work into even sized chunks for each worker
  3. Have each worker process their segment of the video, and raise a flag when done
  4. Have the master node wait for each of the all-done flags, and then concatenate the result
And that's exactly what I implemented that in a new transcode charm and transcode-cluster bundle.  It provides linear scalability and performance improvements, as you add additional units to the cluster.  A transcode job that takes 24 minutes on a single node, is down to 3 minutes on 8 worker nodes in the Orange Box, using Juju and MAAS against physical hardware nodes.


For the curious, the real magic is in the config-changed hook, which has decent inline documentation.



The trick, for anyone who might make their way into this by way of various StackExchange questions and (incorrect) answers, is in the command that splits up the original video (around line 54):

avconv -ss $start_time -i $filename -t $length -s $size -vcodec libx264 -acodec aac -bsf:v h264_mp4toannexb -f mpegts -strict experimental -y ${filename}.part${current_node}.ts

And the one that puts it back together (around line 72):

avconv -i concat:"$concat" -c copy -bsf:a aac_adtstoasc -y ${filename}_${size}_x264_aac.${format}

I found this post and this documentation particularly helpful in understanding and solving the problem.

In any case, once deployed, my cluster bundle looks like this.  8 units of transcoders, all connected to a shared filesystem, and performance monitoring too.


I was able to leverage the shared-fs relation provided by the nfs charm, as well as the ganglia charm to monitor the utilization of the cluster.  You can see the spikes in the cpu, disk, and network in the graphs below, during the course of a transcode job.




For my testing, I downloaded the movie Code Rushfreely available under the CC-BY-NC-SA 3.0 license.  If you haven't seen it, it's an excellent documentary about the open source software around Netscape/Mozilla/Firefox and the dotcom bubble of the late 1990s.

Oddly enough, the stock, 746MB high quality MP4 video doesn't play in Firefox, since it's an mpeg4 stream, rather than H264.  Fail.  (Yes, of course I could have used mplayer, vlc, etc., that's not the point ;-)


Perhaps one of the most useful, intriguing features of HTML5 is it's support for embedding multimedia, video, and sound into webpages.  HTML5 even supports multiple video formats.  Sounds nice, right?  If it only were that simple...  As it turns out, different browsers have, and lack support for the different formats.  While there is no one format to rule them all, MP4 is supported by the majority of browsers, including the two that I use (Chromium and Firefox).  This matrix from w3schools.com illustrates the mess.

http://www.w3schools.com/html/html5_video.asp

The file format, however, is only half of the story.  The audio and video contents within the file also have to be encoded and compressed with very specific codecs, in order to work properly within the browsers.  For MP4, the video has to be encoded with H264, and the audio with AAC.

Among the various brands of phones, webcams, digital cameras, etc., the output format and codecs are seriously all over the map.  If you've ever wondered what's happening, when you upload a video to YouTube or Facebook, and it's a while before it's ready to be viewed, it's being transcoded and scaled in the background. 

In any case, I find it quite useful to transcode my videos to MP4/H264/AAC format.  And for that, a scalable, parallel computing approach to video processing would be quite helpful.

During the course of the 3 minute run, I liked watching the avconv log files of all of the nodes, using Byobu and Tmux in a tiled split screen format, like this:


Also, the transcode charm installs an Apache2 webserver on each node, so you can expose the service and point a browser to any of the nodes, where you can find the input, output, and intermediary data files, as well as the logs and DONE flags.



Once the job completes, I can simply click on the output file, Code_Rush.mp4_1280x720_x264_aac.mp4, and see that it's now perfectly viewable in the browser!


In case you're curious, I have verified the same charm with a couple of other OGG, AVI, MPEG, and MOV input files, too.


Beyond transcoding the format and codecs, I have also added configuration support within the charm itself to scale the video frame size, too.  This is useful to take a larger video, and scale it down to a more appropriate size, perhaps for a phone or tablet.  Again, this resource intensive procedure perfectly benefits from additional compute units.


File format, audio/video codec, and frame size changes are hardly the extent of video transcoding workloads.  There are hundreds of options and thousands of combinations, as the manpages of avconv and mencoder attest.  All of my scripts and configurations are free software, open source.  Your contributions and extensions are certainly welcome!

In the mean time, I hope you'll take a look at this charm and consider using it, if you have the need to scale up your own video transcoding ;-)

Cheers,
Dustin

Read more
David Planella

As part of the Ubuntu App Developer Week, I just ran a live on-air session on how to internationalize your Ubuntu apps. Some of the participants on the live chat asked me if I could share the slides somewhere online.

So here they are for your viewing pleasure :) If you’ve got any questions on i18n or in Ubuntu app development in general, feel free to ask in the comments or ping me (dpm) on IRC.

The video

The slides

Enjoy!

The post Internationalizing your apps at the Ubuntu App Developer Week appeared first on David Planella.

Read more
Dustin Kirkland

I stepped away from a busy schedule of awesome sessions the Ubuntu Developer Summit in Oakland, CA to speak for a few minutes about the requirement of "openness" in modern Cloud Computing, the absolute necessity of security and encryption of data, and benefits of Ubuntu as both a Cloud host and guest. Enjoy!








If you're interested in learning more about security considerations when planning your cloud or big data deployment, consider subscribing to Gazzang's blog feed, or reading some of our white papers.

Cheers!
:-Dustin

Read more
Iain Farrell

Some of you may have already seen our new 11.10 video. For those who haven’t, we’ll catch you once you’ve enjoyed it :)

Made in Ubuntu using only open source tools – indeed only an open source font! – I’ve made the source assets available so readers of the blog and beyond can make their own versions to promote Ubuntu. Here’s what you’ll need to do to get started.

1. Download the assets files from my Ubuntu One share by clicking this link.

2. While that’s downloading you can also install Pitivi, the video editor I used, which is easily found in the software centre.

3. Uncompress the zip file and take a look at the contents.

The Assets folder contains, as the name suggests, all the video and PNG files I used to create my video. The what’s new .xptv file is the file that Pitivi uses to pull all the assets together and make the video and the template.xcf file is the GIMP file I used as a template for the text slides that appear in between the video clips.

4. Open the What’s new 11.10v2.xptv file and you’ll have to tell Pitivi where all the assets have gone. Just point it to the Assets folder and it’ll do the rest reconstructing the video.

At this point you have two choices. You can either reuse my video assets and just translate the text panels that come up in between the videos or, if you’re feeling really daring, you can use mine like a storyboard and re-record the videos.

Translating the text panels is the simplest route, simply open the template in Gimp and then save copies as PNG files with the same names as I’ve given them. Once you hit render Pitivi will pull in the new PNGs and, boom, you’ve got a video with translated text panels. Simple!

Recording your own videos is a little more time consuming. The way I did it was using a command line tool called recordmydesktop, available again in the software centre, which I found was pretty straightforward to use. It allowed me to specify what area of the screen to record from and could be launched either in the terminal or, when I didn’t want the terminal in the launcher, using ALT-F2 and then killing the process once I’d recorded the features I wanted to share.

The only other things I did while recording was make sure that any time you’re showing the clock it’s set to 11.10 and that the wifi and volume are always at maximum and bluetooth is always on.

We’d really like to translate this into as many languages as possible and Paolo, long time Ubuntu supporter in Italy has kicked us off with Italian translation of the video and we’d love for you guys to try translating it into your own languages, maybe even go and record your own videos. Paolo’s video is below, thanks again chap, we’re hoping you’ll inspire others!

Read more
Iain Farrell

At UDS in Budapest we held a session on the idea of a toolkit for community members. It would allow anyone excited enough to show off and celebrate their use and love of Ubuntu. As you can see from the notes there were a lot of ideas and one of the first activities was to create a YouTube channel celebrating Ubuntu.

Last week we did exactly that and you can now head over to www.youtube.com/celebrateubuntu right now! Go on, head over. I’ll be here when you get back … that was quick ;)

Related to this as part of the 11.04 release I worked on a video for Ubuntu.com with our web team. Intended for the features page it shows off some of the new goodness that has made it into this release. I should also say a special thanks to Jason from the Novacut project who stepped in and helped right at the end. We couldn’t have done it without you chap! Thanks!

This video and the toolkit conversation got us thinking. Everyone has their own favourite aspect of Ubuntu. The thing that makes it great for them. The thing that makes them smile when they use their computer. The thing that makes them wonder why anyone would use anything else!

So make us a video that tells the world what your favourite part of Ubuntu is.

Step 1: Come up with your ultimate Ubuntu feature and how you might make a video of it. What’s the story? Will a viewer “get it”?

Step 2: Make your video and post it up on your favourite video sharing website/ Ubuntu One/ anywhere you can put the file send it to me!

Step 3: Just like any internal design project we’ll get our Brand Lead Marcus Haslam to have a look and the ones we think make the grade will be posted on our channel for the world to see!

We’ll be looking at these throughout the Oneiric cycle, blogging and promoting the ones we think are great so there’s no deadline as such.

Get creative, enjoy and together let’s celebrate Ubuntu!

Read more
Martin Pool

Congratulations and virtual cupcakes to nigelb and chrisjohnston who got their first changes in to Launchpad, and to the reviewers who helped get them finished off and deployed.

jml said it so well at his recent short talk:

I’m not going to kid you, [changing Launchpad is] not easy but it’s sooo worth it, you get to help all these people and you get thunderous applause like I did earlier, and really should have gone to those five guys.

(update: fixed mysteriously-broken video start-at time.)

Read more
David

Ubuntu Translations TVSo, new Ubuntu cycle and time for a fresh translations videocast!

Join me tomorrow at the Ustream Ubuntu Translations channel, where I’ll give you a summary about the great sessions we had around translations last week at the Ubuntu Developer Summit in Budapest, where we discussed the plans for the next cycle: the Oneiric Ocelot. As usual, feel free to come along, ask your questions and have a chat around translating Ubuntu.

Talk to you all tomorrow!

Note that if you wish to participate in the online chat, you’ll need to sign up for a ustream account (it doesn’t take more than a couple of minutes), but I’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.

Ubuntu Translations Videocast


Read more
David

Ubuntu Translations WorkflowUbuntu Translations TVJoin me in a fresh episode of Ubuntu Translations TV tomorrow, where I’ll be continuing the series started on the last session and explain what happens to translations when they get out of Launchpad and are delivered to our users for some localized goodness.

Again, this will be a bit technical, but not too much, and it will help everyone understanding the big picture of how translations work in Ubuntu.

As usual, feel free to participate and ask your questions!

Talk to you all tomorrow!

Note that if you wish to participate in the online chat, you’ll need to sign up for a ustream account (you can use your Launchpad OpenID), but I’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.


Read more
David

Ubuntu Translations WorkflowUbuntu Translations TVAs every two weeks, this Thursday I’ll be preparing a fresh Ubuntu Translations Videocast for all of you interested in knowing more about the exciting world of translating Ubuntu.

I’d like to combine some basic with some more advanced topics, so that the subjects are interesting to both new and experienced translators. This week I’ll be doing a more technical talk (not too much, though) about the translation workflow in Ubuntu and all that happens behind the scenes.

Hopefully this will give you an overview of the whole infrastructure and will help you understand why some of the things are implemented the way they are.

As usual, feel free to participate and ask your questions!

Talk to you all in a couple of days!

Note that if you wish to participate in the online chat, you’ll need to sign up for a ustream account (it doesn’t take more than a couple of minutes), but I’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.

Ubuntu Translations Videocast


Read more
Martin Pool

A 5min demo showing how large features can be managed easily in small interdependent branches using bzr pipeline, with a few nice Launchpad integrations built in.


Read more
David

Ubuntu Translations Videocast: Launchpad Translations NewsLots of translations news on the air this week!

Yesterday I had the pleasure to chat with the legendary ??Danilo Šegan, of Launchpad Translations and GNOME internationalization fame.

Danilo told us all about the progress on upstream integration work in Launchpad and explained more in detail the part which has just been freshly? implemented for Ubuntu: better translation imports from upstream projects.

Do check it out here and stay tuned for the next Ubuntu Translations Videocast in a couple of weeks.

But that’s not all! This week  comes packed with translations content, as I got interviewed by Jono and had the opportunity to talk a bit about our amazing translation community.

It’s been a great week here in Dallas, but all good things come to an end. Next week back in business from home and we’ll leave the space to the Launchpad folk to discuss their master plan during the Launchpad Thunderdome. Rock on.


Read more
David

Ubuntu Translations TVLadies and gents, I’m pleased to announce the next Ubuntu Translations videocast tomorrow from Dallas, Texas, where this week we are holding the Canonical Platform Rally for the next version of Ubuntu, the Natty Narwhal.

This time around I’ll have the privilege to be joined by ??Danilo Šegan (or his alter ego ?????? ?????), the Launchpad Translations developer team lead.

Those of you involved in translations will know Danilo well, not only for his work in developing the translations application in Launchpad, but also for his community involvement. A regular at UDS and GUADEC conferences, he’s also developed and maintained some of the key tools in the Free Software Localization ecosystem, such as xml2po and intltool.

He’ll be explaining all the cool new things coming up in Launchpad Translations, such as better upstream integration, and will also tell us a bit more about other changes affecting the way Launchpad is being developed.

As usual, we’ll be taking and answering your questions, so come and join us for a chat!

Note that if you wish to participate in the online chat, you’ll need to sign up for a ustream account (it doesn’t take more than a couple of minutes), but we’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.

Talk to you all tomorrow!

Ubuntu Translations Videocast - Launchpad Translations News


Read more
David

Ubuntu Translations TVAfter the first Ubuntu Translations videocast two weeks ago, join me tomorrow in a new edition where I’ll talk about the first steps to get you started translating Ubuntu.

So if are either:

  • new to Ubuntu and would like to learn more and join the awesome translations community…
  • not involved in translations but would like to know more about how Ubuntu is translated…
  • an experienced translator that would like to ask questions or share your workflow…

… then this show is definitely for you.

Come along tomorrow and watch the introduction on how to get started, the general translations workflow, and participate by asking your questions!

Note that if you wish to participate in the online chat, you’ll need to sign up for a ustream account (it doesn’t take more than a couple of minutes), but I’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.

Talk to you all tomorrow!

Ubuntu Translations Videocast


Read more
David

So, after having done the first translations videocast on the Ubuntu Translations channel yesterday, I can just say it was great fun, and from the feedback I got after the show it seems people liked it too, which is fantastic.

First of all though, big thanks to those of you who joined in with your comments and questions.

I was really really pleased to see lots of participation, both in the ustream chat in the show’s page and in the #ubuntu-translators IRC channel. I think that’s the best format to make it your show as well: do ask your questions, comment and make it more interactive. I can go on forever rambling on… err… talking about translations, but your participation makes it more fun and more personal, which is one of the objectives of these shows.

So for those of you who missed it, here’s the link to the recording to watch it in your own time:

http://www.ustream.tv/recorded/11209840

One thing I did not manage, though, was to match Daniel’s comedy gold moment. Dogs and door bells apart, remember to watch his next show on Thursday next week for more Ubuntu Development goodness!

As it was the first time I ever did this, it was a bit experimental. I’ve been pondering about topics for the next shows, and here’s a list of the things I think folks might find interesting:

  • Ubuntu Translations WorkflowHow is Ubuntu translated
  • Natty Translations RoadmapAn overview on the translations community projects this cycle and their progress
  • Translating Ubuntu in LaunchpadA tutorial on how to use Launchpad to translate Ubuntu
  • Best Practices for Translation TeamsTips and advice for translation teams when translating Ubuntu
  • Internationalizing your application – Introduction on how to internationalize and make applications translatable

So what do you think? What would you like to know more about? Do you have any other ideas or suggestions for topics? Do let me know by commenting here or on the Ubuntu translators Facebook page. The main thing is that the biweekly videocasts are useful for you all.

I’ve already scheduled the next show, so I hope to see you on Translations TVsame time in two weeks time.

Do add it to your calendars! ;-)

Join the next Ubuntu Translations Videocast


Read more
David

?The plan for the community team to dominate social media first and the world afterwards goes on unabated. First it was At Home with Jono Bacon, then Ubuntu Development with Daniel Holbach.

This time it’s translations.

Join me tomorrow on the first ever Ubuntu Translations videocast and learn more about our ever amazing community. I’ll be talking about how Ubuntu is translated, how translation teams work, and whatever else time allows. On later shows I’ll focus in more detail on particular subjects (upstreams, best practices, etc. – I’ll also take requests!).

Ubuntu Translations TV

Tell your friends and bring them along! This is a great opportunity to learn something new, to have a relaxed chat and to ask anything you always wanted to know about Ubuntu translations.

Some quick notes: if you wish to participate in the online chat, you’ll need to sign up for a ustream account (it doesn’t take more than a couple of minutes), but I’ll also be answering your questions on the #ubuntu-translators IRC channel on Freenode.

I’m sure it’s going to be great fun, see you all tomorrow!


Read more

Wow, I’d like to thank Google for enabling Voice and Video chat in Linux. Thank you for taking the time and effort to support our platform!

In Ubuntu we’ve been shipping Empathy, a chat client based on the Telepathy framework, which has supported Video chat over gtalk (a jabber based network) for quite some time (see my answer on Stack Exchange). In case you didn’t know, Empathy (and the underlying guts) has been primarily developed and supported by a company in the UK called Collabora; who have been funding this work for quite some time. And yeah, they’re basically awesome people to hang out with.

I am wondering why it took Google over 2 years to support this feature. Google decided to support Jabber on purpose, for whatever reason when they launched gtalk; they’ve always been good at supporting open standards, but they never supported this feature until just now. Why? 

Those of use using Empathy/Telepathy have been enjoying audio/video support for quite some time, so we know it’s technically possible. And as it works out the people who make our operating system WANT to ship features like this OUT OF THE BOX. Maybe they wanted to and couldn’t get it quite out the door until now. Who am I to complain, without gtalk the Jabber protocol would probably not be as popular, so thanks for that Google folks for putting their hand in that.

I can’t help but wonder why Google would support Jabber right off the bat with gtalk but it would take them so long to support the video/audio feature until now; our Telepathy friends seemed to figure it out — but I don’t want to dwell on that, what I do want to dwell on is a message we need to send to companies like Google: how can we better improve our platform so that it doesn’t take you 2 years to support us.

Read more