title: python/video - removing frames without re-encoding
body: <p>I understand this might be a trivial question, but so far I had no luck with the various solutions I tried and I'm sure there must be a convenient way to achieve this.  </p>
  
  <p>How would I proceed removing frames/milliseconds from a video file without slicing, merging and re-encoding?<br>
  All solutions I found involved exporting various times to various formats, and I'm hopeful there will be no need to do so.  </p>
  
  <p>With <code>ffmpeg</code>/<code>avconv</code> it's necessary to convert the temporary streams to <code>.ts</code>, then concatenate, and finally re-encode in the original format.  </p>
  
  <p>Python library <code>MoviePy</code> seemed to do quite exactly what I needed but:  </p>
  
  <ul>
  <li>The <code>cutout</code> function returns a file which can not be exported, as the <code>write_videofile</code> function tries and fails to fetch the removed frames</li>
  <li>If I instead slice the original file into various clips and then merge them with <code>concatenate_videoclips</code>, the export doesn't fail but takes twice the length of the video. The resulting video has then a faster frame-rate, with only the cue points for the concatenated videos being timely placed, and audio playing at normal speed. It's also worth noting that the output file, despite being 5-7% shorter in duration, is about 15% bigger.</li>
  </ul>
  
  <p>Is there any other library I'm not aware of I might look into?<br>
  What I'm trying to imagine is an abstraction layer providing easy access to the most common video formats, giving me the ability to pop the unwanted frames and update the file headers without delving into the specifics of each and every format.  </p>