On Monday, June 14, 2021, gorge rankin via Cin <[email protected]> wrote:
> Hello, > > I cannot seem to figure out how to render video over 60FPS. > Yes, i can confirm this bug.. Just set project/timeline to 100 fps and got this.. After inspecting cinelerram/ffmpeg.C I tried few things, but working one was just replacing this check_framerate function with std. function from libavcodec: https://ffmpeg.org/doxygen/3.2/group__lavu__math__rational.html#ga7dfd5ba1eb1edf5845ac32b338de9e76 AVRational FFMPEG::to_sample_aspect_ratio(Asset *asset) @@ -2917,7 +2919,8 @@ int FFMPEG::open_encoder(const char *type, const char *spec) int mask_h = (1<<desc->log2_chroma_h)-1; ctx->height = (vid->height+mask_h) & ~mask_h; ctx->sample_aspect_ratio = to_sample_aspect_ratio(asset); - AVRational frame_rate = check_frame_rate(codec->supported_framerates, vid->frame_rate); + //AVRational frame_rate = check_frame_rate(codec->supported_framerates, vid->frame_rate); + AVRational frame_rate = av_d2q(vid->frame_rate, 1000); if( !frame_rate.num || !frame_rate.den ) { eprintf(_("check_frame_rate failed %s\n"), filename); ret = 1; I tested 29.97 encoding and 100 and 1000 fps encoding - they come out correctly, according to ffprobe/mediainfo. Not sure why such strange convolved method of checking framerate was choosen... Only mpeg1/2 in ffmpeg-4.4 set those .supported->framerates arrays.. (grep supported_framerates libavcodec/*.c) $ grep supported_framerates thirdparty/ffmpeg-4.4/libavcodec/*.c thirdparty/ffmpeg-4.4/libavcodec/mpeg12enc.c: .supported_framerates = ff_mpeg12_frame_rate_tab + 1, thirdparty/ffmpeg-4.4/libavcodec/mpeg12enc.c: .supported_framerates = ff_mpeg2_frame_rate_tab, $ In theory this fix should also 'fix' high-fps proxies with mpeg2 (non-standart stream, but only ffmpeg supposed to read it..) Just checked ffmpeg/mpeg type and it works.... > I can do 60 FPS and below with no issue. Everything is rock solid stable > and very performant. > > I am using Cin gg latest on Ubuntu. > > My source video is 2560x1440 at 90FPS. > > What I've been doing: > - start new project > - Settings -> Format, manually type 90.000 in "Frame Rate". Ensure that > 2560 and 1440 are in Width and Height accordingly. Then I click apply, > then click OK. > - load my file through resources. right click on thumb of my video in > resources, and choose "match all". > > Then when I render my project with "File Format" of "FFMPEG" and "type" of > "mp4" I get these error message windows/errors: > > One error window with: > ------------ > "Couldn't open /path/to/outfile.mp4" > ------------ > > and another window titled "Cinelerra: Messages" with this in it: > -------------- > int FFMPEG:open_encoder(const char*, const char*): > check_frame_rate failed /path/to/outfile.mp4 > --------- > > > Am I doing something wrong? > > Thank you in advance. > > > >
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin

