title: issue with ffmpeg (not loading song?) - ffmpeg stream: write EPIPE
body: <p><strong>issue:</strong> with some songs that i play through the <code>StreamDispatcher</code> from the discord.js module (seems to be ones that have silences at the beginning), the dispatcher will almost immediately finish and throw an error. i use the ffmpeg-static module.</p>
  <p><strong>from what i've seen, these are the two errors that i'm receiving from calling the &quot;debug&quot; and &quot;error&quot; events of the dispatcher</strong></p>
  <p><code>Error: ffmpeg stream: write EPIPE</code></p>
  <p><code>Error [ERR_STREAM_DESTROYED]: ffmpeg stream: Cannot call write after a stream was destroyed</code></p>
  <p><strong>reproducible code sample (requires ytdl-core):</strong></p>
  <pre><code>/**
  * @param {Discord.VoiceConnection} connection 
  * @param {String} url 
  */
  async function run(connection, url) // assuming these two variables aren't null
  {
      const video = ytdl(url, { highWaterMark: 5242880 });
      video.on(&quot;error&quot;, (err) =&gt; console.log(err));
      let dispatcher = connection.play(video);
      dispatcher.on(&quot;finish&quot;, () =&gt; console.log(&quot;finished&quot;));
      break;
  }
  // recommended url: https://www.youtube.com/watch?v=Auk1oVI2Icw
  // (this is one i've been using to test this issue)
  </code></pre>
  <p><strong>original code from my project plus some comments from guiding:</strong></p>
  <pre><code>async play() // this is my function for playing music on the bot
  {
      if (this.queue.length === 0) return;
      if (!this.guild.me.voice || !this.guild.me.voice.channel) return;
      let connection = this.guild.me.voice.connection;
      if (!connection) return;
      if (connection.dispatcher) return;
      let track = this.queue[0];
      let channel = this.guild.channels.cache.get(track.channelID);
      switch (track.type)
      {
          //case &quot;soundcloud&quot; omitted
          case &quot;youtube&quot;:
          {
              const video = ytdl(track.url, { highWaterMark: 5242880 });
              video.on(&quot;error&quot;, (err) =&gt; console.log(err));
              channel.send(`playing: **${track.name}** // requester: **${track.requester.tag}**`);
              let dispatcher = connection.play(video); // dispatcher will begin
              dispatcher.setVolume(this.volume);
              dispatcher.on(&quot;finish&quot;, () =&gt; this.finish()); // almost immediately the following will be called
              // fyi: there isn't anything special in the function called, just some code to shift the queue
              break;
          }
      }
  }
  </code></pre>
  <p><strong>details:</strong></p>
  <ul>
  <li>discord.js version: 12.4.1</li>
  <li>node.js version: v12.18.3</li>
  <li>operating system: windows 10</li>
  </ul>