Rotate of Flip Videos Using ffmpeg

Issue

A friend of mine had a bunch of videos that they had downloaded over the years from several different mediums including from Facebook friends, YouTube Channels or videos from their phone/devices.  One of the artifacts of working with some things like cell phones and their rear-facing camera is all of the text and such in the video is backwards, or more appropriately, horizontally flipped.  This is fine if you are just making a fun video with your friends but if you need to make an instructional video with a whiteboard that people need to read or if you have other written items in your video that you want people to read, you need to flip the orientation in the video to make it all readable.

Solution

I knew this was something I could fix in FFmpeg but I have to find the right command set to get it oriented correctly.   I did a little digging in the docs to find a solution.

The following command will flip the input video horizontally and make a direct copy without doing any other conversion.  This appears to be a lossless conversion.

Here's the command:

ffmpeg -i INPUT_FILENAME -vf hflip -c:a copy OUTPUT_FILENAME

While I was in documentation, I went ahead and pulled the commands for some other similar scenarios.  Weird things happens with metadata sometimes causing a horizontal video to be vertical or upside-down.  Here are some modifications of the above command to handle issues like that as well.

Take upside-down video and make it right-side up:

ffmpeg -i INPUT_FILENAME -vf vflip -c:a copy OUTPUT_FILENAME

Rotate 90 degrees clockwise:

ffmpeg -i INPUT_FILENAME -vf transpose=1 -c:a copy OUTPUT_FILENAME

Rotate 90 degrees counterclockwise:

ffmpeg -i INPUT_FILENAME -vf transpose=2 -c:a copy OUTPUT_FILENAME

Note: Remember to put the Input and Output filenames in quotes if there are any spaces in the filename and give a a fully qualified path to ffmpeg and the filename if you're not in the same folder.


Completely Remove Quicken From Windows Computer -- All The Steps

I had to have a recent interaction with Quicken to fix an issue with my local installation of the software.  The interaction could have been avoided if the documentation on their site was correct. 

I searched Google to find an uninstaller in the Intuit support documentation and kept getting taken to the page on Using QcleanUI to resolve issues installing or uninstalling Quicken for Windows.  I followed the instructions but it was missing a key component: Where you put the files is essentially absolutely important but they don't tell you where that is, exactly.

Push Ubiquiti AP to Custom Cloud Controller

Point your AP's to your cloud controller:

  • ssh into the AP and login.  If it's never been configured on a controller before, the login is ubnt for username and password.  If it has, it's the root information of whatever controller was connected to it.  
  • Access the MCA CLI by typing mca-cli.
  • The next part you do TWICE:
    Type the command: set-inform http://ip-or-address-of-controller:8080/inform
  • Go into your controller software and in about a minute you should see the AP waiting to be adopted.  Once it is adopted, go back to the ssh session and run set-inform http://ip-or-address-of-controller:8080/inform again. 
That's it.  If you have auto-upgrade turned on in settings in the controller, it will automatically upgrade and and provision the APs rebooting them a 1-2 times on their own.

Vulnerability Scanning Your Web Servers (And Why It's Important)

I've been in the web business since sometime around late 1995.  I started writing "code" at that time just like everyone else did -- HTML. . . ONLY. Those were the days of simple web pages with no background and seldom images. It was all about content and how it was organized.  In those days it didn't seem like there was any need for real security or even what real security meant for web servers.  At that time, it was rare to hear anything about systems being hacked, stealing company information, secrets, credit card numbers, personal information or defacing public facing company portals.  Even less were reports of DoS attacks or other debilitating web server attacks/hacks.  

The climate on the Internet has has most certainly changed since those days.  The proliferation of hacking groups to conduct their activities less for educational purposes and more for disruption of services or to push an agenda of some sort has grown worldwide over the last 20 years or so to include countries all over the world.  In countries like China, Russia, North Korea, parts of Eastern Europe and Africa, there are hackers actively working on "0-day" hacks and exploits and writing infiltration code to break into your servers or even home computers.  A New York Times article from 2010 (referenced here) meets and talks to a young college graduate in China using hacking for "Fun" and "Profit". 

As development practices have morphed into more advanced programming languages with complexities of modern non-web applications using many flavors of web and database platforms and a variety of supplemental frameworks, developers are exposed to challenges in proactively coding against a plethora of readily known hacks and exploits not only in their code but in their web server infrastructure.   

It nearly takes a specialist in web security to assure you're doing all you can to protect yourself or the company your work for from exploited web pages, data loss, an embarrassing bout of public humiliation from a defaced web portal, or worse, stolen customer data.  

It's worth the research to get your servers set up correctly before moving them to the production environment. No matter which operating system you are working with, there are exploits for any software or server that you run out of the box.  It's up to you to fix those exploits and close those holes before you go live.  If you're lucky, you have a large team of people in your technology division and hopefully one of them has the experience to handle this task.  Chances are, the developer is the administrator as is the case in most small modern companies. 

So, how do you get a handle on it?  Where can you go for help?