How to re-encode all videos in a directory as H.265 & opus using ffmpeg
In our previous post How to re-encode videos as H.265 & opus using ffmpeg for archival we listed ffmpeg
commands to re-encode video files to H.265 for archival purposes.
In many cases, you want to re-encode all files in a directory. The following example command (for Linux shell such as bash
) re-encodes every .avi
file in the current directory, assuming that all files are non-interlaced(this affects the ffmpeg
flags - see our previous post for more details).
for i in *.avi ; do ffmpeg -i "$i" -c:v libx265 -crf 26 -c:a libopus -b:a 56k "${i}.mkv" ; done
From mymovie.avi
, this script will produce mymovie.avi.mkv
, saving approximately 70% of the filesize (that, of course, depends heavily on the video itself).
You can easily adapt this command to your liking - for example, by encoding .mp4
files instead of .avi
or usign a different CRF or audio bitrate. However, in my opinion, these are sane defaults for most video where the focus is to find a compromise between good video quality and file sie.