At the end of his pre-FOSDEM talk on free software, rms auctioned an adorable gnu.

"If you have a penguin at home, you need a gnu for your penguin."

Download link

The audience was allowed to film and publish the presentation provided that:

  • The file format is free (as in "libre" or "vrij"). No mp4 or friends;
  • Accessible on a website that does not use proprietary javascript in the browser. Exit youtube and possibly every known online video hosting service;
  • No geo-tagging.

My usual video upload workflow goes like this:

  • Connect the GoPro camera to the MacBook
  • Import the video using Movie
  • Crop the video clip using the mouse
  • Add a title
  • Choose "export to youtube"
  • Done

The restrictions imposed by rms turned out to be challenging. My GoPro camera most certainly doesn't know anything about a free format. (i)Movie on OSX neither. So I booted my not-entierly-free GNU/Linux distribution (Manjaro) on my old desktop. And the struggle to find a suitable video editing software began :-)

Cinerella

After contemplating the confusing, old-fashioned interface for minutes, I concluded it would take me ages to figure out how this software works.

Probably inappropriate for my simple editing needs.

Link

Pitivi

Looks good, needs serious polishing compared to OSX Movie but that's ok. I couldn't get anything decent with the presets, even after tweaking. The best I could be was a low-quality 7Mb output. You can watch it, it's probably more than enough, but it's not what I wanted.

It crashes during encoding if you leave a blank on your video strip. Crashes if you enter something "wrong" in the video codec parameters (even a valid value, as proved by ffmpeg later). Annoying bit rate setting in bits per second, so you have to enter 2000000 rather than 2M. But that doesn't matter, since it crashed during rendering anyway.

I went to their IRC channel, asking for tips. A committer told me he has no idea what settings to use.

Link

Openshot

Much more usable than Pitivi, but even "high quality" HD 720p yields a poor result. With a supposed 15Mb bit rate, although 2Mb will prove much better with ffmpeg. Weird.

Link

Handbrake

Very convenient, simple and intuitive. Sensible presets you can further tweak - and I had to make trials and errors here too. But the webm format was missing :(

Link

ffmpeg

At the stage, I turned to the command line. After several trials and errors with ffmpeg, a suitable output was achieved with the following parameters:

$ ffmpeg -ss 0:12 -i GOPR0684.MP4 -c:v libvpx -qmin 0 -qmax 20 -crf 5 -b:v 2M -c:a libvorbis -threads 8 adorable-gnu.webm

The original file was 598Mb for slightly more than 2 minutes at 1080p (yes, the GoPro doesn't do much compression for obvious processing power reasons), and the converted video was 98Mb.

  • -ss 0:12 skips the first 12 seconds, where I'm settling the camera.
  • -c:v libvpx to use the vpx codec.
  • -crf 5 is the "quality" level. Lower means better. This parameter alone is not ideal, as it doesn't give the encoder any leeway to adjust the quality depending on the frame (more or less complex to encode).
  • -qmin 0 -qmax 20 adding a "min/max" quantization resulted in an overall superior output. This implies a bit of tweaking.
  • -b:v 2M for variable bit rate, with a target average of 2Mb/s. Again, this is the result of experimenting; 1M gave insufficient quality.
  • -c:a libvorbis to use the vorbis audio codec.
  • -threads 8 to use the 2 CPU cores. I've read that 0 should use all cores, but it wasn't the case.

Here, I have a decent output, although I don't have my title anymore :)

Link

Upload to you... no wait

There are numerous video hosting sites other than youtube.

But 1. although they appear to be free (gratis), you are the product; 2. the javascript they run in your browser is proprietary; 3. you are subjected to the host policy, and your video can be suppressed if it doesn't fit the host policy and 4. the file format is not free.

I asked for a free (libre) alternative on Twitter, StackOverflow, Reddit, G+, FB. The result did not surprise me: I got no answer.

So I SFTP 'ed it to my website. I don't expect the video to be a hit, otherwise my bandwith quota would quickly be exceeded B-)

Conclusion

I'm certainly not bashing at those free softwares. They're free, the source is available and I'm free to fix them if I'm not happy with the way they work. They fell short, given my expectations, but they may be suitable in other conditions.

In comparison to the Apple walled-garden, this simple operation required a substantial effort. All of this reminded me of the huge, gratis convenience many tools and platforms deliver, but what do I give up in exchange?

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


comments powered by Disqus