Monday 31 October 2011

Online web-based notes

In a previous blog entry (http://phayz.wordpress.com/2011/04/11/online-and-offline-notes-for-chromeium/) I wrote that I had been trying to find a way of maintaining notes using the Chrom(e|ium) web browser. I wanted to be able to make a note of little bits and pieces of information via my web browser *plus* have these available when I was offline. At the time I settled on the Scratchpad extension because it did what I wanted and had a bonus of keeping notes in sync on Google Docs.

After a little while I stopped using Scratchpad because I didn't like how it looked, nor how it stored the notes on Google Docs. I later tried the SpringPad web service but this was much more than I wanted and offered an offline option only if using Chrome (or Chromium). I didn't want my choice limited by the browser I was using at the time. For the moment I am using a web-based service named SimpleNote (http://simple-note.appspot.com) because it's very simple but offers searching of notes. It doesn't work offline unfortunately but I usually need these notes when the PC is on and I have Internet connectivity most of the time. If I am desperate I could try one of the third-party applications which allow for notes to be exported.

Once again I'm happy at the moment with my choice. I may change my mind again, so be prepared for future blog entries on the topic. :D

Friday 28 October 2011

HOWTO: Rotate a video using ffmpeg

Note:I am using Linux and have not tested this on other operating systems, so your results may vary.

I recently received a video from someone with a request to post it to a video hosting site. It all sounded simple until I found that the video had been recorded using an iPad in landscape mode so when I played the video the image was rotated. Before posting it I was going to have to rotate the video so that playback looked normal but how was I going to do that?

I first considered a video editor but the ones I considered had too many dependencies so I continued my search and eventually found a solution here: http://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg, which gave instructions on using ffmpeg's "transpose" feature to rotate the video.

For my task here's the command line I used. This is to entered as one line, but may be appear wrapped in your browser:
ffmpeg -i <input_video_filename> -vf "transpose=1" -r 30 -sameq -acodec copy <output_video_filename>

The "transpose" function is one of ffmpeg's many video filters which, according to the ffmpeg man page is used to "Transpose rows with columns in the input video and optionally flip it." Below is a list of other transpose parameters and what they do. For full details, refer to the transpose video filter section of ffmpeg's man page for details of the necessary values.


0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip


Note: In this example I used three additional parameters:

  • "-acodec copy" parameter, which instructs ffmpeg to copy the audio, not process it again (Note: Thanks to a comment on this blog entry from Tim;

  • "-sameq" parameter so that the video's original quality was not lost during the rotation because without it ffmpeg degraded quality;

  • "-r 30" to maintain a framerate of 30 frames per second.