Source to my personal site:
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
2.2 KiB

<!DOCTYPE html>
<html lang="en">
<title>cvrt: FFMPEG, made slightly easier</title>
<link rel='stylesheet' type='text/css' href='../style.css'>
<meta charset='utf-8'/>
<h1>cvrt: FFMPEG, made slightly easier</h1>
<p class='date'>Mon, 22 Nov 2021 08:29:06 +0400</p>
<p>If you've been using Linux for a few days now, you're probably already aware of the swiss-army knife of media conversion and compression: <a href="">FFMPEG.</a> It's often pre-installed on most Linux distros, and it offers a simple command-line way of converting between all (most) media formats.</p>
<p><b>However,</b> despite its compatibility and ubiquity, I've always felt FFMPEG doesn't do enough to handle repetitive, batch-like conversions using regular expressions. <b>For example:</b> imagine you had a file full of <b>mp4</b> files, and you wanted to convert each of them to <b>mov.</b> With cvrt, you can run the following command:</p>
<pre><code>cvrt *.mp4 mov</code></pre>
<p>All this script does is take two arguments: the input files (*.mp4), and the last argument passed, which is the output format/file (mov). Another useful feature of cvrt is the fact you can specify cases for outputs. <b>For example:</b> if I wanted each mov file to be in a specific audio and video codec (ie. for DaVinci Resolve), then you can specify it in the script:</p>
<pre><code># Exception options for specific formats
case "$ext" in
*flac) OPT=$OPT:" -vn" ;;
*mov) OPT=$OPT:" -c:v mpeg4 -q:v 0 -pix_fmt yuv420p -c:a pcm_s16le" ;;
*mp4) OPT=$OPT:" -c:v libx264 -crf 21 -c:a libopus -b:a 320k" ;;
<p>In this case, there are cases for <b>flac, mov</b> and <b>mp4</b> output files, to ensure the resulting files always come out with specific codecs, using FFMPEG flags.</p>
<h3><a href="">Download cvrt from my dotfiles.</a></h3>
<small><i>*the script is still a WIP, not every bug has been fixed yet. If you have any suggestions, feel free to contact me or open an issue on GitLab!</i></small>
<footer>by <strong><a href=''>Denshi</a> <a href=" FFMPEG, made slightly easier">(Reply-to)</a></strong></footer>