Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-18T17:21:40.793Z
Answers.Text: 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?
Answers.UserDisplayName: rxj
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-08T13:16:36.960Z
Answers.Text: 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.)
Answers.UserDisplayName: felwithe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-08T14:57:01.133Z
Answers.Text: @felwithe, if you wish to add or drop frames, re-encoding is needed for codecs like H264, VP8.
Answers.UserDisplayName: Gyan
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-17T17:26:19.990Z
Answers.LastActivityDate: 2017-05-18T18:20:17.070Z
Answers.LastEditDate: 2017-05-18T18:20:17.070Z
Answers.UserDisplayName: Gyan
Body: <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>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-05-18T12:20:28.463Z
Comments.Text: 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.
Comments.UserDisplayName: stib
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-05-18T17:18:38.637Z
Comments.Text: @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.
Comments.UserDisplayName: rxj
Tags: <mp4><framerate><h.264>
Title: Lower framerate without re-encode
UserDisplayName: rxj
ThreadText: # 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.  
  
  ---
  
  