See updated patch.
Ah, no - 23.97 and 59.94 fps/mpeg2 were broken!But with attached patch the seems to work again, as well as 100 fps mp4/x264 encoding (also tried mov)Can you test as much as possible various (long!) films / videos for desync problem?I also can try and add few more fps choices in this menu...
On Monday, June 14, 2021, Andrew Randrianasulu <randrianasulu@gmail.com> wrote:
On Monday, June 14, 2021, gorge rankin via Cin <cin@lists.cinelerra-gg.org> 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: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/libavcod ec/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.