[FFmpeg-devel] [RFC] Subtitle Filtering Ramp-Up
softworkz .
softworkz at hotmail.com
Sat Jun 7 19:19:48 EEST 2025
It's MythBusters Day!
=====================
Today: Busting the Lies of Nicolas George
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Nicolas George
>
> [...]
>
> When I say that softworkz's approach is broken, I know what I am
> talking about.
Oh wow, that sounds impressive - but does he really..?
Let's see how much of his infamous, often claimed, never detailed
and never ever proven myths will hold up true after a fact-check.
> It is broken in three ways.
> The first way is the hardest: it does not handle syncing,
It does handle syncing perfectly via framesync wherever it's
required. (example right below)
> It just
> feeds everything to libass and takes what comes out of it.
Wrong. Two examples:
video > [sub_cc] > textsubs > [overlaytextsubs] > video
video > [graphicsub_ocr] > textsubs > [overlaytextsubs] > video
What's specific to those examples is that in both cases, (closed
captions and OCR for bitmap subs), the text events DO NOT
come all at once, but continuously, which is the nature of
those cases and contradicts the false claim that NG tried
to place.
==> "broken in three ways #1" => Busted
> softworkz has refused to even test that case.
Really?
I have not only tested that case - I have tested dozens of cases,
and not just that. I even have a cross-platform automated test
system which is testing dozens of different filtergraphs for
subtitle filtering, including hardware accelerated filtering.
The two videos here are showing 66 (!!) different filtergraph setups
which are all working successfully:
https://github.com/softworkz/SubtitleFilteringDemos/tree/master/TestRun1
==> "broken in three ways #1.1" => Busted
> easiest to fix: he neglected to implement all the utility filters,
> the
> filters that operate not on the frame payload but on timestamps, side
> data, other technical properties. All these filters are needed for
> subtitles too. softworkz patch series do not include them, and he
> refuses to implement them.
After asking him 5 times to name the filters he is referring to,
he wasn't able to do so.
And nobody can say that stating the names of the filters would be
asked too much.
==> "broken in three ways #2" => Busted
> Third flaw: no negotiation. Negotiation is a core concept of
> libavfilter: have a RGB stream and a YUV-only filter? lavfi inserts
> the
> scale filter, and it inserts it at the right place. With softworkz's
> implementation: have text subtitles, expect bitmap ones, it fails
> instead of inserting the rasterizer at the right place.
Negotiation is properly implemented.
Not auto-inserting a text-to-bitmap subs filter is intentional,
but very easy to change - in the same way as filters are already
auto-inserted to replicate the sub2video hack from somebody, which
is an old half-broken feature in FFmpeg.
There's proof already that auto-insertion is working,
just not for that case where it is intentionally not done.
==> "broken in three ways #3" => Busted
> This series only works in the simplest of test cases.
That's a good laugh after viewing evidence showing 66 different
working cases, which is still just a fraction.
Everybody can run these tests oneself, I can give instructions,
takes about 30 minutes to set up, works on Windows, Linux and
most of its derivates, Android and Mac.
==> "broken in three ways #3.5" => Bonus-Bust
Best regards,
softworkz
More information about the ffmpeg-devel
mailing list