2

Source video

I have a screencast recorded from iPad with QuickTime Player on macOS.

When I open the original recording in QuickTime Player for playback, I can see the playback controls as below:

enter image description here


Processing

I processed the video with the following command (full log):

ffmpeg -i test-source.mov test-result.mov

Resulting video in QuickTime Player

Then, when I open the result in QuickTime Player, I see the controls as below:

enter image description here

The part with more sparse "dots" plays in slow motion, I can drag the bars to change the start and end of this part and minimise it to zero-length (the overall length changes from 03:06 to 01:00 then and full video plays at normal speed).


Resulting video in iMovie 10

Similarly, when add the video in iMovie with Import Media, I see "Speed"-control already applied on the source:

enter image description here

I can turn it off before adding to the timeline, but if I don't, the clip shows with the following decorators indicating normal speed (left and right) and slow (the middle section with the turtle):

(for this screenshot I added a black overlay to hide the video)

enter image description here

Both the limits of the speed sections and slowdown rate differ between QuickTime Player (1 min. movie expanded to 3:06) and iMovie (expanded to 1:30).


VLC does not notice it, plays the video at normal speed.


Questions

  • What is this feature called?

  • How to avoid this slow motion part in the output of FFmpeg?

3
  • Share the log of ffmpeg -i test-source.mov -i test-result.mov. How does the file play in other players like VLC?
    – Gyan
    Commented Jul 28, 2018 at 19:46
  • I uploaded the log to the pastebin. As I mentioned in my previous comment, VLC plays it at normal speed.
    – techraf
    Commented Jul 28, 2018 at 21:12
  • I'm here a couple of years after you asked this, and it's perfectly answered what I was looking for. Thanks! Commented May 15, 2020 at 16:00

1 Answer 1

3

Your source is variable frame-rate with a peak rate of 120 and an average rate of close to 60. Editors tend to want constant frame rate streams. If you can interpret your whole transcoded file as 120 fps, then you should get the expected result. Alternatively, you can preserve the original variable frame rate,

ffmpeg -i test-source.mov -vsync vfr test-result.mov

or transcode to a constant 60 fps,

ffmpeg -i test-source.mov -r 60 test-result.mov
3
  • This definitely worked, but left me with the same questions as I had before and stated in question - is it a feature (I guess so, because it has a specific interface), what is this feature called and what it is used for. Also why the original does not observe the slow motion part, while the file processed does...
    – techraf
    Commented Aug 1, 2018 at 11:54
  • This has more to do with Apple's AV backend rather than the file or ffmpeg. My guess is that in a VFR file, it slows down regions with higher-than-avg rate. Just a guess.
    – Gyan
    Commented Aug 1, 2018 at 12:54
  • If anyone is still interested in the answer. This kind of video is created when you record it in "slow motion" (at least iPhone does this). In this mode, your camera just slows the video down after first 10% of paly time or so and then speeds it up again before the end. It looks pretty cool when you record playing fetch with your dog I suppose. I was looking for a way to get rid of it and none of these two commands did it =/
    – kub1x
    Commented Apr 22, 2021 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.