Getting video properties out of GStreamer

GStreamer is a pretty nice piece of software for handling almost all of your multimedia needs but the time will come that you get to the point where seemingly easy things are pretty hard to figure out. I hit this … Continue reading

Thumbnails are back

…it’s back. And it will not stop until it has accomplished its mission.

This week, Daniel Thul fixed and reactivated the clip thumbnailing code for Pitivi’s timeline. But he didn’t just stop there. No sir. He implemented caching too, and that made my week.

We don’t just process thumbnails on-demand anymore, we now save them to disk for reuse. Notice the length of the clip below? It is two hours long. And its thumbnails load instantly at startup.

That’s not all. The thumbnails you see above were using “nearest neighbor” scaling. If you are using GStreamer 0.10.36 or newer, you get better thumbnail quality, because we now use multitap Lanczos image scaling:

Update: Daniel also blogged about his findings.

Surviving Git

Git can feel extremely unnatural to those who came from Bazaar. Only after a lot of advice from friends, the right tools and a few months of intensive usage did I feel confident enough to use it without fear. Many are probably in the same boat as me though, so I took a couple of hours to clean up my personal notes and make a proper “crash course” tutorial for Git in the Pitivi context. I have also made a nice video on how to use interactive rebase, if you’re interested.

PiTiVi GES spring sitrep

Now that the Internet is back to normal, here’s a status update on what I’ve been busy doing lately.

The new media library clip previewer, to see all the important details.

You may remember my initial donation experiment last month where I presented the new realtime trimming preview feature—I was not kidding. It’s merged in the pitivi “ges” development branch now, with some additional improvements tacked on.

Since my last blog post, I’ve been spending a lot of spare time:

  • Preparing Pitivi for GSoC (and in general, every detail counts to make the lives of new contributors easier)
  • Mentoring GSoC candidates
  • Filing bugs and cleaning up my shared internal “Pitivi GES TODO”
  • Making GNOME git the official development repository for PiTiVi
  • Reviewing and merging patches. One of the new visible features I’m enthusiastic about is the ability to export standalone archives of your project (thanks to Paul Lange), which can come in handy for debugging!
  • Documenting various things:
  • Searching for creative ways to get people to contribute to GES and solve the bugs that prevent us from making a release right now.

If you take a step back and compare to the latest stable release (0.15.1), on the pitivi side you have:

  • Clip thumbnails in the media library are not only much prettier: they load instantaneously too.
  • An automated project backup/restore system. The new code for it is beautiful. I spent a crazy amount of time testing it (those of you who know me know that I’m probably the most meticulous tester that can be), and as far as I can tell, it’s bulletproof.
  • Cleaned up menus and keyboard shortcuts
  • The ability to export the current frame
  • Sleep inhibition (thanks to Stephen Griffiths)
  • An improved clip previewer that gives you more space to view the video, yet stays out of your way (pictured above)
  • Better filename/paths handling
  • Less CPU usage when idle
  • Match GTK’s appearance regarding button icons
  • Various little UI fixes all over the place
  • A huge code cleanup and refactoring all around, with a vastly simplified codebase and much simpler architecture

That’s just the surface. With GES, in addition to the simplified Pitivi codebase, we have some other niceties:

  • Playback performance back to the 0.13.1 levels (or better?). Want to play a 1080p clip? No problem. A 4K clip? Then you’ll probably benefit from hardware decoding acceleration when we switch to GStreamer 1.0, if your video hardware and driver supports it—goodbye, CPU bottlenecks.
  • Importing clips is blazing fast and asynchroneous (it won’t block the UI).
  • Loading a project timeline is instantaneous.
  • Various backend bugs that plagued earlier releases are possibly a thing of the past.
  • Faster application startup.
  • Boundless possibilities…

It’s not ready just yet though. We need your help to be able to get 0.16 out of the door. There are some feature regressions (like drawing the clip thumbnails or waveforms on the timeline), but more importantly there are a handful of serious bugs in GES that are blocking us (they are not many, but they’re hard to solve). If we can get help to fix these we might finally be able to get a release (or at least an alpha) out of the door.

GSoC 2012 and PiTiVi

Are you a student who wants to get involved in shaping the future of open source video editing? Are you looking for a friendly project providing stimulating challenges and a well-established codebase and expertise? Then consider applying for the Summer of Code programme to work on Pitivi or GES! See this page for the list of ideas for Pitivi. Don’t wait though: the deadline for applying is April 6th.

Pitivi SoC students at the Desktop Summit last year. Important note: a moustache is NOT required to apply as a GSoC student!

Not a programmer? You can help raise awareness about this (and about Pitivi in general). Maybe you know a brilliant hacker friend/family member or a top-notch computer science student, who is just waiting for a chance to make a big difference in the world. Tell that person about how cool and welcoming PiTiVi is and how getting involved is the best way to advance free, powerful and intuitive video editing for everyone!

Switching PiTiVi’s main git repository

Due to public demand, the official main repository for PiTiVi is now git.gnome.org/pitivi instead of git://git.pitivi.org/git/pitivi.git

This has many advantages:

  • It reduces confusion.
  • It prevents potential contributors from thinking we’re a dead project or something. We’re a killer project, that’s completely different.
  • No need to manage two “official” repositories (one for development and one for translations) anymore. No more strange merges to sync the repositories.
  • Those who want email notifications can subscribe through GNOME’s “commits-list”
  • We don’t have five times the word “git” when we do a clone of pitivi. You know, we were worried that people were not aware of the fact that they’re using git, turns out that’s not the case ;)
  • People might stop thinking that this is some kind of French conspiracy. Well, many contributors are francophones and we do have plans for world domination, but that’s entirely unrelated.

I updated all the relevant website and wiki pages accordingly. No more excuses now: ladies and gentlemen, start hacking (but make sure to do so on the “ges” branch).

What the heck is this GES thing anyway?

“GES. You keep using that word. I do not think it means what you think it means.”

Unless you’ve been following the PiTiVi’s development very closely lately, it is often hard to imagine what GES does and how important it is to PiTiVi. I therefore wrote an explanatory page about it and updated the architecture overview on the wiki, in the hope of clearing things up. Let me know if something’s missing or if you have suggestions to enhance those pages.

Also, a quick status update on my call for donations experiment: we now have a total of $121.50 CAD. This is not enough for a hackfest, but certainly enough to pay a couple of beers to PiTiVi contributors at GUADEC.

I would like to extend my sincere thanks to the following people who kindly donated some money through Paypal: Felipe Almeida Lessa, Frederik Elwert, Garrett Gandy, Joseph Tennies, Leon Handreke, Pierre Bornancin, Stéphane Maniaci. I’d also like to thank the dozen of people who “flattr’d” us (but Flattr doesn’t tell me the full list of names).

Printing Multiple Photos in a A4 paper

There are a lot of blogposts complaining about the several applications available in order to print multiple photos in a single paper, underlining their drawbacks.

So, here is why I didn't have a nice time yesterday night:

I tried the applications photoprint and gnome-photo-printer (and tried other ones supposed to do it, but didn' t realy) and it kept printing, only one, distorted photo per image (nothing to do with the Print Preview, the same applications was giving me before actually printing) and in black and white (although I wanted coloured).

Firstly, I thought it was the printer' s fooling around (shit happens), then I thought that my brand new cartridges weren' t aligned properly etc etc, just to find out that what was causing the problem (PROBABLY- but I won't waste more time, ink, photo paper, patience to exhaustively test the thing :)) was the fact that I had chosen "High Resolution Photo" in the Image Quality (in the Printer Settings) and this made all the applications go wild (even Image Viewer), when it comes to printing.

I am using Ubuntu 11.10, Unity and I have an HP Deskjet All-In-One machine.

P.S. Finally, what worked for me is to save in a .jpg file the A4 paper with the photos I want and then open and print it from whichever Image Viewer application, Image Quality: "Normal Color".

P.S.2: And today, I wake up to find that my email account has been hijacked. Well, I guess I should stay away from machines for today...

Trim like a professional hair stylist

In my spare time this week I implemented one of my favorite missing features in PiTiVi: a live preview of what you’re trimming. No more fuzzying around and moving the playhead all the time to figure out if you cut your scene right. No more trial and error. Just pure, unadulterated productivity. HTML5 video below:

It is fast enough to seek through the 2K version of Sintel like a breeze and to stay reasonably responsive with 4K videos. But that’s without hardware acceleration, mind you (I’m looking forward to trying this again in GStreamer 1.0…).

I actually filed a bug about this feature three years ago (you know, when I filed a little over a hundred bug reports within the space of three months). You hadn’t noticed how I am a visionary way ahead of my time? Well, now you’ve got proof.

I’m sure that all the other open source video editors will rip my beautiful code and clone this feature within 12 hours. But mark my words: PiTiVi had it first. Yes: PiTiVi is the only open source video editor that has this feature. Take that, haters.

When nekohayo starts touching your gst pipelines, you should be very afraid.

Let’s try a small social experiment here. I’ve always been curious to see if there was a significant demand for a “serious-business-I-kid-you-not pitivi”. So now you have an opportunity to donate some money.

“WHAT? You capitalist pig!”

Don’t get me wrong: I’m not begging for money here. I have a job and I’ve always contributed to Pitivi without any financial motive. What I want to do here is to gauge the possibility of sustaining Pitivi to the point where it would be developed faster and be much more robust:

  • If I get 10$, I might be able to afford a sandwich.
  • If we get 100$, we could pay a couple of beers for contributors at GUADEC.
  • If we get 10 000$ per year, now we’re starting to get serious enough to be able to organize one or two PiTiVi hackfests per year (still, that’s just nearly enough to pay a port of travel fees for developers for a hackfest).
  • If we get 100 000 to 500 000$ a year (yeah, right!)… then things would change very drastically around here. Like actually contracting GStreamer hackers to make Pitivi the professional-grade open-source video editing solution on Linux. Or hiring ninjas to infiltrate Avid’s headquarters, that sort of thing. I’m not saying we need hundreds of thousands of dollars either: with a significant-enough amount, I could finally prove my case to some select folks I know, and get the ball rolling. It might come as a surprise, but I don’t just have a crazy passion for Free Software, I also have some nice business skills.

You never know until you try, right? So, for now, let’s do this initial experiment. You can send some love through Paypal or with Flattr. I placed the Flattr and Paypal buttons on the pitivi.org website if you think I’m joking (they are located at the bottom of the home page, or in the “Contributing” page). And here’s the same Flattr button if you’re so excited that you need a target to click right now:

Flattr this

I’ll just watch and study what happens. By the way, I won’t be using the money for myself as an individual. It will go towards the project, I just need to figure out the technicalities of doing so. I’ve been talking with the GNOME foundation in the past few months, and I’d like to know if the amount of donations we’re facing would warrant the additional overhead.

Oh, and I have some more features in the cooker, but they’re not ready yet. Stay tuned. In the meantime, feel free to let the world know about the important milestone we’ve reached today. And if you want to spread the word about donations, you may use this URL or this URL (“contributing” page) when linking to the pitivi website, to help me keep track of what’s going on.

What's new!

Ladies and gentlemen, here we are again at this moment that I must write a blogspot and I certainly feel so reluctant about doing it, that I typed in google "blogophobia" and guess what? It does exist of course! So much fun in internetland (and you can't come)!

PiTiVi activities: The last period, I have been trying to "polish" my undo_redo branch, see what does work and what DOESN'T want to behave yet! The effects undo/redo part is finally working but there are still some bugs that I didn't manage to crash at the corner of the room. (The most annoying one is the case where you are moving a clip horizontally in the timeline)..


I realised that this period of getting lost in a bug-hunting, can get really boring and energy-consuming and this feeling of fruitless can get over, so I decided to leave these bugs as they are for the moment (maybe gain their trust this way and guide them at the corner of the room;)) and do something more funny, to refresh my head a bit! This something, will be the implementation of text titles in PiTiVi. Nekohayo has already started working in the user interface functionality of text titles and I am looking at inaugurating the GES relative object in the project.

In case the scientific term "text titles" is not clear, it is this feature that enables you to add subtitles, titles and names during people's presentations, like another layer (overlay) in your clip, but also add a text with just a font, an image, that doesn' t cover your clip (text title).