Judder-free, 60 FPS telecine (?)

General questions or discussion about HandBrake, Video and/or audio transcoding, trends etc.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Judder-free, 60 FPS telecine (?)

Post by markfilipak »

Latest Update: viewtopic.php?p=189534#p189534. It has a higher fidelity solution and a Windows script.

Summary of Results:
I have conducted tests using a crafted p24 source that contains motion objects travelling at various speeds. By single-stepping through frames I have confirmed that the following completely avoid telecine judder.

For p24 progressive videos (Blu-rays)
ffmpeg -i IN -vf "telecine=pattern=5,bwdif=mode=send_frame" OUT

For p24 soft telecined videos (DVDs)
ffmpeg -i IN -vf "fps=24000/1001,telecine=pattern=5,bwdif=mode=send_frame" OUT

Details:
telecine=pattern=5 transcodes the p24 source, IN, to 60 FPS, OUT, with P (progressive) & C (combed) frames as follows:
P P C P P P P C P P
That's 2 combed frames out of 10 (20%) that are separated by 4 progressive frames, whereas regular telecine has 2 combed frames out of 5 (40%) and that abut (P P C C P -- combing is much more noticable). Also, there's no cadence (i.e., no judder), whereas regular telecine has 10% judder @ 6Hz and is very noticable, called "telecine judder".

bwdif=mode=send_frame decombs the 2 combed frames. Actually, it indescriminately decombs all 10 frames, but decombing a progressive frame doesn't hurt much. I'm on the hunt for a programmable decomber that can be told to decomb only frames 3 & 8.

fps=24000/1001 forces ffmpeg to ignore MPEG frame rate metadata (frame_rate_code in the MPEG header). It's needed for soft telecined videos (i.e., almost all DVD movies mastered after July, 1999). Explanation: frame_rate_code specifies 30 FPS, but that's the intended frame rate of playback, not the frame rate that's actually on the disc. The frames on the disc are actually p24.



You should skip most of this topic starter because I thought that I could create judder-free, 60 FPS video via the 'fieldmatch' filter. Well, it turns out that 'fieldmatch' doesn't function like I thought, and it turns out the task is easer than I thought: The 'telecine' filter has a simple 'pattern' parameter that works wonderfully, but there's a problem applying it to soft telecined sources. Read on...

I'm updating this because I have more info. For what it's worth, I still haven't gotten any response on the ffmpeg-user list.

UPDATE

Well, I guess the fieldmatch filter doesn't copy (cpnbu) fields. It instead makes tries at decombing based on a cpnbu menu (passed as a parameter).

Does ffmpeg have a mechanism to *copy* fields based on the same cpnbu criteria that fieldmatch employs?

ORIGINAL POST

From a video architecture standpoint, what I'm trying to do is take a 30 FPS stream (2-3-2-3), double it to 60 FPS (4-6-4-6) by simple frame repeat, then process the 60 FPS stream by reshuffling the fields according to A cpnbu template string (ccbcpupccc) that is, in this case, 10 frames long (in other words, a 10 frame repeat).

You might ask: Why do I want to do this? To eliminate judder that's present when original 24 FPS streams are displayed on 60Hz TVs.

You know how having a 120Hz TV makes for straightforward 24 FPS and 30 FPS display without judder? I thought about that for a long time and I think the same should be possible with a 60 FPS stream, but at the field level instead of at the frame level. After all, 60 FPS has 120 fields per second, does it not? "120" is the magic number, is it not?

A 30 FPS telecine has 3 progressive frames + 2 interlaced frames per 1/6 second as follows:

Code: Select all

 P   P   I   I   P   @ 30 FPS.
A 60 FPS telecine would have 8 progressive frames + 2 interlaced frames per 1/6 second as follows:

Code: Select all

P P I P P P P I P P  @ 60 FPS.
Note the differences in interlaced frame grouping, interlaced frame frequency, and interlaced frame duration. The 60 FPS would be superior in every respect and, due to the extremely brief period of interlace, probably wouldn't need any subsequent decombing.

ORIGINAL MESSAGE

I posted the following to the ffmpeg-user list and got no response -- big surprise there, eh? Is HB doing anything like this? Can it be pursuaded to do this?

Objective:
Create a telecine that is judder free.

Mental Preparation:
Here are the 2 flavors of telecines (which I call "t30")

Code: Select all

p24  = [A/a__________][B/b__________][C/c__________][D/d__________]
t30e = [A/a_______][B/b_______][B/c_______][C/d_______][D/d_______]   ...2-3 pull-down
t30o = [A/a_______][A/b_______][B/c_______][C/c_______][D/d_______]   ...3-2 pull-down
       |<--------------------------1/6s-------------------------->|
I hope you see what my peculiar notation is trying to convey.

Action:
Starting with t30e (i.e., 2-3 pull-down), make a 60 FPS that's judder free.

Code: Select all

t30e = [A/a_______][B/b_______][B/c_______][C/d_______][D/d_______]   ...2-3-2-3
t60e = [A/a_][A/a_][B/b_][B/b_][B/c_][B/c_][C/d_][C/d_][D/d_][D/d_]   ...2x FPS
        (c)   (c)   (b)   (c)   (p)   (u)   (p)   (c)   (c)   (c)     ...fieldmatch, top matching
t60  = [A/a_][A/a_][A/b_][B/b_][B/b_][C/c_][C/c_][C/d_][D/d_][D/d_]   ...5-5-5-5 result
As you can see, applying the (ccbcpupccc) top fieldmatch filter, the result should be judder-free.

Action:
Starting with t30o (i.e., 3-2 pull-down), make a 60 FPS that's judder free.

Code: Select all

t30o = [A/a_______][A/b_______][B/c_______][C/c_______][D/d_______]   ...3-2-3-2
t60o = [A/a_][A/a_][A/b_][A/b_][B/c_][B/c_][C/c_][C/c_][D/d_][D/d_]   ...2x FPS
        (c)   (c)   (c)   (u)   (p)   (u)   (c)   (n)   (c)   (c)     ...fieldmatch, top matching
t60  = [A/a_][A/a_][A/b_][B/b_][B/b_][C/c_][C/c_][C/d_][D/d_][D/d_]   ...5-5-5-5
As you can see, applying the (cccupucncc) top fieldmatch filter, the result should be judder-free.

So using the appropriate fieldmatch, judder-free 60 FPS can be achieved from either t30e or t30o.

I assume this has not been tried before.

Can someone try it or help me to construct the appropriate command line?

Regards,
Mark.

PS: If this works, I'll next try to apply it (or something similar) to a 30 FPS stream that is a mix of telecine & NTSC interlace (such as found in "Making of" movie extras).
Last edited by markfilipak on Fri Apr 10, 2020 2:25 am, edited 6 times in total.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

UPDATE
ffmpeg -i B:\VIDEO_TS\VTS_04_1.VOB -vf "telecine=pattern=5555,bwdif=mode=send_frame" OUT.MKV

The command above works!!! -- It does turn a 24/1.001 FPS source into a higher FPS, telecined output that is supurb and judder-free -- a 60Hz TV image that is as good as theater cinema -- however it seems to have exposed an ffmpeg 'telecine' filter bug: The output should be 60/1.001 FPS, however, it's 75/1.001 FPS. 'telecine' appears to be making a math mistake that causes it to trash PTSs. I'm going to try extracting the VOB to MKV via MKVToolNix and then, if successful, transcode that via HandBrake. If I can get this to work, you folks could implement it in HandBrake. It could revolutionize p24 telecine. Stay tuned.
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Judder-free, 60 FPS telecine (?)

Post by mduell »

While HB uses some libraries from ffmpeg, this belongs in the ffmpeg channels and does not relate to HB.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

mduell wrote: Sun Mar 29, 2020 2:45 pm While HB uses some libraries from ffmpeg, this belongs in the ffmpeg channels and does not relate to HB.
Oh, contraire. It does relate to HB. If this technique proves out, HB should implement it as a preset immediately. It is sorely needed. In fact, if the technique proves out, TV manufacturers should implement it in lieu of ordinary 2-3-2-3 pull-down.
User avatar
JohnAStebbins
HandBrake Team
Posts: 5712
Joined: Sat Feb 09, 2008 7:21 pm

Re: Judder-free, 60 FPS telecine (?)

Post by JohnAStebbins »

HandBrake is not an ffmpeg frontend. HandBrake uses libavfilter for several filters, but does not have a general anything goes interface to libavfilter. So you can't just "add a preset" to implement libavfilter's telecine filter within HandBrake.

Since the telecine filter generates interlaced output, and HandBrake is a tool for generating progressive output (interlacing is an abomination) we won't be adding this filter to HandBrake.

If you are looking for something to smooth the playback of progressive content on a TV that does not support progressive display, then you want this filter to be built into your playback software.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

Hi John,
JohnAStebbins wrote: Sun Mar 29, 2020 3:22 pm HandBrake is not an ffmpeg frontend.
Yes, I know this.
HandBrake uses libavfilter for several filters, but does not have a general anything goes interface to libavfilter.
Let's be liberal for a bit until I have run all my experiments, eh?
So you can't just "add a preset" to implement libavfilter's telecine filter within HandBrake.
Of course not.
Since the telecine filter generates interlaced output ...
Well, I'm outputting progressive frames, not interlaced fields. The command is:
ffmpeg -i IN.M2TS -vf "telecine=pattern=5555,bwdif=mode=send_frame" OUT.MKV
bwdif=mode=send_frame is the key to making progressive frames.
If you are looking for something to smooth the playback of progressive content on a TV that does not support progressive display ...
That is not the case. ...Who has a TV that doesn't support progressive display? What company would make such a TV?

My TV is 60Hz. p24 judders when displayed. If what I'm doing pans out then the p24 will become p60 (via 5-5-5-5 pull-down) and be judder-free. So far, I've done this with a p24 MKV but the source does not have a good judder test. But otherwise it was very, very successful. I tried repeating with a p24 VOB that's soft telecined but ffmpeg's 'telecine' filter apparently looks at the metadata (30 FPS) and erroneously makes a p75 output (i.e., 20/8*30 instead of 20/8*24). When I've finished my investigation I will file an issue on 'telecine' as it should not believe metadata and really shouldn't even be looking at metadata but at what the user asserts as the source's FPS.

Hold off until I've completed my investigations/experiments. I'm quite confident that the results will be amazing. Stay tuned to this channel...
Last edited by markfilipak on Mon Mar 30, 2020 4:21 pm, edited 1 time in total.
User avatar
JohnAStebbins
HandBrake Team
Posts: 5712
Joined: Sat Feb 09, 2008 7:21 pm

Re: Judder-free, 60 FPS telecine (?)

Post by JohnAStebbins »

Ah, i misunderstood the filter parameters. But IMO, you are still creating a file that is customized to a very narrow playback environment. Your output file will improve this particular playback environment, but could cause issues in other situations.

For example, encoding to 60fps will require higher codec level support in the target player and may require more compute and memory bandwidth to decode due to the higher framerate. So some lower spec players won't be able to play this content at all (due to lacking higher level support) and some will stall/stutter due to insufficient compute or memory bandwidth.

This kind of filtering really belongs in players. The filter itself requires very little compute resource since it is just counting and duplicating frames (a smart decoder would just reference count duplicate frames with not even a copy necessary). This would be a very nice feature to have in something like Kodi where it could be used to "fix" playback problems with all media sources and not just the ones you re-encode.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

JohnAStebbins wrote: Mon Mar 30, 2020 2:44 pm Ah, i misunderstood the filter parameters. But IMO, you are still creating a file that is customized to a very narrow playback environment. Your output file will improve this particular playback environment, but could cause issues in other situations.
That's not an issue. I use my gaming laptop as the playback unit and it's a monster. If I go to a friend's house, I bring my laptop and my 16TB brick full of movies and simply plug in via HDMI. ...And ...It's Show Time!
For example, encoding to 60fps will require higher codec level support...
MPV, VLC, and PowerDVD seem to have no difficulties.
This kind of filtering really belongs in players.
I would think that if I build 5-5-5-5 telecine into a 60 FPS stream I'm actually reducing the load on the player and the TV that would otherwise be doing 2-3-2-3 pull-down. But it's really moot as what's important to me is eliminating judder.
The filter itself requires very little compute resource...
Ah, but I don't know of a single player or TV that implements 5-5-5-5 pull-down. Do you? MPV & VLC & PowerDVD all obviously do 2-3-2-3. My current 60Hz TV obviously does 2-3-2-3.

Judder bothers me more than any other defect. The 5-5-5-5, 60 FPS telecines I've made look awsome. Object motion and credit crawls are as smooth as in a cinema. ...Um, what's the expression?... Oh, yeah: "Once you've experienced it, you'll never go back to women." :-)

I do have one nagging problem though. It is that my 5-5-5-5, 60 FPS telecine trick works great for BD sources, but it screws up with soft telecined, DVD sources. It appears that the 'telecine' filter either, 1, obeys MPEG's 'frame_rate_code' nibble that specifies 30 FPS (which, for soft-telecined video is bogus), or 2, is hard coded to 30 FPS (since prior to my trick, telecine was always targeted to 30 FPS). In either case, the output winds up 75 FPS instead of 60 FPS. ...Maybe I'll pursuade the developer to 'fix' the 'telecine' filter. (hahahahaha).

Look. I'd rather use HandBrake for a whole bunch of reasons. What do you think are the odds of implementing a 5-5-5-5, 60 FPS telecine in the world of HandBrake development?

PS: For legacy, i30, hard telecined sources, HandBrake could 2-3-2-3 detelecine followed by 5-5-5-5 60 FPS telecine on the fly. Further, I think that with that plus an i30-telecast detector based on on-the-fly, metadata detection, HandBrake could totally eliminate presets (at least, for BD & "NTSC" sources). Wouldn't that be awsome?
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

Well, correcting/expanding this in HandBrake is apparently in the hands of the HandBrake team. I think that 'telecine' is part of Libavcodec but I can't be sure because it's not documented.

I submitted a ticket (https://trac.ffmpeg.org/ticket/8590) and richardpl closed it with a status of "wontfix" without any comment or rationale or discussion.

I think this is incredibly important, perhaps revolutionary, but it's not what's usually/(ever?) done, so it gets no love.

Can I get some love here? I'm willing to work on it but would need some guidance -- I can write decent 'C', but it's always been compiled by people who worked for me. If anyone here wants to discuss it, I'm willing to write volumes about it. I have seen the difference that 5-5-5-5 pull-down makes on a 60Hz TV and I can't convey in words how significant it is.

You can see it for yourself by submitting this improved command line:
ffmpeg -i IN.M2TS -vf "telecine=pattern=5555,bwdif=mode=send_frame" -avoid_negative_ts 1 -c:v libx265 -crf 20 -preset medium -c:a copy -c:s copy OUT.MKV
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Judder-free, 60 FPS telecine (?)

Post by mduell »

Why not use repeatfields?
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

mduell wrote: Tue Mar 31, 2020 3:39 pm Why not use repeatfields?
Thanks for the suggestion. I'm not familiar/aware of 'repeatfields'. I'll investigate and experiment and get back to you. Okay?

Regards,
Mark.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

I'm back.
From the ffmpeg docs:
"11.169 repeatfields
This filter uses the repeat_field flag from the Video ES headers and hard repeats fields based on its value. "
It seems to me that that's just hard-telecining. Let's see
Soft-telecine:
frames.frame.0.interlaced_frame=0
frames.frame.0.top_field_first=0
frames.frame.0.repeat_pict=0
frames.frame.1.interlaced_frame=0
frames.frame.1.top_field_first=0
frames.frame.1.repeat_pict=1
frames.frame.2.interlaced_frame=0
frames.frame.2.top_field_first=1
frames.frame.2.repeat_pict=0
frames.frame.3.interlaced_frame=0
frames.frame.3.top_field_first=1
frames.frame.3.repeat_pict=1
Repeating the fields won't work. The result will be 2-3-2-3 pull-down (with telecine judder), but worse, without also changing 'top_field_first', the field orders will be wrong and the combing will be awful.

Let me explain it this way:
With 2-3-2-3 pull-down, 2 of 5 frames (40%) are combed and the combed frames adjoin.
With 5-5-5-5 pull-down, only 2 of 10 frames (20%) are combed and the combed frames are separated by 4 progressive frames.

In other words, there's no noticable judder and decombing is not needed due to the 1/60th second duration of the combed frame.

PS: Try it yourself with some BD content. Look at the Universal Pictures intro/spash screen as the "Universal" wraps around the Earth.
Last edited by markfilipak on Tue Mar 31, 2020 4:23 pm, edited 1 time in total.
User avatar
JohnAStebbins
HandBrake Team
Posts: 5712
Joined: Sat Feb 09, 2008 7:21 pm

Re: Judder-free, 60 FPS telecine (?)

Post by JohnAStebbins »

The problem with you DVD experiment may be that detelecine conversion by itself does not result in a steady stream of 23.976 fps progressive frames. When it converts 29.97 fps interlaced video it is simply de-duplicating fields to reconstruct the progressive frames. You can't create steady 23.976 fps by *only* de-duplicating fields. After field de-duplication, some frames will be longer and some shorter than 1 / 23.976 seconds. You may need a constant framerate filter between detelecine for DVD 29.97 to 23.976 and telecine to upconvert to 60fps.

So it looks something like this:
Source 29.97 -> detelecine gives approx 23.976 -> constant framerate adjusts to exactly 23.976 -> telecine upconvert 59.94
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

JohnAStebbins wrote: Tue Mar 31, 2020 4:12 pm The problem with you DVD experiment may be that detelecine conversion by itself does not result in a steady stream of 23.976 fps progressive frames.
I'm not detelecining. I'm starting with p24 progressive BD content. Did you try my command line a couple of messages above?
When it converts 29.97 fps interlaced video it is simply de-duplicating fields to reconstruct the progressive frames.
I'm not starting with 30/1.001 FPS interlace video. I'm not talking about interlaced video at all. I'm starting with p24 progressive (which 5-5-5-5 pull-down works fantastic -- no telecine judder), and I'm trying to extend that technique to p24 soft-telecined (progressive) DVD content (which the 5-5-5-5 pull-down fails because of a flaw in the 'telecine=pattern' filter).
You can't create steady 23.976 fps by *only* de-duplicating fields. After field de-duplication, some frames will be longer and some shorter than 1 / 23.976 seconds. You may need a constant framerate filter between detelecine for DVD 29.97 to 23.976 and telecine to upconvert to 60fps.
That's the standard way of telecining. It produces telecine judder. I'm not doing that.

I'm doing 5-5-5-5 pull-down (via the 'telecine=pattern=5555' filter) to convert the p24 source to p60. The resulting p60 is beautiful and judder-free.

Try it yourself.
User avatar
JohnAStebbins
HandBrake Team
Posts: 5712
Joined: Sat Feb 09, 2008 7:21 pm

Re: Judder-free, 60 FPS telecine (?)

Post by JohnAStebbins »

I was responding to this:
...but it screws up with soft telecined, DVD sources. It appears that the 'telecine' filter either, 1, obeys MPEG's 'frame_rate_code' nibble that specifies 30 FPS (which, for soft-telecined video is bogus), or 2, is hard coded to 30 FPS (since prior to my trick, telecine was always targeted to 30 FPS). In either case, the output winds up 75 FPS instead of 60 FPS
You explicitly said you had a problem with telecined DVD content.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

JohnAStebbins wrote: Tue Mar 31, 2020 4:42 pm I was responding to this:
...but it screws up with soft telecined, DVD sources. It appears that the 'telecine' filter either, 1, obeys MPEG's 'frame_rate_code' nibble that specifies 30 FPS (which, for soft-telecined video is bogus), or 2, is hard coded to 30 FPS (since prior to my trick, telecine was always targeted to 30 FPS). In either case, the output winds up 75 FPS instead of 60 FPS
You explicitly said you had a problem with telecined DVD content.
I see your confusion. Thanks for clarifying. I did not say the problem is with telecined DVD content. I said the problem is with soft telecined DVD content (which, of course, is actually p24 progressive content).
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

John, simply run this:
ffmpeg -i IN.M2TS -vf "telecine=pattern=5555,bwdif=mode=send_frame" -avoid_negative_ts 1 -c:v libx265 -crf 20 -preset medium -c:a copy -c:s copy OUT.MKV
against some BD movie. You'll see the drastic improvement (provided you have a 60Hz TV) that eliminates telecine judder. Then try it against some DVD movie and you'll see some improvement, but the video will run at 75 FPS instead of 60 FPS due to the flaw in the implementation of 'telecine=pattern=5555'.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

Let me give some background:
Beginning about 4 months ago, I started beating this drum. I argued based on timing diagrams I developed, but no one understood my timing diagrams. So I've spent the last 2 months learning ffmpeg so that I'd be able to produce some real transcodes that show what I tried to show with my diagrams. You can see the results yourself, with BD movies, by running my command line. All is Joy, but for BD movies only. Now, I try to extend it to DVD movies and a flaw in the 'telecine=pattern' filter kicks the transcode to 75 FPS instead of 60 FPS. That's not right and I reckon that it's not right because the 'telecine' filter is looking at the frame_rate in the DVD stream's metadata. It shouldn't do that. The metadata is assuming 2-3-2-3 pull-down by the player. Math: For BD progressive content, PTS adjustment to 5-5-5-5 pull-down is calculated correctly: 20/8*24FPS, but for DVD soft telecined content, PTS adjustment to 5-5-5-5 pull-down (which should be identical) is instead calculated as 20/8*30FPS. Where is the 'telecine' filter getting "30FPS"? It can only be from the MPEG-2 header. That's wrong. The MPEG-2 header is assuming that 2-3-2-3 pull-down will be performed, but I'm not performing 2-3-2-3 pull-down. I'm doing 5-5-5-5 pull-down.

Gosh, I hope you follow all that.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

It works! At last, after working on this for 4 months; judder-free movies on 60Hz TVs.

For BD movies:
ffmpeg -i IN.M2TS -vf "telecine=pattern=5555,bwdif=mode=send_frame" -avoid_negative_ts 1 -c:v libx265 -crf 20 -preset medium -c:a copy -c:s copy OUT.MKV

For soft-telecined DVD movies:
ffmpeg -r:v 24000/1001 -i IN.VOB -vf "telecine=pattern=5555,bwdif=mode=send_frame" -avoid_negative_ts 1 -c:v libx265 -crf 20 -preset medium -c:a copy -c:s copy OUT.MKV

For some reason, in the DVD movie, I'm getting only Japanese dialog, but the video is stunning and judder-free.

I will work on this more and provide a good documentation write-up.

(I think this is a game changer regarding telecine.)

PS: And no decombing is needed.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

You good folks can help. How do I implement the ffmpeg functions within HandBrake? Can I use 'Custom' filter settings? If so, which ones and what would the settings be?
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Judder-free, 60 FPS telecine (?)

Post by mduell »

You don't. HB is not an ffmpeg front end. Use ffmpeg if you want ffmpeg.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

I wrote: "How do I implement the ffmpeg functions within HandBrake? Can I use 'Custom' filter settings? If so, which ones and what would the settings be?"
mduell wrote: Tue Mar 31, 2020 6:17 pm You don't. HB is not an ffmpeg front end. Use ffmpeg if you want ffmpeg.
Yes, you seem to be stuck on that "HB is not an ffmpeg front end" thing. However, they use the same libraries and have much in common, so it should be possible to configure HB to do the same thing that I can now do with ffmpeg. I prefer to use HandBrake for its superior audio & subtitle stream handling and flexible configuration. HandBrake is more friendly.

If I can't use 'Custom' filter settings, then what good are they?
Deleted User 11865

Re: Judder-free, 60 FPS telecine (?)

Post by Deleted User 11865 »

HandBrake is not a generic front end to libavfilter, you cannot just call any random filter. We don't integrate either the telecine or bwdif filters. Patches welcome.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Judder-free, 60 FPS telecine (?)

Post by markfilipak »

For the sake of your users, I hope you reconsider. As for me, I don't like it, but I'll have to abandon HandBrake for lack of functionality. I'll create a script that determines whether the source is an M2TS or a VOB and apply the appropriate ffmpeg command line. Next I'll figure out how to algorithmically detect if the source is legacy i30-hard-telecine or i30-telecast or a mix of the two and fold that in. When done with all that, I'll have 1 script that does everything except PAL. That stuff could be used to create a single, Swiss Army knife preset in HandBrake, but I guess you and mduell will not be helping me, eh? If true, that's too bad. I urge you to reconsider.
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Judder-free, 60 FPS telecine (?)

Post by mduell »

I urge you to write and support the necessary code to integrate arbitrary filters from the libavfilter library into HB. Should keep you busy for a while.
Locked