This commit is contained in:
Joshua Seigler 2025-06-26 19:12:39 -04:00
parent 07cf2aec06
commit 1fe29b8b1a
53 changed files with 651 additions and 161 deletions

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>About</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"> </span>
<span class="tags" style="--totalTags: 11"> </span>
</div>
</header>
<main data-pagefind-body>

32
admin/index.html Normal file
View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>TinaCMS</title>
</head>
<!-- if development -->
<script type="module">
import RefreshRuntime from 'http://localhost:4001/@react-refresh'
RefreshRuntime.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
window.__vite_plugin_react_preamble_installed__ = true
</script>
<script type="module" src="http://localhost:4001/@vite/client"></script>
<script>
function handleLoadError() {
// Assets have failed to load
document.getElementById('root').innerHTML = '<style type="text/css"> #no-assets-placeholder body { font-family: sans-serif; font-size: 16px; line-height: 1.4; color: #333; background-color: #f5f5f5; } #no-assets-placeholder { max-width: 600px; margin: 0 auto; padding: 40px; text-align: center; background-color: #fff; box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1); } #no-assets-placeholder h1 { font-size: 24px; margin-bottom: 20px; } #no-assets-placeholder p { margin-bottom: 10px; } #no-assets-placeholder a { color: #0077cc; text-decoration: none; } #no-assets-placeholder a:hover { text-decoration: underline; } </style> <div id="no-assets-placeholder"> <h1>Failed loading TinaCMS assets</h1> <p> Your TinaCMS configuration may be misconfigured, and we could not load the assets for this page. </p> <p> Please visit <a href="https://tina.io/docs/tina-cloud/faq/#how-do-i-resolve-failed-loading-tinacms-assets-error">this doc</a> for help. </p> </div> </div>';
}
</script>
<script
type="module"
src="http://localhost:4001/src/main.tsx"
onerror="handleLoadError()"
></script>
<body class="tina-tailwind">
<div id="root"></div>
</body>
</html>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -82,7 +82,7 @@
</nav>
<h1>Books</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -5,11 +5,99 @@
<subtitle>Personal homepage of Joshua Seigler</subtitle>
<link href="https://joshua.seigler.net/feed.xml" rel="self" />
<link href="https://joshua.seigler.net/" />
<updated>2025-06-21T00:00:00Z</updated>
<updated>2025-06-26T00:00:00Z</updated>
<id>https://joshua.seigler.net/</id>
<author>
<name>Joshua Seigler</name>
</author>
<entry>
<title>FFmpeg audio cleanup</title>
<link href="https://joshua.seigler.net/posts/ffmpeg-audio-cleanup/" />
<updated>2025-06-26T00:00:00Z</updated>
<id>https://joshua.seigler.net/posts/ffmpeg-audio-cleanup/</id>
<content type="html">&lt;p&gt;
I recently needed to process 20+ phone audio recordings. The audio is mp3
recordings in stereo, made in an environment with echoes and noise from
fans/heaters.
&lt;/p&gt;
&lt;p&gt;
Although I could do it easily with
&lt;a href=&quot;https://tenacityaudio.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
&gt;Tenacity&lt;/a
&gt;
I didnt want to use a manual process, since it would take days. So I tried
using FFmpeg filters and Bash scripting.
&lt;/p&gt;
&lt;p&gt;
I found an FFmpeg filter called
&lt;a
href=&quot;https://ffmpeg.org/ffmpeg-filters.html#compand&quot;
target=&quot;_blank&quot;
rel=&quot;noopener&quot;
&gt;compand&lt;/a
&gt;
which lets you map an input decibel range to an output decibel range. I also
used the
&lt;a
href=&quot;https://ffmpeg.org/ffmpeg-filters.html#anlmdn&quot;
target=&quot;_blank&quot;
rel=&quot;noopener&quot;
&gt;anlmdn&lt;/a
&gt;
filter to reduce noise, and the
&lt;a
href=&quot;https://ffmpeg.org/ffmpeg-filters.html#highpass&quot;
target=&quot;_blank&quot;
rel=&quot;noopener&quot;
&gt;highpass&lt;/a
&gt;
filter to help with clarity.
&lt;/p&gt;
&lt;p&gt;I ran into a couple gotchas.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;mpv&lt;/code&gt; does something special for audio playback that prevents
audio from clipping. &lt;code&gt;vlc&lt;/code&gt; plays the file as it is.
&lt;/li&gt;
&lt;li&gt;
Because the compressor has an attack and decay (which is necessary for
things to sound good) it can cause clipping if the volume rises sharply.
Applying a &lt;code&gt;delay&lt;/code&gt; parameter with half the duration of the attack
length fixed this.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here is the script:&lt;/p&gt;
&lt;pre
class=&quot;language-bash&quot;
&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$#&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Error: no arguments provided.&quot;&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Usage: &lt;span class=&quot;token variable&quot;&gt;$0&lt;/span&gt; file1 file2 file3 ...&quot;&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; or: &lt;span class=&quot;token variable&quot;&gt;$0&lt;/span&gt; *.ext&quot;&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;fi&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;trap&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;exit&quot;&lt;/span&gt; INT
&lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$#&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;base&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;${1&lt;span class=&quot;token operator&quot;&gt;%%&lt;/span&gt;.*}&lt;/span&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;ext&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;${1&lt;span class=&quot;token operator&quot;&gt;##&lt;/span&gt;*.}&lt;/span&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;outfile&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;./normalized--&lt;span class=&quot;token variable&quot;&gt;$base&lt;/span&gt;.&lt;span class=&quot;token variable&quot;&gt;$ext&lt;/span&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$outfile&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Processing &lt;span class=&quot;token variable&quot;&gt;$1&lt;/span&gt;&quot;&lt;/span&gt;
ffmpeg &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$1&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-v&lt;/span&gt; warning &lt;span class=&quot;token parameter variable&quot;&gt;-ac&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-af&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;compand=attacks=0.3:decays=0.3:delay=0.15:points=-80/-300|-45/-25|-27/-15|0/-12|20/-12,anlmdn=s=10,highpass=f=500&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-threads&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$outfile&lt;/span&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Skipping &lt;span class=&quot;token variable&quot;&gt;$1&lt;/span&gt;, already processed.&quot;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;fi&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;shift&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
If this is useful to you please leave a comment or send an email, I would love
to hear about it.
&lt;/p&gt;
</content>
</entry>
<entry>
<title>War</title>
<link href="https://joshua.seigler.net/posts/july-21-2025/" />

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Hello!</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main data-pagefind-body>
@ -108,11 +108,26 @@
<h2>Posts</h2>
<ul class="collection">
<li>
<a href="/posts/ffmpeg-audio-cleanup/">FFmpeg audio cleanup</a>
<aside>June 26, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg"
>ffmpeg</a
>
</span>
</aside>
<p></p>
</li>
<li>
<a href="/posts/july-21-2025/">War</a>
<aside>June 21, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -127,7 +142,7 @@
>
<aside>June 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to"
>how to</a
>
@ -148,7 +163,7 @@
<a href="/posts/tools-of-the-trade/">Tools of the trade</a>
<aside>May 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
@ -163,7 +178,7 @@
<a href="/posts/thinking-machines/">Thinking machines</a>
<aside>April 24, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -172,18 +187,6 @@
</aside>
<p>The computers will start thinking, and people will stop.</p>
</li>
<li>
<a href="/posts/site-design-updated/">Site design updated</a>
<aside>June 05, 2024</aside>
<aside>
<span class="tags" style="--totalTags: 10"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
</span>
</aside>
<p>New look, simpler tech.</p>
</li>
<li>
<a href="/posts/">More posts&hellip;</a>
</li>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Music</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -99,7 +99,7 @@
>Îngerul a Strigat - Varlaam - glasul 3</a
>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
@ -108,7 +108,7 @@
>It Is Truly Meet - Macedonian</a
>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
<div class="header-meta">
<date>June 7, 2025</date>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1 +1 @@
{"version":"1.3.0","languages":{"en":{"hash":"en_179adc6317","wasm":"en","page_count":27}}}
{"version":"1.3.0","languages":{"en":{"hash":"en_34f7847be7","wasm":"en","page_count":28}}}

Binary file not shown.

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -93,7 +93,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>July 2, 2020</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
</div>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -93,7 +93,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>October 16, 2021</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>

View file

@ -0,0 +1,205 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
font-family: "Inter Variable";
font-style: normal;
font-display: swap;
font-weight: 100 900;
src: url(/fonts/inter-latin-wght-normal.woff2)
format("woff2-variations");
unicode-range:
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
U+2212, U+2215, U+FEFF, U+FFFD;
} /* inter-latin-wght-italic */
@font-face {
font-family: "Inter Variable";
font-style: italic;
font-display: swap;
font-weight: 100 900;
src: url(/fonts/inter-latin-wght-italic.woff2)
format("woff2-variations");
unicode-range:
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
U+2212, U+2215, U+FEFF, U+FFFD;
}
</style>
<script
defer
src="https://stats.apps.seigler.net/script.js"
data-website-id="ccb4bd94-2a71-47fe-8eea-d85bf75b7f6d"
></script>
<script defer src="/scripts/effects.js?v=d86d3b7642f1"></script>
<link rel="me" href="https://github.com/seigler" />
<link
rel="webmention"
href="https://webmention.io/joshua.seigler.net/webmention"
/>
<title>FFmpeg audio cleanup - joshua.seigler.net</title>
<meta name="description" content="" />
<meta name="keywords" content="posts, technical, ffmpeg" />
<meta property="og:title" content="FFmpeg audio cleanup" />
<meta property="og:type" content="" />
<meta
property="og:url"
content="https://joshua.seigler.net/posts/ffmpeg-audio-cleanup/"
/>
<meta name="twitter:title" content="FFmpeg audio cleanup" />
<meta name="twitter:description" content="" />
<meta name="twitter:card" content="summary" />
<meta name="generator" content="Eleventy v3.1.0" />
</head>
<body data-font="english" data-path="/posts/ffmpeg-audio-cleanup/">
<script>
const savedTheme = localStorage.getItem("theme");
if (savedTheme != null) {
document.body.setAttribute("data-theme", savedTheme);
}
</script>
<header>
<nav>
<div class="nav-row">
<div class="nav-home"><a href="/">joshua.seigler.net</a></div>
</div>
<div class="nav-categories">
<a class="nav-active" href="/posts/">/posts</a>
<a class="" href="/about/">/about</a>
<a class="" href="/now/">/now</a>
<a class="" href="/uses/">/uses</a>
<a class="" href="/recipes/">/recipes</a>
<a class="" href="/music/">/music</a>
<a class="" href="/books/">/books</a>
<a class="" href="/search/">/search</a>
</div>
</nav>
<h1>FFmpeg audio cleanup</h1>
<div class="header-meta">
<author>Joshua Seigler</author><date>June 26, 2025</date>
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg">ffmpeg</a>
</span>
</div>
</header>
<header class="toc"></header>
<main data-pagefind-body="data-pagefind-body">
<p>
I recently needed to process 20+ phone audio recordings. The audio is
mp3 recordings in stereo, made in an environment with echoes and noise
from fans/heaters.
</p>
<p>
Although I could do it easily with
<a href="https://tenacityaudio.org/" target="_blank" rel="noopener"
>Tenacity</a
>
I didnt want to use a manual process, since it would take days. So I
tried using FFmpeg filters and Bash scripting.
</p>
<p>
I found an FFmpeg filter called
<a
href="https://ffmpeg.org/ffmpeg-filters.html#compand"
target="_blank"
rel="noopener"
>compand</a
>
which lets you map an input decibel range to an output decibel range. I
also used the
<a
href="https://ffmpeg.org/ffmpeg-filters.html#anlmdn"
target="_blank"
rel="noopener"
>anlmdn</a
>
filter to reduce noise, and the
<a
href="https://ffmpeg.org/ffmpeg-filters.html#highpass"
target="_blank"
rel="noopener"
>highpass</a
>
filter to help with clarity.
</p>
<p>I ran into a couple gotchas.</p>
<ol>
<li>
<code>mpv</code> does something special for audio playback that
prevents audio from clipping. <code>vlc</code> plays the file as it
is.
</li>
<li>
Because the compressor has an attack and decay (which is necessary for
things to sound good) it can cause clipping if the volume rises
sharply. Applying a <code>delay</code> parameter with half the
duration of the attack length fixed this.
</li>
</ol>
<p>Here is the script:</p>
<pre
class="language-bash"
><code class="language-bash"><span class="token shebang important">#!/bin/bash</span>
<span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$#</span>"</span> <span class="token operator">==</span> <span class="token string">"0"</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
<span class="token builtin class-name">echo</span> <span class="token string">"Error: no arguments provided."</span>
<span class="token builtin class-name">echo</span> <span class="token string">"Usage: <span class="token variable">$0</span> file1 file2 file3 ..."</span>
<span class="token builtin class-name">echo</span> <span class="token string">" or: <span class="token variable">$0</span> *.ext"</span>
<span class="token builtin class-name">exit</span> <span class="token number">1</span>
<span class="token keyword">fi</span>
<span class="token builtin class-name">trap</span> <span class="token string">"exit"</span> INT
<span class="token keyword">while</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$#</span>"</span> <span class="token operator">!=</span> <span class="token string">"0"</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
<span class="token assign-left variable">base</span><span class="token operator">=</span><span class="token string">"<span class="token variable">${1<span class="token operator">%%</span>.*}</span>"</span>
<span class="token assign-left variable">ext</span><span class="token operator">=</span><span class="token string">"<span class="token variable">${1<span class="token operator">##</span>*.}</span>"</span>
<span class="token assign-left variable">outfile</span><span class="token operator">=</span><span class="token string">"./normalized--<span class="token variable">$base</span>.<span class="token variable">$ext</span>"</span>
<span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token operator">!</span> <span class="token parameter variable">-f</span> <span class="token string">"<span class="token variable">$outfile</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
<span class="token builtin class-name">echo</span> <span class="token string">"Processing <span class="token variable">$1</span>"</span>
ffmpeg <span class="token parameter variable">-i</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token parameter variable">-v</span> warning <span class="token parameter variable">-ac</span> <span class="token number">1</span> <span class="token parameter variable">-af</span> <span class="token string">"compand=attacks=0.3:decays=0.3:delay=0.15:points=-80/-300|-45/-25|-27/-15|0/-12|20/-12,anlmdn=s=10,highpass=f=500"</span> <span class="token parameter variable">-threads</span> <span class="token number">4</span> <span class="token string">"<span class="token variable">$outfile</span>"</span>
<span class="token keyword">else</span>
<span class="token builtin class-name">echo</span> <span class="token string">"Skipping <span class="token variable">$1</span>, already processed."</span>
<span class="token keyword">fi</span>
<span class="token builtin class-name">shift</span>
<span class="token keyword">done</span>
</code></pre>
<p>
If this is useful to you please leave a comment or send an email, I
would love to hear about it.
</p>
</main>
<script
data-isso="//comments.apps.seigler.net/"
src="//comments.apps.seigler.net/js/embed.min.js"
></script>
<section id="isso-thread" data-title="">
<noscript>Javascript needs to be activated to view comments.</noscript>
</section>
<footer>
&copy; Joshua Seigler 2025. -
<a rel="me" href="mailto:joshua@seigler.net?subject=Hello">Contact</a>
-
<a href="/feed.xml">RSS</a>
-
<a href="/unoffice-hours/">Unoffice Hours</a>
-
<a href="/webrings/">Webrings</a>
</footer>
<div id="effects"></div>
</body>
</html>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -93,7 +93,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>July 14, 2023</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,18 +81,33 @@
</nav>
<h1>Posts</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
<section data-pagefind-body></section>
<ul class="collection">
<li>
<a href="/posts/ffmpeg-audio-cleanup/">FFmpeg audio cleanup</a>
<aside>June 26, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg"
>ffmpeg</a
>
</span>
</aside>
<p></p>
</li>
<li>
<a href="/posts/july-21-2025/">War</a>
<aside>June 21, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -107,7 +122,7 @@
>
<aside>June 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to"
>how to</a
>
@ -128,7 +143,7 @@
<a href="/posts/tools-of-the-trade/">Tools of the trade</a>
<aside>May 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
@ -143,7 +158,7 @@
<a href="/posts/thinking-machines/">Thinking machines</a>
<aside>April 24, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -156,7 +171,7 @@
<a href="/posts/site-design-updated/">Site design updated</a>
<aside>June 05, 2024</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
@ -170,7 +185,7 @@
>
<aside>July 14, 2023</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
@ -181,7 +196,7 @@
<a href="/posts/embracing-mysticism/">Embracing Mysticism</a>
<aside>October 16, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
@ -197,7 +212,7 @@
>
<aside>May 26, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 3" href="/tags/communication"
>communication</a
>
@ -214,7 +229,7 @@
>
<aside>April 03, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 1" href="/tags/learning"
>learning</a
>
@ -234,7 +249,7 @@
>
<aside>July 02, 2020</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
</aside>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -87,7 +87,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>June 21, 2025</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -93,7 +93,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>June 15, 2025</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to">how to</a>
<a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -93,7 +93,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>May 26, 2021</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 3" href="/tags/communication"
>communication</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -87,7 +87,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>June 5, 2024</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -104,7 +104,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>April 3, 2021</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 1" href="/tags/learning"
>learning</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -102,7 +102,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>April 24, 2025</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -87,7 +87,7 @@
<div class="header-meta">
<author>Joshua Seigler</author><date>May 15, 2025</date>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -90,7 +90,7 @@
</nav>
<h1>Amish Egg Noodles</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -90,7 +90,7 @@
</nav>
<h1>Corn Casserole</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -90,7 +90,7 @@
</nav>
<h1>Creamy Chicken Orzo</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -82,7 +82,7 @@
</nav>
<h1>Recipes</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -95,7 +95,7 @@
<a href="/recipes/amish-egg-noodles/">Amish Egg Noodles</a>
<aside>June 13, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>Easy chicken-noodle style dish with egg noodles and butter</p>
</li>
@ -105,7 +105,7 @@
>
<aside>May 20, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>Decadent brownies made from scratch</p>
</li>
@ -113,7 +113,7 @@
<a href="/recipes/pasta-rosatella/">Pasta Rosatella</a>
<aside>May 20, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>Cheap, rich, and easy pasta</p>
</li>
@ -121,7 +121,7 @@
<a href="/recipes/creamy-chicken-orzo/">Creamy Chicken Orzo</a>
<aside>May 20, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>Rich and comforting chicken and pasta dish</p>
</li>
@ -129,7 +129,7 @@
<a href="/recipes/spanish-style-rice/">Spanish Style Rice</a>
<aside>May 05, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>One-pan restaurant style spanish rice</p>
</li>
@ -137,7 +137,7 @@
<a href="/recipes/luther-salad/">Luther Salad</a>
<aside>May 05, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>Simple italian pasta salad</p>
</li>
@ -145,7 +145,7 @@
<a href="/recipes/corn-casserole/">Corn Casserole</a>
<aside>April 24, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>An easy sweet cornbread casserole with a vegan variation</p>
</li>
@ -153,7 +153,7 @@
<a href="/recipes/sloppy-joes/">Sloppy Joes</a>
<aside>June 07, 2024</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p>A summertime favorite, great over hot dogs</p>
</li>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Luther Salad</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Pasta Rosatella</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -87,7 +87,7 @@
</nav>
<h1>Perfect Homemade Brownies</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -90,7 +90,7 @@
</nav>
<h1>Sloppy Joes</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -87,7 +87,7 @@
</nav>
<h1>Spanish Style Rice</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Search</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -523,7 +523,7 @@ h1 {
}
@media screen {
p:has(+ pre[class*="language-"] > code) {
p:has(+ pre[class*="language-"]) > code:first-child:last-child {
position: relative;
font-size: 0.8em;
}

View file

@ -176,7 +176,7 @@
<url>
<loc>/site.css?v=6a81398da707</loc>
<loc>/site.css?v=658836c9b392</loc>
<lastmod>2025-06-06T04:44:47.546Z</lastmod>
</url>
@ -254,9 +254,16 @@
<url>
<loc>/posts/ffmpeg-audio-cleanup/</loc>
<lastmod>2025-06-26T00:00:00.000Z</lastmod>
</url>
<url>
<loc>/feed.xml</loc>
<lastmod>2025-06-24T17:18:09.410Z</lastmod>
<lastmod>2025-06-26T23:12:34.963Z</lastmod>
</url>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Posts tagged #ai</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -92,7 +92,7 @@
<a href="/posts/thinking-machines/">Thinking machines</a>
<aside>April 24, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Posts tagged #communication</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -97,7 +97,7 @@
>
<aside>May 26, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 3" href="/tags/communication"
>communication</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Posts tagged #ethos</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -94,7 +94,7 @@
>
<aside>July 14, 2023</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
@ -105,7 +105,7 @@
<a href="/posts/embracing-mysticism/">Embracing Mysticism</a>
<aside>October 16, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
@ -121,7 +121,7 @@
>
<aside>July 02, 2020</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
</aside>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Posts tagged #faith</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -92,7 +92,7 @@
<a href="/posts/july-21-2025/">War</a>
<aside>June 21, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -107,7 +107,7 @@
>
<aside>July 14, 2023</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>
@ -118,7 +118,7 @@
<a href="/posts/embracing-mysticism/">Embracing Mysticism</a>
<aside>October 16, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
</span>

121
tags/ffmpeg/index.html Normal file
View file

@ -0,0 +1,121 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
font-family: "Inter Variable";
font-style: normal;
font-display: swap;
font-weight: 100 900;
src: url(/fonts/inter-latin-wght-normal.woff2)
format("woff2-variations");
unicode-range:
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
U+2212, U+2215, U+FEFF, U+FFFD;
} /* inter-latin-wght-italic */
@font-face {
font-family: "Inter Variable";
font-style: italic;
font-display: swap;
font-weight: 100 900;
src: url(/fonts/inter-latin-wght-italic.woff2)
format("woff2-variations");
unicode-range:
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
U+2212, U+2215, U+FEFF, U+FFFD;
}
</style>
<script
defer
src="https://stats.apps.seigler.net/script.js"
data-website-id="ccb4bd94-2a71-47fe-8eea-d85bf75b7f6d"
></script>
<script defer src="/scripts/effects.js?v=d86d3b7642f1"></script>
<link rel="me" href="https://github.com/seigler" />
<link
rel="webmention"
href="https://webmention.io/joshua.seigler.net/webmention"
/>
<title>Posts tagged #ffmpeg - joshua.seigler.net</title>
<meta name="description" content="" />
<meta property="og:title" content="Posts tagged #ffmpeg" />
<meta property="og:type" content="" />
<meta property="og:url" content="https://joshua.seigler.net/tags/ffmpeg/" />
<meta name="twitter:title" content="Posts tagged #ffmpeg" />
<meta name="twitter:description" content="" />
<meta name="twitter:card" content="summary" />
<meta name="generator" content="Eleventy v3.1.0" />
</head>
<body data-font="english" data-path="/tags/ffmpeg/">
<script>
const savedTheme = localStorage.getItem("theme");
if (savedTheme != null) {
document.body.setAttribute("data-theme", savedTheme);
}
</script>
<header>
<nav>
<div class="nav-row">
<div class="nav-home"><a href="/">joshua.seigler.net</a></div>
</div>
<div class="nav-categories">
<a class="" href="/posts/">/posts</a>
<a class="" href="/about/">/about</a>
<a class="" href="/now/">/now</a>
<a class="" href="/uses/">/uses</a>
<a class="" href="/recipes/">/recipes</a>
<a class="" href="/music/">/music</a>
<a class="" href="/books/">/books</a>
<a class="" href="/search/">/search</a>
</div>
</nav>
<h1>Posts tagged #ffmpeg</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
<section data-pagefind-body></section>
<ul class="collection">
<li>
<a href="/posts/ffmpeg-audio-cleanup/">FFmpeg audio cleanup</a>
<aside>June 26, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg"
>ffmpeg</a
>
</span>
</aside>
<p></p>
</li>
</ul>
</main>
<footer>
&copy; Joshua Seigler 2025. -
<a rel="me" href="mailto:joshua@seigler.net?subject=Hello">Contact</a>
-
<a href="/feed.xml">RSS</a>
-
<a href="/unoffice-hours/">Unoffice Hours</a>
-
<a href="/webrings/">Webrings</a>
</footer>
<div id="effects"></div>
</body>
</html>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Posts tagged #how to</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -94,7 +94,7 @@
>
<aside>June 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to"
>how to</a
>
@ -117,7 +117,7 @@
>
<aside>May 26, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 3" href="/tags/communication"
>communication</a
>
@ -134,7 +134,7 @@
>
<aside>April 03, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 1" href="/tags/learning"
>learning</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,12 +81,18 @@
</nav>
<h1>Tags</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
<ul class="collection" style="--totalTags: 10">
<ul class="collection" style="--totalTags: 11">
<li>
<a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<aside>4</aside>
</li>
<li>
<a class="tag" style="--tagIndex: 0" href="/tags/ethos">ethos</a>
<aside>3</aside>
@ -99,12 +105,6 @@
<a class="tag" style="--tagIndex: 4" href="/tags/faith">faith</a>
<aside>3</aside>
</li>
<li>
<a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<aside>3</aside>
</li>
<li>
<a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
@ -139,6 +139,10 @@
>
<aside>1</aside>
</li>
<li>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg">ffmpeg</a>
<aside>1</aside>
</li>
</ul>
</main>
<footer>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Posts tagged #learning</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -97,7 +97,7 @@
>
<aside>April 03, 2021</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 1" href="/tags/learning"
>learning</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -81,7 +81,7 @@
</nav>
<h1>Posts tagged #pages</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -91,14 +91,14 @@
<li>
<a href="/webrings/">Webrings</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/tags/">Tags</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
@ -106,14 +106,14 @@
<a href="/uses/">What I Use</a>
<aside>June 20, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/search/">Search</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
@ -121,56 +121,56 @@
<a href="/now/">Now</a>
<aside>June 07, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/">Hello!</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/unoffice-hours/">Unoffice Hours</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/music/">Music</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/books/">Books</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/recipes/">Recipes</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/posts/">Posts</a>
<aside>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</aside>
<p></p>
</li>
<li>
<a href="/about/">About</a>
<aside>
<span class="tags" style="--totalTags: 10"> </span>
<span class="tags" style="--totalTags: 11"> </span>
</aside>
<p></p>
</li>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Posts tagged #selfhosting</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -97,7 +97,7 @@
>
<aside>June 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to"
>how to</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Posts tagged #software</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -95,7 +95,7 @@
<a href="/posts/tools-of-the-trade/">Tools of the trade</a>
<aside>May 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,20 +84,35 @@
</nav>
<h1>Posts tagged #technical</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
<section data-pagefind-body></section>
<ul class="collection">
<li>
<a href="/posts/ffmpeg-audio-cleanup/">FFmpeg audio cleanup</a>
<aside>June 26, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
<a class="tag" style="--tagIndex: 10" href="/tags/ffmpeg"
>ffmpeg</a
>
</span>
</aside>
<p></p>
</li>
<li>
<a href="/posts/my-very-own-github-pages/"
>My Very Own GitHub Pages</a
>
<aside>June 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 2" href="/tags/how-to"
>how to</a
>
@ -118,7 +133,7 @@
<a href="/posts/tools-of-the-trade/">Tools of the trade</a>
<aside>May 15, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>
@ -133,7 +148,7 @@
<a href="/posts/site-design-updated/">Site design updated</a>
<aside>June 05, 2024</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 5" href="/tags/technical"
>technical</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -84,7 +84,7 @@
</nav>
<h1>Posts tagged #zeitgeist</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>
<main>
@ -95,7 +95,7 @@
<a href="/posts/july-21-2025/">War</a>
<aside>June 21, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>
@ -108,7 +108,7 @@
<a href="/posts/thinking-machines/">Thinking machines</a>
<aside>April 24, 2025</aside>
<aside>
<span class="tags" style="--totalTags: 10"
<span class="tags" style="--totalTags: 11"
><a class="tag" style="--tagIndex: 6" href="/tags/zeitgeist"
>zeitgeist</a
>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -85,7 +85,7 @@
</nav>
<h1>Unoffice Hours</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -83,7 +83,7 @@
<div class="header-meta">
<date>June 20, 2025</date>
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>

View file

@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<link rel="stylesheet" href="/site.css?v=6a81398da707" />
<link rel="stylesheet" href="/site.css?v=658836c9b392" />
<style>
/* inter-latin-wght-normal */
@font-face {
@ -82,7 +82,7 @@
</nav>
<h1>Webrings</h1>
<div class="header-meta">
<span class="tags" style="--totalTags: 10"></span>
<span class="tags" style="--totalTags: 11"></span>
</div>
</header>