[FFmpeg-devel] [PATCH v5 24/25] fftools/ffmpeg: Introduce subtitle filtering and new frame-based subtitle encoding
Soft Works
softworkz at hotmail.com
Sat Jun 25 15:31:15 EEST 2022
________________________________________
From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
Sent: Saturday, June 25, 2022 1:42 PM
To: ffmpeg-devel at ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH v5 24/25] fftools/ffmpeg: Introduce subtitle filtering and new frame-based subtitle encoding
Michael Niedermayer:
> On Sat, Jun 25, 2022 at 09:57:56AM +0000, softworkz wrote:
>> From: softworkz <softworkz at hotmail.com>
>>
>> This commit actually enables subtitle filtering in ffmpeg by
>> sending and receiving subtitle frames to and from a filtergraph.
>>
>> The heartbeat functionality from the previous sub2video implementation
>> is removed and now provided by the 'subfeed' filter.
>> The other part of sub2video functionality is retained by
>> auto-insertion of the new graphicsub2video filter.
>>
>> Justification for changed test refs:
>>
>> - sub2video
>> The previous results were incorrect. The command line for this test
>> specifies -r 5 (5 frames per second), which is now fulfilled by the
>> additional frames in the reference output.
>> Example: The first subtitle time is 499000, the second is 15355000,
>> which means 0.5s and 15.35s with a difference of 14.85s.
>> 15s * 5fps = 75 frames and that's now the exact number of video
>> frames between these two subtitle events.
>>
>> - sub2video_basic
>> The previous results had some incorrect output because multiple
>> frames had the same dts
>> The non-empty content frames are visually identical, the different
>> CRC is due to the different blending algorithm that is being used.
>>
>> - sub2video_time_limited
>> Subtitle frames are emitted to the filter graphs at a 5 fps rate
>> by default. The time limit for this test is 15s * 5fps = 75 frames
>> which matches the count in the new ref.
>>
>> - sub-dvb
>> Running ffprobe -show_frames on the source file shows that there
>> are 7 subtitle frames with 0 rects in the source at the start
>> and 2 at the end. This translates to the 14 and 4 additional
>> entries in the new test results.
>>
>> - filter-overlay-dvdsub-2397
>> Overlay results have slightly different CRCs due to different
>> blending implementation
>>
>> - sub-scc
>> The first entry is no longer in the output because it is before
>> the actual start time and the strim filter removes such entries
>> now (like for video and audio)
>>
>> Signed-off-by: softworkz <softworkz at hotmail.com>
>> ---
>> fftools/ffmpeg.c | 613 +++++-----
>> fftools/ffmpeg.h | 17 +-
>> fftools/ffmpeg_filter.c | 270 +++--
>> fftools/ffmpeg_hw.c | 2 +-
>> fftools/ffmpeg_opt.c | 28 +-
>> tests/ref/fate/filter-overlay-dvdsub-2397 | 182 +--
>> tests/ref/fate/sub-dvb | 162 +--
>> tests/ref/fate/sub-scc | 1 -
>> tests/ref/fate/sub2video | 1091 +++++++++++++++++-
>> tests/ref/fate/sub2video_basic | 1238 +++++++++++++++++++--
>> tests/ref/fate/sub2video_time_limited | 78 +-
>> 11 files changed, 3010 insertions(+), 672 deletions(-)
>
> seems to break fate
>
> Input #0, ass, from 'fate-suite//sub/1ededcbd7b.ass':
> Duration: N/A, bitrate: N/A
> Stream #0:0: Subtitle: ass
> Codec AVOption threads (set the number of threads) specified for input file #0 (fate-suite//sub/1ededcbd7b.ass) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
> Codec AVOption thread_type (select multithreading type) specified for input file #0 (fate-suite//sub/1ededcbd7b.ass) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
> Stream mapping:
> Stream #0:0 -> #0:0 (ass (ssa) -> ass (ssa))
> cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
> subtitle input filter: decoding size 1280x720
> [out_0_0 @ 0x557cab64bbc0] Subtitle format change from 1 to 3
> Assertion c > 0 failed at libavutil/mathematics.c:61
That's an av_assert2-assert. softworkz probably didn't test these.
Yup. To be honest, I wasn't even aware that I'm supposed to. It seems patchwork doesn't do either?
Do I need a different configure or make fate?
Thanks,
softworkz
More information about the ffmpeg-devel
mailing list