actually, I think for current time jsut commented bluray.m2ts opts file should work.... with just struct bd_format expansion, because I don't know how to add correctly line or two inside already-read opts file (my x264-opts editing was not accepted by ffmpeg) ---------- Пересланное сообщение ---------- Тема: Re: [Cin] Blu-ray encoding again Дата: Суббота 16 ноября 2019 Отправитель: Andrew Randrianasulu <[email protected]> Получатель: "Cinelerra.GG" <[email protected]> В сообщении от Friday 15 November 2019 02:40:35 Phyllis Smith написал(а):
Andrew:
File I used for test was named 1080p25.ts and I found it ...
Thanks for this test file. I have been testing the bluray.m2ts that you provided off and on all day. Everything seems to work just fine on our bluray burner and when played on the bluray player connected to the TV. The fake-interlaced=1 parameter was quite intriguing so at least once, I was able to get a failure with the provided media when I left out this fake parameter. So I guess it really does what it says it does! So this opts file will get checked in with, as always, a few gg tweaks. Thanks, Phyllis/gg
I tried to patch bdcreate.C but while it worked I'm sure i did it wrong (and you need to fix keyint by hand anyway): cat /dev/shm/bdcreate.patch diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C index 863c5d0..fdafa5c 100644 --- a/cinelerra-5.1/cinelerra/bdcreate.C +++ b/cinelerra-5.1/cinelerra/bdcreate.C @@ -44,6 +44,7 @@ static struct bd_format { { "1920x1080 29.97p*", 1920,1080, 29.97, 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 24p", 1920,1080, 24., 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 25i", 1920,1080, 25., 1, ILACE_MODE_TOP_FIRST }, + { "1920x1080 25p", 1920,1080, 25., 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 23.976p", 1920,1080, 23.976, 1, ILACE_MODE_NOTINTERLACED }, { "1440x1080 29.97i", 1440,1080, 29.97, -1, ILACE_MODE_TOP_FIRST }, { "1440x1080 25i", 1440,1080, 25., -1, ILACE_MODE_TOP_FIRST }, @@ -51,6 +52,8 @@ static struct bd_format { { "1440x1080 23.976p", 1440,1080, 23.976,-1, ILACE_MODE_NOTINTERLACED }, { "1280x720 59.94p", 1280,720, 59.94, 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 50p", 1280,720, 50., 1, ILACE_MODE_NOTINTERLACED }, + { "1280x720 29.97p", 1280,720, 29.97, 1, ILACE_MODE_NOTINTERLACED }, + { "1280x720 25p", 1280,720, 25., 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 24p", 1280,720, 24., 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 23.976p", 1280,720, 23.976, 1, ILACE_MODE_NOTINTERLACED }, { "720x576 25i", 720,576, 25., 0, ILACE_MODE_BOTTOM_FIRST }, @@ -325,11 +328,23 @@ int CreateBD_Thread::create_bd_jobs(ArrayList<BatchRenderJob*> *jobs, const char FFMPEG::set_option_path(option_path, "video/%s", asset->vcodec); FFMPEG::load_options(option_path, asset->ff_video_options, sizeof(asset->ff_video_options)); - const char *opts = 0; + char *opts = 0; + char *opts1 = 0; switch( asset->interlace_mode ) { case ILACE_MODE_TOP_FIRST: opts = ":tff\n"; break; case ILACE_MODE_BOTTOM_FIRST: opts = ":bff\n"; break; } + + if ((asset->width == 1920) && (asset->height == 1080) && (asset->frame_rate != 24) && (asset->interlace_mode==ILACE_MODE_NOTINTERLACED)) + opts1="fake-interlaced=1\n"; + if ((asset->width == 1280) && (asset->height == 720) && (asset->frame_rate == 25 || asset->frame_rate == 29.97 ) && (asset->interlace_mode==ILACE_MODE_NOTINTERLACED)) + opts1="pulldown=double\n"; + + if ((opts1) && (opts)) { + int len1 = strlen(opts); + char *cp1 = opts + len1-1; + strncpy(cp1, opts1, sizeof(opts)-len1); + } if( opts ) { int len = strlen(asset->ff_video_options); char *cp = asset->ff_video_options + len-1; -------------------------------------------------------