[FFmpeg-devel] [WIP] libass subtitle renderer filter

Stefano Sabatini stefasab at gmail.com
Sat Nov 26 00:55:27 CET 2011


On date Friday 2011-11-25 22:42:52 +0100, Clément Bœsch encoded:
> On Fri, Nov 25, 2011 at 06:31:41PM +0100, Stefano Sabatini wrote:
> [...]
> > > Being able to burn some crazy subtitles like
> > > http://www.youtube.com/watch?v=dacAu3i3864 in FFmpeg with such filter is
> > > really great, thank you both for writing this filter.
> > > 
> > > > A more generic subtitle renderer should be done relying on
> > > > libavcodec/libavformat, and writing an internal AVSubtitle to video
> > > > renderer engine.
> > > 
> > > There is indeed places for improvement here, and I'd like to help
> > > eventually.
> > 
> > A possible important todo I'm leaving out is that I'm not supporting
> > YUV formats (neither more RGB formats), but since I can't spend much
> > time on coding I'd rather push this version.
> > 
> 
> I agree, the sooner upstream the better.
> 
> > Note also that I'm parsing the provided filename with av_get_token()
> > in case we need to extend the filter later, by adding more options
> > (e.g. like in *movie).
> 
> OK.
> 
> > -- 
> > FFmpeg = Friendly & Fierce Mean Pitiful Exuberant Guru
> 
> > From f8e4b1295bf6e6d6f884806fa00060e1fff2b61a Mon Sep 17 00:00:00 2001
> > From: Stefano Sabatini <stefasab at gmail.com>
> > Date: Sat, 17 Sep 2011 15:52:19 +0200
> > Subject: [PATCH] lavfi: add libass based subtitles renderer
> > 
> > ---
> >  configure                |    5 +
> >  doc/filters.texi         |    9 ++
> >  libavfilter/Makefile     |    1 +
> >  libavfilter/allfilters.c |    1 +
> >  libavfilter/vf_ass.c     |  223 ++++++++++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 239 insertions(+), 0 deletions(-)
> >  create mode 100644 libavfilter/vf_ass.c
> > 
> [...]
> > --- a/doc/filters.texi
> > +++ b/doc/filters.texi
> > @@ -574,6 +574,15 @@ build.
> >  
> >  Below is a description of the currently available video filters.
> >  
> > + at section ass
> > +
> > +Draw ASS (Advanced Substation Alpha) subtitles on top of input video.
> > +
> > +To enable compilation of this filter you need to configure FFmpeg with
> > + at code{--enable-libass}.
> > +
> > +This filter accepts in input the name of the ass file to render.
> > +
> 
> An example would be welcome, even if it is trivial.

Added.

> [...]
> > +#define R(c)  ( (c)>>24)
> 
> No risk of undefined behaviour for the MSB?
> 
> > +#define G(c)  (((c)>>16)&0xFF)
> > +#define B(c)  (((c)>>8) &0xFF)
> > +#define A(c)  ( (c)     &0xFF)
> 
> This is wrong for alpha actually; it should be something like "0xff-(c) &
> 0xff". The value is the transparency level: transparency=0x00 →
> alpha=0xFF.
> 
> (so the other patch where you fix the default value is also wrong)
> 
> You can confirm it playing the file with another player: -ass -sub foo.ass
> with mplayer for instance.

Done that way.

I also added support to more RGB formats, I'll push in a day or two if
I see no comments.
-- 
FFmpeg = Forgiving & Frightening Mega Patchable Elaborated Geisha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-lavfi-add-libass-based-subtitles-renderer.patch
Type: text/x-diff
Size: 12637 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20111126/002a8d9c/attachment.bin>


More information about the ffmpeg-devel mailing list