[FFmpeg-user] How to change video fps from 29.970 to 25?

Damian Głodny damian at artnmedia.pl
Mon Sep 1 08:32:45 CEST 2014


>> 1) Play the same frames slower. You can certainly do that. Putting "-r 25" in the input command will do that. (You will need to adjust the audio too.) However, this will result in slow motion. (clip takes 24 seconds after the conversion.) If it is mostly city shots, this >>      might be fine, but the people walking are noticeably slowed.

I will have different clips, not only city shots etc. Solution above is very bad, result video will stutter.


>> 2) Throw out information. The problem you have here is that you have six frames  ABCDEF when you want five VWXYZ. So if you just chuck one frame F, you will get the judder you don't want. This is what just a "fps=25" filter will do.  If you are ok with interlacing, >> you could split the frames into fields AaBbCcDdEeFf and then throw out every 6th field, to get AaBbCDdEeF. However when you put these back into frames (if you are displaying on a progressive display, you would get Aa, Bb, CD, DE, eF, Those last three 
>> interlaced frames might be noticeable.  

>> I've never done this sort of thing, but I think "-vf fps=50,interlace" should do it.

>> This would change the judder to more smaller jumps but it might not be what you want. It will also make the video interlaced.

I tested it, here you can see output with your vf example:
ffmpeg.exe -i "sample-29.970fps.mp4" -c:v libx264 -c:a libvo_aacenc -b:a 128k -vf fps=50,interlace  "OUTPUT"
http://artnmedia.pl/damian/fps/sample-29.970fps_25fps_vf%20fps=50,interlanced.mp4

Unfortunately output  still stutter and by a interlace quality is worse.

I am looking for better solution, cause those clips will be emited in TV and I have to do this with ffmpeg ;/.

-----Original Message-----
From: ffmpeg-user-bounces at ffmpeg.org [mailto:ffmpeg-user-bounces at ffmpeg.org] On Behalf Of Nicholas Robbins
Sent: Friday, August 29, 2014 3:33 PM
To: FFmpeg user questions
Subject: Re: [FFmpeg-user] How to change video fps from 29.970 to 25?

On Friday, August 29, 2014 8:41 AM, Damian Głodny <damian at artnmedia.pl> wrote:



>
>
>Ok, here it is:
>
>Sample 29.970 fps file which I want to convert to 25fps:
>http://artnmedia.pl/damian/fps/sample-29.970fps.mp4
>
>Damian Głodny <damian <at> artnmedia.pl> writes:
>
>> I tried many ffmpeg filters like pullup, telecine, fieldmatch, 
>> decimate, but my output video always stuttering.


Ok, that sample is "30" fps progressive. (I am going to use 30 for 29.97=30000/1001.)  It has 30 complete video frames per second. If you want to reduce it 25 fps 


You have two choices.

1) Play the same frames slower. You can certainly do that. Putting "-r 25" in the input command will do that. (You will need to adjust the audio too.) However, this will result in slow motion. (clip takes 24 seconds after the conversion.) If it is mostly city shots, this might be fine, but the people walking are noticeably slowed.

2) Throw out information. The problem you have here is that you have six frames  ABCDEF when you want five VWXYZ. So if you just chuck one frame F, you will get the judder you don't want. This is what just a "fps=25" filter will do.  If you are ok with interlacing, you could split the frames into fields AaBbCcDdEeFf and then throw out every 6th field, to get AaBbCDdEeF. However when you put these back into frames (if you are displaying on a progressive display, you would get Aa, Bb, CD, DE, eF, Those last three interlaced frames might be noticeable.  

I've never done this sort of thing, but I think "-vf fps=50,interlace" should do it.

This would change the judder to more smaller jumps but it might not be what you want. It will also make the video interlaced.

3) Magically turn the 6 frames of progressive video into 5 frames of progressive video showing the same scene evenly spaced out. Requires Magic(tm).

-Nick Robbins

_______________________________________________
ffmpeg-user mailing list
ffmpeg-user at ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list