

MTS video files which were interlaced, and so required different settings to convert properly. You should do so for each different input file you are converting. It is a prudent idea to test it first and visually inspect the output.

☠ Use at your own risk – I accept no responsibility for any data loss or mistakes caused by this script. Put the script somewhere convenient (such as your home folder), cd to your content directory, then call the script from the terminal using python ~/compress_videos.py -recursive -file-ext=mp4. So I wrote a small python CLI tool which achieves the above goals.

Preserve the metadata (creation time, modification time) from the original video, so that chronological sort continues to work properly.Only compress videos which are not already compressed (by using ffprobe to detect if encoding is hevc).Recursively search sub-directories, since I typically organize my photos and videos into a folder hierarchy.So ffmpeg is great, but I wanted to batch process all of my phone videos, with the following goals in mind: With this level, I cannot visually tell the difference in quality between compressed and uncompressed videos. I tried a few different quality settings before settling on the default -crf 28. It’s pretty easy to compress these videos using the ffmpeg command line tool with something like the command below.įfmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4

This rules out using a specialty video app which supports H.265 encoding. I frequently use the handy “double tap power button” shortcut to quickly launch my camera app, so it is important that the app which launches is able to handle both photos and videos. 1 There are some third-party apps such as UltraCorder which support H.265, but I’d prefer to stick with the stock camera app. It typically requires 50% less bitrate (and hence storage space) to achieve the same level of quality as H.264. The storage savings from HEVC are pretty astounding. Even though the phone has a decent amount of storage (64GB) it quickly fills up if you record a lot of video. A minute of 1080p video takes up ~150MB of storage, and double that for 60fps mode or 4K. Despite being a relatively modern phone, my OnePlus 6T records video using the H.264 codec rather than the newer H.265 HEVC codec.
