is it possible to convert video to extra low frame rates below 24, such as 6 per second.
even better would be a way to produce a frame when there is substantial change (not considering noise difference). maybe even just one frame (one I-frame) over the whole video ... such as a voice blog or a musical song.
+ Reply to Thread
Results 1 to 25 of 25
-
-
in virtualdub use change frame rate and make it one.
When rendering h264, make the preset "still picture" -
-
Last edited by jagabo; 5th Nov 2021 at 07:47.
-
i can imagine two ways to do things:
if i take a 30 fps video and "convert" it to 6 fps:
1. the video plays all original frames 5 times as slow.
2, the video has every 5th frame and plays at the same speed with a lot of frame jerkiness.
i have use cases for both.
also playing every 5th frame of that 30 fps video at 30 fps. this would be a time-lapse method. i have use cases for this, too. -
AssumeFPS(6)
ChangeFPS(6)
ChangeFPS(6).AssumeFPS(30)
All simple AviSynth instructions. It requires reencoding, of course. -
There is also another possibility - you can use MPEG or H.264 capable to perform "pulldown" - at the entry there is low frame video and at the output normal framerate video (for players incapable to play low frame rate video). For MPEG-2 you can use https://www.videohelp.com/software/DGPulldown to modify already encoded video stream and/or https://www.videohelp.com/software/TMPGEnc to encode such video (use in advanced features "D" frames - if i recall correctly - not used this encoder from at least 12 years) and for H.264 use x264 with proper syntax:
Code:--pulldown <string> Use soft pulldown to change frame rate - none, 22, 32, 64, double, triple, euro (requires cfr input)
-
this question was in consideration of a project where i am generating the video. so i can set the frame rate that way. but that way happens to be very CPU costly since the generation is producing fractals (Mandelbrot/Julia set extreme depth zooms, heavy CPU per run). so what i need to consider is storing raw frames to do the various frame rates from. i can't run everything in parallel as i don't have enough cores. i am looking at finding a cheap cloud provider to do that in. AWS is too pricey for a hobby. then maybe i can run several ffmpegs at once to encode each frame rate (the generator feeding several pipes at once).
-
-
based on your description seem lossless codec should deliver higher compression than standard. I would go for this approach - generate all frames compressed with lossless codec and later decimate those videos - you may use multiple ffmpeg instances to generate subsequent (decimated) video streams. Alternatively you may think about modern lossy codec (such as H.264) but with high quality settings and with GOP=1 (or use lossy mezzanine codec tailored for this kind of workflow).
-
-
Reduce the frame rate by discarding M in N frames. For example, reduce 24 fps to 6 fps by discarding 3 out of every 4 frames. The remaining frames are displayed four times longer than originally to keep the original running time.
Or more broadly, to reduce drastically: https://www.merriam-webster.com/dictionary/decimate -
what i am wanting to ultimately do is time-lapse a video at various rates by taking every Nth frame from the original (if that is not an I-frame then whatever playback decoding would produce at that point) and use them as the frames to encode an X fps video. i'd be starting with N = whatever the original fps is (to get a frame about one per second) and X = 24, 25 or 30. i'm not worried about frame rates like 29.97 or 59.94. 1000/1001 is close enough
-
-
-
-
i tried this at 1 fps. the result was not a small file. i'll guess that the original was 30 fps. what i got looked more like 3 or 4 fps. i'll guess 3 fps. it looked like i got every 10th frame duplicated 10 times. what i really want is 1 new frame every second, without any duplicates. i expect 1 fps to be a smaller file. then if i do another conversion making the 1 fps file into a 30 fps file, then i expect frames to be duplicated.
fyi, i did this without those two -c options. -
The meaning of the parameters:
Code:-i input.mp4
Code:-r 4
Code:-c:v libx264
Code:-c:a copy
Code:output.mp4
If you did this:
Code:ffmpeg -i input.mp4 -r 1 output.mp4
Why guess? Check the properties of the source video.
It sounds to me like you left -r set to 4, specifying a 4 fps video.
Again, why guess? Check the properties.
If you used "-r 1" that's what you got, one new frame every second.
If you re-encode a 1 fps video with:
Code:ffmpeg -i input.mp4 -r 30 output.mp4
I tested this command line with a very high quality (x264, crf 10) 1920x858, 24 fps, 12 minute, 2.0 GB source:
Code:ffmpeg -i input.mp4 -r 1 output.mp4
Note that the x264 video encoder is frame rate aware. With crf encoding it will allocate more bitrate per frame at lower frame rates, less bitrate per frame at higher bitrates. The idea is that the longer you see each frame the higher the quality should be -- you will notice artifacts in a frame that's visible for 1 second much more than in a frame that's only visible for 1/30 second. So reducing the frame rate from 30 fps to 1 fps will not necessarily reduce the stream size by a factor of 30.
Using qp (constant quantizer) mode rather than crf (constant rate factor) mode should give smaller files (lower bitrates) with very low frame rates:
Code:ffmpeg -i input.mp4 -r 4 -c:v libx264 -qp 23 -c:a copy output.mp4
Last edited by jagabo; 11th Nov 2021 at 17:00.
-
> there will be no obvious difference in playback between the 1 fps video and the 30 fps video with duplicates.
maybe what would help me is a player that can show the frame number (an/or exact time in milliseconds) within the viewed frame (or field number/time/even/odd for interlaced), as well as easy keyboard controls for stop and forward/backward one frame at a time.
> Why guess? Check the properties of the source video.
i'm still new to digital video and don't know a command to do that. my familiarity with video is from the analog NTSC world. i am familiar with digital signals. i am also a ham radio tech licensee.
> So reducing the frame rate from 30 fps to 1 fps will not necessarily reduce the stream size by a factor of 30.
i would not have expected that just because more frames in 30fps would be similar to others than in 1 fps, without that variation of quality inverse to rate. but it would have expected some.
one thing i wonder is if the rate that frames are I-frames is fixed or can vary. if it _can_ vary at playback, is it commonly encoded that way? -
Most media players support frame-by-frame advance. They usually only show time in HH:MM:SS But that's good enough for this. They also let you view the renderer statistics -- which will show the frame rate that's being displayed. In MPCHC for example right click on the player while a video is playing, select Filters -> "name of renderer", something like "Video Mixing Renderer 9".
[Attachment 61785 - Click to enlarge]
Many players also let you view statistics (including frame rate) while playing. Look through the menus or right click and select it from the context menu. MPCHC -> View -> Statistics:
[Attachment 61786 - Click to enlarge]
MediaInfo, ffprobe, etc. Windows can give you basic information with right click -> properties -> Details.
More "different" frames makes it more likely that a frame will be an I frame rather than a P or B frame (with the latter two consuming much less bitrate).
It depends on the encoder and the settings. x264 defaults to a max GOP size of 250 frames, a min GOP size of 24, and a new I frame at scene changes. You can change those settings when you encode. -
"I-frame at scene changes" is good. i presume that means any player accepts the end of a GOP and an I-frame to start a new GOP at any time because it could be enough of a change to count as a scene change. i can't envision any player checking if there really is a scene change when it gets an I-frame. but i might want to make a frame rate much slower than the I-frame rate. i would expect a smaller file in this case (the smaller file is not the goal). a frame at every I-frame would be expected to be about the same size.
one of the video feeds i monitor shows river levels. it is of interest when there is a lot of rain. but i want to get 1 minute samples every hour instead of waiting for the feed to end.
Similar Threads
-
Confused about frame rates
By ChasVideo in forum Newbie / General discussionsReplies: 1Last Post: 19th Jul 2021, 10:05 -
Hertz and frame rates
By mauricio vega in forum Newbie / General discussionsReplies: 3Last Post: 3rd Feb 2020, 10:11 -
need help with frame rates....
By yearofthespider2k3 in forum Authoring (Blu-ray)Replies: 17Last Post: 17th Feb 2018, 14:34 -
Should I convert non standard frame rates?
By BrandoL10 in forum Video ConversionReplies: 6Last Post: 19th Jul 2017, 00:25 -
Differing Frame Rates
By ron spencer in forum EditingReplies: 4Last Post: 8th Mar 2017, 22:59