<p>No. The video can be slowed down, but frames from an inter-coded codec stream (like H.264) can't be dropped without re-encoding.</p>

<p><strong>Update</strong>:</p>

<p>The command below produces a file that plays in Potplayer and ffplay but not in VLC. It works for me on MP4s, Should work on MOVs. Doesn't work with MKV (you should be able to remux to MOV/MP4 and execute).</p>

<pre><code>ffmpeg -discard nokey -i input.mp4 -c copy -vsync 0 I-only.mp4
</code></pre>

<p>Timestamps are retained. So each I-frame shows as a freeze frame till it's time for the next one. There may be a way to make this playable in VLC, but I'll try when I have more time.</p>

CC BY-SA 3.0
2017-05-18T17:21:40.793Z
Let's say that I am interested only in the I-frames. What process would you use to extract them along with their timestamps for later stitching?
rxj
CC BY-SA 4.0
2019-03-08T13:16:36.960Z
Can extra frames be added without re-encoding? Say I want to go from 20fps to 30, just doubling frames where needed? (This question actually refers to webm, but I guess it probably applies too.)
felwithe
CC BY-SA 4.0
2019-03-08T14:57:01.133Z
@felwithe, if you wish to add or drop frames, re-encoding is needed for codecs like H264, VP8.
Gyan
CC BY-SA 3.0
2017-05-17T17:26:19.990Z
2017-05-18T18:20:17.070Z
2017-05-18T18:20:17.070Z
Gyan
<p>I'm looking for a way to lower the framerate of an H264 mp4 video without re-encoding the video.</p>

<p>Example: I have a 30 FPS input file and I need it to be 5 FPS. I want to avoid re-encoding because of time constraints and I also don't want to introduce additional compression artifacts.</p>

<p>Is this possible?</p>

CC BY-SA 3.0
2017-05-18T12:20:28.463Z
When you say you want to lower the framerate do you want the video to slow down, or to keep its current length? If it's the former you could accomplish this by changing the display frmerate in the metadata, if it's the latter then I think you're asking the impossible.
stib
CC BY-SA 3.0
2017-05-18T17:18:38.637Z
@stib I wanted to drop frames as necessary until target framerate was reached. I understand now that this is not possible because of P and B frames.
rxj
<mp4><framerate><h.264>
Lower framerate without re-encode
rxj
# Lower framerate without re-encode

(Asked by: username_0 on 2017-05-17)

I'm looking for a way to lower the framerate of an H264 mp4 video without re-encoding the video.

Example: I have a 30 FPS input file and I need it to be 5 FPS. I want to avoid re-encoding because of time constraints and I also don't want to introduce additional compression artifacts.

Is this possible?

**Tags:** mp4, framerate, h.264

> **Comments:**
> **username_1**: When you say you want to lower the framerate do you want the video to slow down, or to keep its current length? If it's the former you could accomplish this by changing the display frmerate in the metadata, if it's the latter then I think you're asking the impossible.  
> **username_0**: @username_1 I wanted to drop frames as necessary until target framerate was reached. I understand now that this is not possible because of P and B frames.  

---

## 1 answers

### Answer by username_2 on 2017-05-17. Score: 2 | Accepted answer

No. The video can be slowed down, but frames from an inter-coded codec stream (like H.264) can't be dropped without re-encoding.
Update:
The command below produces a file that plays in Potplayer and ffplay but not in VLC. It works for me on MP4s, Should work on MOVs. Doesn't work with MKV (you should be able to remux to MOV/MP4 and execute).
ffmpeg -discard nokey -i input.mp4 -c copy -vsync 0 I-only.mp4

Timestamps are retained. So each I-frame shows as a freeze frame till it's time for the next one. There may be a way to make this playable in VLC, but I'll try when I have more time.

> **Comments:**
> **username_0**: Let's say that I am interested only in the I-frames. What process would you use to extract them along with their timestamps for later stitching?  
> **username_3**: Can extra frames be added without re-encoding? Say I want to go from 20fps to 30, just doubling frames where needed? (This question actually refers to webm, but I guess it probably applies too.)  
> **username_2**: @username_3, if you wish to add or drop frames, re-encoding is needed for codecs like H264, VP8.  

---

