![]() Encoders like x264/x265 will more aggressively optimize those frames. ![]() If the same set of frames are to be shown at 25 fps then each frame's duration is 40 milliseconds and transient features will not be fully appreciated by a viewer. The CRF mode aims to obtain and maintain a certain quality level in its encoded output. I'm guessing there is some x264 codec setting which is frame rate dependent, but I'm at a loss trying to figure out which one (from what I understand, constant bitrate is affected by frame rate but CRF should not be, but maybe I'm misunderstanding it. I tried messing with -minrate, -maxrate, -bt, none helped. ![]() To offset, I tried increasing -crf for the 2 FPS file, to get about the same target size, but that just gave me a very blurry video (had to go to crf=40). So, the I/P/B counts are identical, but the QP is much lower for the 2 FPS file. The 2 FPS file had: frame I:1 Avg QP:21.29 size: 90138 The 30 FPS file had: frame I:1 Avg QP:30.67 size: 44649 First, to make sure ffmpeg wasn't duplicating frames in the longer verison, I check the I/P/B counts. ![]() Notes: Some theories I had, and things I checked. How do I encode at a slower frame rate, without the final file size ballooning? Now I have a file that's 30 seconds long, but the size jumped to 891 KB! The video quality looks perceptually the same. Then I realized I needed it to be slower, so I re-ran the same command, but changed -r to 2. ![]() With 60 frames, that gives me a 163 KB file that's 2 seconds long. My first attempt, I encoded it at 30 FPS, using: ffmpeg -r 30 -pattern_type glob -i "*.jpg" -vcodec libx264 -crf 30 -pix_fmt yuv420p output.mp4 I'm using ffmpeg to encode a set of images as a short timelapse video, using libx264 codec. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |