<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the <code class="notranslate">@types/fluent-ffmpeg</code> package and had problems.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the latest stable version of tsc. <a href="https://www.npmjs.com/package/typescript" rel="nofollow">https://www.npmjs.com/package/typescript</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I understand that <code class="notranslate">@types</code> package versions <a href="https://github.com/DefinitelyTyped/DefinitelyTyped#how-do-definitely-typed-package-versions-relate-to-versions-of-the-corresponding-library">do not follow SemVer</a>.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have a question that is inappropriate for <a href="https://stackoverflow.com/" rel="nofollow">StackOverflow</a>.  (Please ask any appropriate questions there).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a href="https://github.com/blog/821-mention-somebody-they-re-notified">Mention</a> the authors (see <code class="notranslate">Definitions by:</code> in <code class="notranslate">index.d.ts</code>) so they can respond.
<ul dir="auto">
<li>Authors: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tcaesvk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tcaesvk">@tcaesvk</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DingWeizhe/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DingWeizhe">@DingWeizhe</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mabidina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mabidina">@mabidina</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hados99/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hados99">@hados99</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Buzzertech/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Buzzertech">@Buzzertech</a>.</li>
</ul>
</li>
</ul>
<p dir="auto">In the <code class="notranslate">fluent-ffmpeg</code> <a href="https://github.com/fluent-ffmpeg/node-fluent-ffmpeg#presetpreset-use-fluent-ffmpeg-preset">documentation</a> it is said:</p>
<blockquote>
<p dir="auto">The second kind of preset is preset functions. To use those, pass a function which takes an FfmpegCommand as a parameter.</p>
</blockquote>
<p dir="auto">And a code example:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="function myPreset(command) {
  command.format('avi').size('720x?');
}

ffmpeg('/path/to/file.avi').preset(myPreset);"><pre class="notranslate"><span class="pl-k">function</span> <span class="pl-en">myPreset</span><span class="pl-kos">(</span><span class="pl-s1">command</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-s1">command</span><span class="pl-kos">.</span><span class="pl-en">format</span><span class="pl-kos">(</span><span class="pl-s">'avi'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">size</span><span class="pl-kos">(</span><span class="pl-s">'720x?'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-en">ffmpeg</span><span class="pl-kos">(</span><span class="pl-s">'/path/to/file.avi'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">preset</span><span class="pl-kos">(</span><span class="pl-s1">myPreset</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">According to the example code, the preset function should return <code class="notranslate">void</code>.</p>
<p dir="auto">We have the following type<br>
</p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e/types/fluent-ffmpeg/index.d.ts#L42">DefinitelyTyped/types/fluent-ffmpeg/index.d.ts</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 42
      in
      <a data-pjax="true" class="commit-tease-sha" href="/DefinitelyTyped/DefinitelyTyped/commit/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e">e7e4e74</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L42" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="42"></td>
          <td id="LC42" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">type</span> <span class="pl-smi">GetPreset</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">command</span>: <span class="pl-smi">FfmpegCommand</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi">string</span><span class="pl-kos">;</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
 which does not match the expected signature of the preset function. I believe it should be<p></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="type GetPreset = (command: FfmpegCommand) =&gt; void;"><pre class="notranslate"><span class="pl-s1">type</span> <span class="pl-v">GetPreset</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">command</span>: <span class="pl-v">FfmpegCommand</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-k">void</span><span class="pl-s1"></span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Also, in this case the type name itself is not very much suitable, it should be something like <code class="notranslate">PresetFunction</code>.</p>
<p dir="auto">Besides that, I guess there are two typos here (pr<strong>o</strong>set and p<strong>n</strong>reset):<br>
</p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e/types/fluent-ffmpeg/index.d.ts#L362-L363">DefinitelyTyped/types/fluent-ffmpeg/index.d.ts</a>
    </p>
    <p class="mb-0 color-fg-muted">
        Lines 362 to 363
      in
      <a data-pjax="true" class="commit-tease-sha" href="/DefinitelyTyped/DefinitelyTyped/commit/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e">e7e4e74</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L362" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="362"></td>
          <td id="LC362" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-c1">usingPreset</span><span class="pl-kos">(</span><span class="pl-s1">proset</span>: <span class="pl-smi">string</span> <span class="pl-c1">|</span> <span class="pl-smi">GetPreset</span><span class="pl-kos">)</span>: <span class="pl-smi">FfmpegCommand</span><span class="pl-kos">;</span> </td>
        </tr>

        <tr class="border-0">
          <td id="L363" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="363"></td>
          <td id="LC363" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-c1">pnreset</span><span class="pl-kos">(</span><span class="pl-s1">proset</span>: <span class="pl-smi">string</span> <span class="pl-c1">|</span> <span class="pl-smi">GetPreset</span><span class="pl-kos">)</span>: <span class="pl-smi">FfmpegCommand</span><span class="pl-kos">;</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<p dir="auto">There is another method spelled properly which seems to be a duplicate of the misspelled one mentioned above:<br>
</p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e/types/fluent-ffmpeg/index.d.ts#L323">DefinitelyTyped/types/fluent-ffmpeg/index.d.ts</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 323
      in
      <a data-pjax="true" class="commit-tease-sha" href="/DefinitelyTyped/DefinitelyTyped/commit/e7e4e74d63eb242a0c0bdee70f914fc8d6c0178e">e7e4e74</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L323" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="323"></td>
          <td id="LC323" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-c1">preset</span><span class="pl-kos">(</span><span class="pl-s1">format</span>: <span class="pl-smi">string</span><span class="pl-kos">)</span>: <span class="pl-smi">FfmpegCommand</span><span class="pl-kos">;</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <a href="https://github.com/blog/821-mention-somebody-they-re-notified">Mention</a> the authors (see <code class="notranslate">Definitions by:</code> in <code class="notranslate">index.d.ts</code>) so they can respond.
<ul dir="auto">
<li>Authors: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Flarna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Flarna">@Flarna</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SimonSchick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SimonSchick">@SimonSchick</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Semigradsky/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Semigradsky">@Semigradsky</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rbuckton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rbuckton">@rbuckton</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mjbvz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mjbvz">@mjbvz</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/G-Rath/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/G-Rath">@G-Rath</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sandersn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sandersn">@sandersn</a></li>
</ul>
</li>
</ul>
<ul dir="auto">
<li><code class="notranslate">assert.strict.equal</code> should not be deprecated: <a href="https://nodejs.org/dist/latest-v14.x/docs/api/assert.html#assert_assert_equal_actual_expected_message" rel="nofollow">https://nodejs.org/dist/latest-v14.x/docs/api/assert.html#assert_assert_equal_actual_expected_message</a></li>
<li>The problem is that <code class="notranslate">assert.strict</code> uses <code class="notranslate">typeof assert</code> here: <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/assert.d.ts">https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/assert.d.ts</a></li>
</ul>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/526114/94362580-a5c5fe00-00bc-11eb-971c-1146a22755b8.png"><img width="568" alt="definitely typed assert bug" src="https://user-images.githubusercontent.com/526114/94362580-a5c5fe00-00bc-11eb-971c-1146a22755b8.png" style="max-width: 100%;"></a></p>