Answers.Body: <p>Use a filter to reduce the framerate beforehand</p>
  
  <pre><code>ffmpeg -i in.mpg -vf "fps=24,scale=-2:360,drawtext=timecode='00\:00\:00\:00': r=24" out.mpg
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-04T16:07:12.623Z
Answers.Text: Thank you @Gyan! Your answers are fast and accurate.
  
  So now I have a followup question: if I were only changing the frame rate, would there be any difference between `-r 24` and `vf fps=24`?
Answers.UserDisplayName: iter
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-04T16:13:25.737Z
Answers.Text: There was a difference in frame selection logic for the first frame but I believe it was fixed recently.
Answers.UserDisplayName: Gyan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-04T15:51:19.473Z
Answers.LastActivityDate: 2018-06-04T15:51:19.473Z
Answers.UserDisplayName: Gyan
Body: <p>Following up on this question: <a href="https://video.stackexchange.com/questions/24008/ffmpeg-drawtext-timecode-source-framerate/24009">ffmpeg drawtext timecode source framerate</a></p>
  
  <p>I want to change the frame rate of a file, scale it down and burn the timecode in one operation.</p>
  
  <p><code>ffmpeg -i in.mpg -r 24 -vf "scale=-2:360, drawtext=timecode='00\:00\:00\:00': r=24:" out.mpg</code></p>
  
  <p>When I do this, the timecode is relative to the source frame rate, not the output. So if my input FPS is 59.94, I get this timecode sequence: </p>
  
  <pre><code>00:00:00:02
  00:00:00:04
  00:00:00:07
  00:00:00:09
  </code></pre>
  
  <p>How can I tell <code>drawtext</code> to use destination frame numbers instead of source?</p>
  
Tags: <ffmpeg><framerate><timecode>
Title: ffmpeg timecode and -r
UserDisplayName: iter
ThreadText: # ffmpeg timecode and -r
  
  (Asked by: username_0 on 2018-06-04)
  
  Following up on this question: [ffmpeg drawtext timecode source framerate](https://video.stackexchange.com/questions/24008/ffmpeg-drawtext-timecode-source-framerate/24009)
  
  I want to change the frame rate of a file, scale it down and burn the timecode in one operation.
  
  `ffmpeg -i in.mpg -r 24 -vf "scale=-2:360, drawtext=timecode='00\:00\:00\:00': r=24:" out.mpg`
  
  When I do this, the timecode is relative to the source frame rate, not the output. So if my input FPS is 59.94, I get this timecode sequence:
  
  ```
  00:00:00:02
  00:00:00:04
  00:00:00:07
  00:00:00:09
  
  ```
  
  How can I tell `drawtext` to use destination frame numbers instead of source?
  
  **Tags:** ffmpeg, framerate, timecode
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-06-04. Score: 2 | Accepted answer
  
  Use a filter to reduce the framerate beforehand
  
  ```
  ffmpeg -i in.mpg -vf "fps=24,scale=-2:360,drawtext=timecode='00\:00\:00\:00': r=24" out.mpg
  
  ```
  
  > **Comments:**
  > **username_0**: Thank you @username_1! Your answers are fast and accurate.  So now I have a followup question: if I were only changing the frame rate, would there be any difference between `-r 24` and `vf fps=24`?  
  > **username_1**: There was a difference in frame selection logic for the first frame but I believe it was fixed recently.  
  
  ---
  
  