Two enhancement requests

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

Two enhancement requests

Post by markfilipak »

Two enhancement requests:

1, In order to do exact trimming, would you expand PTS selection (i.e. 'Range: Seconds') from hh:mm:ss to hh:mm:ss.sss? Alternatively, trimming to exact frame number, N=0,1,2..., would be very welcome and could be used to bypass potential PTS errors.

2, Would you provide a means to entirely bypass 'Filters' & 'Video' (& perhaps 'Audio', too) and substitute a user-supplied, ffmpeg -filter_complex?

Thank you, and Warm Regards,
Mark.
Woodstock
Veteran User
Posts: 4614
Joined: Tue Aug 27, 2013 6:39 am

Re: Two enhancement requests

Post by Woodstock »

If you need "exact trimming", you REALLY need to be using an editor. You cannot guarantee that a key frame happens at a specific location to make a clean cut.

And no, the handbrake pipeline does not have that capability. It isn't "just an ffmpeg front end".

And, in case you didn't see the prominent announcement about it, feature requests are handled on github.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

Woodstock wrote: Mon Jan 25, 2021 1:20 am
Howdy,
If you need "exact trimming", you REALLY need to be using an editor. You cannot guarantee that a key frame happens at a specific location to make a clean cut.
Are you saying that the time stamps & frame numbers returned by ffprobe aren't correct? I successfully trim via MKVToolNix all the time. I'd like to do it in Handbrake. That's a great tribute to Handbrake because, as you probably know, MKVToolNix is very good.
And no, the handbrake pipeline does not have that capability. It isn't "just an ffmpeg front end".
I know that. But it certainly appears that ffmpeg version 4.2.2 is built-in (hb.dll). So, what's the real reason? :wink:
And, in case you didn't see the prominent announcement about it, feature requests are handled on github.
Oh, excuse me. I didn't see any announcement via the path that I came in. I'll try github even though it's not very user friendly. Thanks.
Woodstock
Veteran User
Posts: 4614
Joined: Tue Aug 27, 2013 6:39 am

Re: Two enhancement requests

Post by Woodstock »

Handbrake uses the library functions of ffmpeg, not the executable. There is an open github ticket about exposing more the the ffmpeg filters within handbrake (handbrake has its own), but I only recall one other person asking for the ability to splice their own filters in.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

Obviously the Handbrake team have integrated a wide range of tools; one need look no further than how subtitltes are handled. That's what makes Handbrake great. The Handbrake team can justly feel proud.

Here's a use case that applies to over 90% of DVDs and to all Blu-rays.

-filter_complex "telecine=pattern=55, split[1][2], [1]select=not(eq(mod(n\,5)\,2))[3], [2]select=eq(mod(n\,5)\,2), pp=linblenddeint[4], [3][4]interleave"

You see, my TV simply 23-telecines 24FPS video and it's full of judder. For a DisplayPort-connected TV, the NVIDIA GPU 64-telecines, so is no better. A 55-telecine halves the combing from 40% of frames to 20%, and it doubles the combed-frame rate from 6Hz to 12Hz, thereby raising the combed-frame rate to almost above the flicker-rate threshold of human vision. Adding linblenddeint postprocessing to the combed frames (N modulo5 == 2) makes judder completely disappear so that the transcodes look as good on a 60Hz TV as the original sources look on a 24Hz TV -- a true movie theater experience. But I can't incorporate this filter complex as a Handbrake preset. That's a shame.

Yes, I could do it all on the command line with a script. I could combine ffmpeg with tools to extract chapters & subtitles and maybe even launch MKVToolNix GUI with everything already set up, but why not do it all in Handbrake? Handbrake is the best tool, people like it, it just feels right.

Wouldn't it be great if the number of presets could be reduced to just a handful? I've developed other filter graphs that handle, for example, mixed 23-telecined+30FPS sources: "Making of" documentaries. Also, various flawed sources that were originally 23-telecined, then frame dropped, then frame doubled back to 30FPS, then mastered into a DVD in that state (probably because the DVD author had no better source). Also, others including hard telecine of course -- existing Handbrake presets already 23-detelecine.

Also, I'm extracting short video samples of each of these use cases so that other people can visually identify the type of source (and its foibles) and thereby select the best preset. But it all is unaccessible in Handbrake because I can't integrate ffmpeg filter graphs into Handbrake.
rollin_eng
Veteran User
Posts: 4840
Joined: Wed May 04, 2011 11:06 pm

Re: Two enhancement requests

Post by rollin_eng »

The issue may be that enabling these ffmpeg options may cause other issues within HB.

Obviously they may not, but that’s for the developers to decide as they have to program it and support it.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

rollin_eng wrote: Mon Jan 25, 2021 7:38 pm The issue may be that enabling these ffmpeg options may cause other issues within HB.

Obviously they may not, but that’s for the developers to decide as they have to program it and support it.
Indeed. But there's a way out of supporting inserted ffmpeg filter graphs. Simply include a note in the insertion dialog that states:

Since Handbrake cannot possibly support the vast number of ffmpeg filters and unlimited combinations, help with filters inserted here are best supported directly by ffmpeg (ffmpeg.org).

Now, you're probably aware of the sad state of ffmpeg documention. I suggest that a sub-forum be created here to handle that and to supplement ffmpeg documentation -- I would participate -- and that the sub-forum be supported solely by users (not by the Handbrake developers). I think that could work, and who knows, maybe it would shame the ffmpeg developers into a more reasonable stance: To allow volunteers to flesh out ffmpeg documentation... Imagine a doom9.org-type sub-forum that's more accessable and more focused than is doom9.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

Since Handbrake cannot possibly support the vast number of ffmpeg filters and combinations, help with filters inserted here is best obtained directly from ffmpeg (ffmpeg.org).

Sorry. I revised this several times prior to posting. While revising, I lost track of the sentence subject, so I failed to adjust language usage. I think it's proper English now.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

May I give you an example of what Handbrake currently does?

Suppose I represent 24000/1001FPS frames via my notation, thusly:
[A.a][B.b][C.c][D.d]
Setting CFR=60000/1001 in Handbrake produces this:
[A.a][A.a][B.b][B.b][C.c][C.c][C.c][D.d][D.d][D.d]
It's offal. The judder makes it almost unwatchable.
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Two enhancement requests

Post by mduell »

Oh god it's the 5-5 telecine guy again.

Pull requests are more interesting than feature requests.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

mduell wrote: Tue Jan 26, 2021 1:20 am Oh god it's the 5-5 telecine guy again.
Yup! Have you tried it?

-filter_complex "telecine=pattern=55, split[1][2], [1]select=not(eq(mod(n\,5)\,2))[3], [2]select=eq(mod(n\,5)\,2), pp=linblenddeint[4], [3][4]interleave"

I've spent the intervening time learning ffmpeg to a pretty deep depth.
Pull requests are more interesting than feature requests.
What does that mean?
rollin_eng
Veteran User
Posts: 4840
Joined: Wed May 04, 2011 11:06 pm

Re: Two enhancement requests

Post by rollin_eng »

I would guess the HB developers don’t want to add features then not support them.

Mduell is probably suggesting that you pull the code and do the updates yourself.
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Two enhancement requests

Post by mduell »

markfilipak wrote: Tue Jan 26, 2021 1:51 amI've spent the intervening time learning ffmpeg to a pretty deep depth.
mduell wrote:Pull requests are more interesting than feature requests.
What does that mean?
https://docs.github.com/en/github/colla ... l-requests
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

https://docs.github.com/en/github/colla ... l-requests

What am I supposed to conclude from that? Is that a *F*YOU*: If you're not a coder you have no place here? Is that it?
rollin_eng
Veteran User
Posts: 4840
Joined: Wed May 04, 2011 11:06 pm

Re: Two enhancement requests

Post by rollin_eng »

It’s more: You’ve asked for this/similar before, it probably ain’t gonna happen if you don’t do it yourself.
markfilipak
Bright Spark User
Posts: 313
Joined: Thu Aug 01, 2019 8:58 pm

Re: Two enhancement requests

Post by markfilipak »

rollin_eng wrote: Tue Jan 26, 2021 6:54 pm It’s more: You’ve asked for this/similar before, it probably ain’t gonna happen if you don’t do it yourself.
You're trolling... naughty, naughty.
rollin_eng
Veteran User
Posts: 4840
Joined: Wed May 04, 2011 11:06 pm

Re: Two enhancement requests

Post by rollin_eng »

markfilipak wrote: Wed Jan 27, 2021 2:05 pm
rollin_eng wrote: Tue Jan 26, 2021 6:54 pm It’s more: You’ve asked for this/similar before, it probably ain’t gonna happen if you don’t do it yourself.
You're trolling... naughty, naughty.
Not at all, I can’t speak for the devs and they may implement this tomorrow, but I wouldn’t bet on it.
Post Reply