Opened 8 years ago

Last modified 7 years ago

#6826 new enhancement

Add support for styled SSA/ASS subtitle rendering - libass (enhancement)

Reported by: herdemir Owned by: stippi
Priority: normal Milestone: R1
Component: Applications/MediaPlayer Version: R1/Development
Keywords: Cc: jstressman@…
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Since the the license of libass changed recently in trunk (GPL -> BSD), we should incorporate it in our Media Player( or Media Kit) for good (styled) subtitle rendering like in VSFilter, VLC or MPlayer.

libass : http://code.google.com/p/libass/

License change revision : http://repo.or.cz/w/libass.git/commit/56b0b944822ef5dee6272a6f3328f226f1b230ac

Change History (4)

comment:1 Changed 8 years ago by stippi

Just for information, the subtitle rendering in MediaPlayer is already styled. The FFmpeg libraries may already support extracting SSA/ASS subtilte tracks, so this library may not be needed at all.

comment:2 Changed 8 years ago by herdemir

Sorry for writing a long comment, just for information.

Well, sorry for not being clear in using "styled" word. To clarify "styled" subtitle it would be better to explain what SSA/ASS subtitles features are.

SSA/ASS is alot more advanced then basic subtitles(SRT) files. They provide multiple styles with style management support, like using different fonts/colors/size/shadow anywhere and anytime. They also provide advanced display features like text positioning, karaoke, etc. For more info:

If you prefer to see in action rather than in words, here are same samples which you can view them with a SSA/ASS supported player like SMPlayer,VLC,any gstreamer based player with assrender plugin, etc.:

This is where libass comes in play. It provides all the rendering support you need. Even with a simple SRT to SSA/ASS converter it can render srt subtitles with advanced style.

As for ffmpeg, it supports basic ASS/SSA subtitles by downgrading to SRT like basic subtitle(no advanced styling,etc.). Maybe they may incorporate libass with its changed license, since they don't prefer GPL but a little less restrictive license like LGPL(or maybe BSD too).

Actually, I wanted to implement it as a filter to MediaKit or MediaPlayer, like in Windows VSFilter does, but since I'm new to Be API and there is not much of good documentation about MediaKit/MediaPlayer, I couldn't go further. Even I don't know if it is possible.

IMO supporting libass in a native filter way would be really good for Haiku. Any program can use this Media Kit filter if it wants to support subtitle rendered w.

Just my 2 cents.

Last edited 8 years ago by herdemir (previous) (diff)

comment:3 Changed 7 years ago by ariza09

(Google Code-in) Haiku revision: hrev42211 still a bug.Media Player don't have good subtitle rendering. System: Haiku hrev1-alpha3 on VMware workstation 8 on windows 7 32 bit

comment:4 Changed 7 years ago by jstressman

Cc: jstressman@… added

Just adding my 2 cents on this as well (on hrev44293).

I watch a lot of Japanese videos for language study, and still use subtitles for most of them. I noticed missing support for some of the "advanced" features today.

http://docs.aegisub.org/manual/ASS_Tags

(I also work with creating and editing subtitles myself for Japanese language videos using the Aegisub program. The program is free, BSDL licensed, and has the full source available and also compiles on *nix systems... http://www.aegisub.org/ I can dream of a port, can't I?)

The subs I was using have an "override block" that was meant to show some text at the top of the video, but instead just showed the text and the override code at the bottom like a normal subtitle.

{/an8}"text to show"

The subs did at least appear to use basic html-like styling correctly.

Better subtitle support would definitely be a nice win in my book, as video support in general seems to have greatly improved and I can watch 1080p video now without any problem... basic external subtitles are working, etc.

(Of course this goes along with #8496 and #8694 for me as well.)

Note: See TracTickets for help on using tickets.