Page 1 of 2

VLC won't dispay A S S subtitles

Posted: 08 Oct 2008 18:56
by peloncano
Hello, I have created some subittles using the aegisub program. Basic subtitles nothing fancy. I tried playing the files with the older version of VLC 0.8 and it does play the subitles, it will add it's own font but the words would display on the screen while the movie is playing. Now with version 0.9 (0.9.2 and 0.9.4) it won't display the subtitles.
I took a look at the console and found some errors:
Image

The error that appears the most is
[a$$] **MSGL_WARN**: [a$$] Error opening font: <null>, 0

how can I fix this problem. I have tried using regular fonts like, ARIAL, TIMES NEW ROMANS and TAHOMA. but none of them work.
I have tried adding the font to the subtitles file but it doesn't work.

Any help would be greatly appreciated it.
By the way the subtitles work fine on MPlayer but I don't really like that player, I love to use VLC....Thanks

Re: VLC won't dispay --please stay polite-- subtitles

Posted: 09 Oct 2008 02:56
by ChemicalGus
We're both using VLC 0.9.4. The bug does not exist in 0.8.6i (and possibly other versions before 0.9.4 since I jumped from 0.8.6i to 0.9.4 when updating).

The problem is 100% definitely related to ssa (advanced substation alpha) subtitles' support for specifying what font and size to use.

From reading the log it appears that VLC now has a bug in regards to grabbing a file handle/the name of the desired font, so the "what font to use" variable is empty and obviously you can't load the font then (passing an empty string to whatever font loading function you have is bound to fail).

Below is the unedited console log from my session.

Code: Select all

QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 m_el[mi_level] == NULL arrrrrrrrrrrrrg Up cannot escape itself [ass] **MSGL_V**: FreeType library version: 2.3.7 [ass] **MSGL_V**: FreeType headers version: 2.3.7 [ass] **MSGL_INFO**: [ass] Init [ass] **MSGL_INFO**: [ass] Updating font cache. [ass] **MSGL_V**: [00E0C8E8] Style: Default,Arial,16,16777215,65535,16777215,0,- 1,0,1,2,3,2,30,30,10,0,0 [ass] **MSGL_V**: [00EC5FB0] Style: Default,Arial,16,16777215,65535,16777215,0,- 1,0,1,2,3,2,30,30,10,0,0 [00000505] dts decoder: DTS channels:6 samplerate:48000 bitrate:1536000 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 Fontconfig error: Cannot load default config file Stream with high frequencies VQ coding QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 [ass] **MSGL_V**: [00EA5998] Style: Default,Arial,16,16777215,65535,16777215,0,- 1,0,1,2,3,2,30,30,10,0,0 QPainter::begin: Paint device returned engine == 0, type: 1 [ass] **MSGL_V**: event at 8193370, +2550: 80,,Default,NTP,0000,0000,0000,!Effec t,Han säger att ni är arresterad,\Nmr Deckard. [ass] **MSGL_WARN**: [ass] Neither PlayResX nor PlayResY defined. Assuming 384x2 88. [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_V**: event at 8196870, +1460: 81,,Default,NTP,0000,0000,0000,!Effec t,FeI kiIIe, kompis. [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_WARN**: [ass] Error opening font: (null), 0 [ass] **MSGL_V**: Unknown transition effect: !Effect [ass] **MSGL_V**: [0324CBB0] Style: Default,Arial,16,16777215,65535,16777215,0,- 1,0,1,2,3,2,30,30,10,0,0 QPainter::begin: Paint device returned engine == 0, type: 1
On a completely related note, PLEASE implement a "force subtitle styles" option in the subtitles dialog. It's horrible when a .mkv constains a bundled subtitle that specifies a 16 pixel font on a 1920x1080 video, going out over a projector with the text so small that the letters look like tiny dots.

If we could check an option to "force subtitle styles" it would normalize all subtitles and make everything uniform across all videos. This should affect font face, size and color. The bold/italics as well as per-line color specifications should obviously be honored in all cases (since some subtitles use color to indicate things like background sounds for the deaf). It'd be perfect to be able to force the size, default color and font face though. Otherwise we're all screwed when videos specify bad subtitles that are unreadably small.

Re: VLC won't dispay --please stay polite-- subtitles

Posted: 09 Oct 2008 08:23
by Jean-Baptiste Kempf
Could you give me the sample ?

Re: VLC won't dispay A S S subtitles

Posted: 09 Oct 2008 14:20
by peloncano
j-b ,
Here is the test you requested. Let me know if I am doing something wrong. Thanks...

Download A S S Test File

From the link you will need to change the "--please stay polite--" for "a s s" with no spaces. Let me know if you encounter any problems. I can upload it with a different name.

Re: VLC won't dispay --please stay polite-- subtitles

Posted: 09 Oct 2008 14:25
by DemonOfLoom
I have encountered this problem also after updating my VLC player to the latest release. I've tried to select a font from my Windows/Fonts folder but it does nothing when i select one and click open, typing in the file name dosen't seem to work either.

Image

Re: VLC won't dispay A S S subtitles

Posted: 09 Oct 2008 16:54
by ChemicalGus
DemonOfLoom: Once again, it only affects (or at least appears that way) subtitles that specify their own fonts to use. That's only done in the .SSA (Advanced Substation Alpha) subtitle format and no other formats to my knowledge. All other subtitle formats (that don't specify fonts) are correctly drawn using the default font, or (if one is specified) the font you've selected in the options dialog.

Yes, you're right that you must type in the actual filename of the font, not click on the font from the Fonts folder, that won't work since those "pretty", detailed font names are virtual files and are extracted by Windows from the data contained in the actual font files. I have not checked if the Windows API allows a fontname -> fontfile conversion, but it's pretty likely, and if it does then it would be trivial to improve the VLC font-picker dialog to also support selecting these virtual font files. I.e. selecting "Times New Roman" in the dialog would set the desired font file setting to X:\WINDOWS\Fonts\times.ttf. That would save work even for the experienced users, as it's sometimes quite hard to determine the actual font filename of the desired font and results in a lot of blind typing to try and get the font selection dialog auto-suggest to suggest the right filename for you, since you can't see the actual files in the folder (Unless you remove the file desktop.ini, which causes the Font folder to become like any regular folder, but that's a different topic)...

j-b: Hi, glad to see a developer here! :-D What did you think of the option to "force subtitle style"? As in my example, a 1920x1080 video I have specifies a 16 pixel font, which is so small that it looks like little dots when going out over the projector. The "force subtitle style" would do the following, using as example a .SSA file with 2 different fonts:

Example user settings in dialog:

Font face: Arial
Font color: White
Font size: 32px
[x] Override SSA subtitle styles (this is the vital option)


Substation Alpha subtitle font definitions:

(Default) style:
Font face: Verdana (lock to user preference) --> Arial
Font color: Yellow (lock to user preference) --> White
Font size: 16px (lock to user preference) --> 32px

"ClosedCaptions" style (an example font definition for those hard of hearing, used for small things like "[door opens]" text):
Font face: Times New Roman (lock to user preference) --> Arial
Font color: Red (do NOT lock to user preference, to allow difference in color for special text) --> Red
Font size: 14px (lock to user preference, but do a calculation to determine the percentage size of this font style relative to the default font style, to preserve font size relations, calculation is: ThisStyleSize 14px/DefaultSize 16px=0.875 (87.5%)=0.875*UserSize 32px=Ceil(28px), use ceil to round any floats up, and there you have it, preserved size relation) --> 28px

I'd code this if it wasn't for the sad fact that I haven't coded C++ in 6 years now.

The bold/italics specifications should obviously be honored in all cases (as long as the font permits it), even for the default style.

Re: VLC won't dispay A S S subtitles

Posted: 09 Oct 2008 17:44
by peloncano
So will the problem be fixed in another version of VLC? Or is there a patch or a work-around that I can use for now? Please advice and thanks for you help.

Re: VLC won't dispay A S S subtitles

Posted: 13 Oct 2008 17:55
by ChemicalGus
Disclaimer: Sorry about the hyperbole, that's just how I am and I am aware of it. It could be called being eccentric/passionate about subjects. :lol:

First, for the VLC developers: This bug happens when SSA files want to use fonts from the system. This requires fontconfig and this is currently not working on Windows.

If I hadn't forgot all about C++ (6 years have passed since I coded for a living) I'd have loved to try and help you solve the fontconfig problem, and code in the "override SSA subtitle styles" option I described earlier, which is vital when the BUNDLED .mkv subtitles are set to display in, for instance, 16 pixels when the video is 1920x1080, making the subtitles appear as tiny dots! See 2 posts up for description how override could be implemented in a consistent/logical way without ruining the semantics of different font styles in one SSA subtitle file. Examples of a legitimate need for having more than 1 font style is the SSA files that use a smaller/different color font for "[door opens]" etc text for the deaf. The proposed method will keep these semantics while bending them to apply to the font settings the VLC USER wants.

So will the problem be fixed in another version of VLC? Or is there a patch or a work-around that I can use for now? Please advice and thanks for you help.
I've just devised a workaround and I'll be glad to help you. This also takes care of the HUGE annoyance of bundled .ssa (Advanced Substation Alpha) subtitles specifying their own font, font color and font size that makes it IMPOSSIBLE to see the text on high-resolution videos (as in my example with a 16 pixel font on a 1920x1080 video, that makes the text look like dots).

If your subtitles are NOT bundled INSIDE the .mkv file, then skip to Step 8.

Step 1: Download mkvtoolnix for Windows from http://www.bunkus.org/videotools/mkvtoo ... ml#windows and install it.
Step 2: Download MKVExtractGUI for Windows from http://coreforge.org/frs/?group_id=33&release_id=17 and extract it INTO the folder where you installed mkvtoolnix.
Step 3: Run MKVextractGUI.exe
Step 4: Under input, select your .mkv file and the program will load up a list of the content inside it.
Step 5: Check the checkboxes under "Content" for each of the "Track ID X: subtitles (S_TEXT/SSA)" entries. Do NOT check the Video/audio entries unless you want to extract them from the mkv.
Step 6: Now you have two choices. One HORRIBLE but newbie-friendly way, or a slightly more advanced way that has the huge benefit of letting you see the actual fricking extraction progress (extracting is not fast even on a quad core processor and I prefer having a progress indicator for that reason). If you decide to use the GUI, you will get what appears to be a locked up/crashed GUI for many minutes, until the extraction is finally complete. Method a: GUI, method b: Command Line.
Step 6a: Click the "Extract" button in the GUI and wait... a looong time. With no progress indicator.
Step 6b: Much better, and very easy and FAST to do, but it takes a while to explain it so bear with me. After you've done this the first time, it becomes easy to re-do it this way any other time. First, click on the "Tracks" tab inside the GUI, then select all the text in it, which will be a line such as "mkvextract tracks "F:\movie.mkv" 3:"F:\movie_Track3.ssa" 4:"F:\movie_Track4.ssa" 5:"F:\movie_Track5.ssa" 6:"F:\movie_Track6.ssa" 7:"F:\movie_Track7.ssa" 8:"F:\movie_Track8.ssa" 9:"F:\movie_Track9.ssa" 10:"F:\movie_Track10.ssa" 11:"F:\movie_Track11.ssa" 12:"F:\movie_Track12.ssa" 13:"F:\movie_Track13.ssa" 14:"F:\movie_Track14.ssa". Open a command prompt (start->run->cmd). In the command prompt navigate to the folder where you installed mkvtoolnix, by typing C: <enter> followed by cd "\Program Files\MKVtoolnix" <enter> (if you've installed it in the default location). Now, paste the line you copied from the GUI (the "mkvextract tracks..." line) and press <enter>. It will now start extracting the subtitle tracks AND give you a progress indicator. Example:

Code: Select all

C:\Program Files\MKVtoolnix>mkvextract tracks "F:\movie.mkv" 3:"F:\movie_Track3.ssa" 4:"F:\movie_Track4.ssa" 5:"F:\movie_Track5.ssa" 6:"F:\movie_Track6.ssa" 7:"F:\movie_Track7.ssa" 8:"F:\movie_Track8.ssa" 9:"F:\movie_Track9.ssa" 10:"F:\movie_Track10.ssa" 11:"F:\movie_Track11.ssa" 12:"F:\movie_Track12.ssa" 13:"F:\movie_Track13.ssa" 14:"F:\movie_Track14.ssa" Extracting track 3 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track3.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 4 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track4.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 5 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track5.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 6 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track6.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 7 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track7.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 8 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track8.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 9 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track9.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 10 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track10.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 11 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track11.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 12 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track12.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 13 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track13.ssa'. Container format: SSA/A.S.S text subtitles Extracting track 14 with the CodecID 'S_TEXT/SSA' to the file 'F:\movie_Track14.ssa'. Container format: SSA/A.S.S text subtitles Progress: 19%
Step 7: When the extraction is done, your movie's folder will contain all these separate _TrackX.ssa files. Open Notepad and drag each file into it one by one until you find the language you wanted. Delete all the language files you don't want.

HOWEVER, WE ARE NOT DONE. THESE .SSA FILES ARE NOT PLAYABLE IN VLC BECAUSE VLC STILL HAS THE BUG THAT MAKES THE TEXT NOT SHOW UP (aka "font <null>" error, described above in the thread). As I had speculated above (and now CONFIRMED) the bug is because the .ssa file specifies a bundled font, ie says "Use Arial for this text" and THAT is what causes the VLC "font <null>" error, which makes the text not show up. To VLC developers: THIS BUG ONLY APPLIES TO WINDOWS.

Step 8: Download and install the amazing, production-grade, free subtitle editor/converter called Subtitle Workshop. Get it from http://www.urusoft.net/downloads.php?lang=1. I recommend the "Subtitle Workshop 4 BETA 4" version rather than the old "Subtitle Workshop 2.51". It may be beta, but I have never had any crash or weirdness with it, and it is much improved compared to the old version.

Step 9: Start Subtitle Workshop and drag and drop your movie_TrackX.ssa file right onto its window. This will load the text. Press CTRL+Shift+S or (File>Save As). In the save dialog, name the subtitle the same as your video, ie if the video is called Shrek.mkv, then as "File name:" type Shrek. Do not worry about typing in a file ending, just name it exactly as the movie file, minus file extension, ie "Shrek" NOT "Shrek.mkv". After you've typed in the correct name, click on the "Save as type:" dropdown list and select "SubRip (*.srt)". Click Save or press <enter>.

Step 10: Start up VLC and start the video. Right-click the video and navigate to "Video->" (or click on the Video menu at the top of the window, either is fine), then navigate to the "Subtitles Track->" submenu. Select the LAST entry in this list, which will be your external subtitle. VLC lists the internal (contained inside the .mkv) subtitles first, followed by any external subtitles after that. So the last entry will be your newly extracted and converted subtitle.

All in all, this takes a MAXIMUM of 5 minutes. Even faster after you've learnt the process and become good at it.
What you've done is:
- Extracted the subtitle from the .mkv file into a separate file.
- Converted the subtitle into .srt, a format which CANNOT specify "what font to use", meaning you've in effect stripped the font specification from the subtitle.
- Told VLC to use this external subtitle instead of one of the internal ones.
- You're done!

This also solves the huge annoyance that internal SSA subtitles (hardcoded into the MKV so you can't change them without the above extraction) OR external SSA subtitles (which are easy to edit/convert so it's not as severe as the bundled subtitles) can specify a font, which will override any choices the USER has made in the VLC SETTINGS for what font/font size/font color the USER wants. The ability for the SSA format to specify a font breaks the uniform/specific nature of the fact that the users WANT TO specify their own fonts and settings so that every video appears the same with the same readable/uniform font. The SSA format's ability to specify fonts/sizes/color completely breaks the choices the USER has made and in extreme cases makes the text unreadably small, and that behaviour is illogical, hence why a "override SSA subtitle styles" option would be logical and useful. Imagine a Home Theater PC environment where some of the videos have subtitles that look like tiny dots, that's how serious the problem is and why a "override" option would be very, very useful.

Thanks to converting to SRT (which gets rid of font definition/font color/font size) the subtitles will now be displayed AND they will use the VLC SETTINGS to display in the way YOU want them to.
:wink:

- New Cone, Chris

Re: VLC won't dispay A S S subtitles

Posted: 14 Oct 2008 09:51
by Jean-Baptiste Kempf
Waouw, this is amazing :D
First, for the VLC developers: This bug happens when SSA files want to use fonts from the system. This requires fontconfig and this is currently not working on Windows.
Yes, this is exactly the issue. The fontconfig.conf is not working. I am afraid I haven't looked at it yet.

Re: VLC won't dispay A S S subtitles

Posted: 14 Oct 2008 13:35
by peloncano
ChemicalGus, thanks for the tutorial. One thing though, I am not using a MKV file. I have an AVI file and a A$$ file, so I'm trying to play the file in VLC with the option that allows you to play them with subtitles and then I search for the subtitle file ssa. Is there an easy way I can create a MKV file using the AVI and SSA files I have? I have searched online and haven't found anything simple yet.

For now I'm using VLC on my ubuntu computer. It works great on the ubuntu version of VLC, like you said it looks like is only a windows problem. Thanks again man...

Re: VLC won't dispay A S S subtitles

Posted: 14 Oct 2008 14:12
by VLC_help
mkvtoolnix should allow you to mux AVI+SSA inside MKV container.

Re: VLC won't dispay A S S subtitles

Posted: 14 Jan 2009 01:21
by Moros
ChemicalGus, first thanks for the tutorial, but i have more then 400 different episodes in .OGM format with .SSA subtitles... :(
VLC is my favorite player because it can handle all caind of difrent files and dual audio, which only couple others can.
So i hope the problem will be fixed, or someone more intelligent than me figures out how to bypass this, because i am starting to lose it...
I had tried everything :x , and after couple of days i am still stuck with 120 Gb of video i cant understend :cry:

Please help...

Re: VLC won't dispay A S S subtitles

Posted: 14 Jan 2009 18:28
by VLC_help
VLC 1.0.0 should handle A S S subtitles correctly. Maybe even 0.9.9 if the change sent to mailing list gets backported.

Re: VLC won't dispay A S S subtitles

Posted: 16 Jan 2009 15:02
by Jean-Baptiste Kempf
VLC 1.0.0 should handle A S S subtitles correctly. Maybe even 0.9.9 if the change sent to mailing list gets backported.
It will, as soon as anyone here can confirm 1.0.0 is fixed.

Re: VLC won't dispay A S S subtitles

Posted: 18 Jul 2011 00:20
by Hazuzi
So i know this is a little late but I have the Problem from this thread and don't want to open a new one.
@Mods: If i should open a new one, just say so^^

Ok, i have an mkv file which has 2 tracks of ass-subtitles in it and different attachments for the different fonts but i got them extracted and installed them but still vlc v1.1.11 won't display them, is there some kind of other workaround or fix for it, because i have 800+ files in this kind of matter and redownloading isn't an option.

Maybe a mod or a developer could have something on this.

Greetings, Hazuzi

Re: VLC won't dispay A S S subtitles

Posted: 18 Jul 2011 08:36
by Lotesdelere
i have an mkv file which has 2 tracks of ass-subtitles in it and different attachments for the different fonts but i got them extracted and installed them but still vlc v1.1.11 won't display them
Please open Tools -> Messages (set Verbosity to 2) before you start the playback and then paste the full resulting log here or on Pastebin if it's too long.

Re: VLC won't dispay A S S subtitles

Posted: 18 Jul 2011 22:25
by Hazuzi
http://pastebin.com/AGkbYVgy

Ok i think this should be the right adress to the log, it was too long as you had predicted.

Re: VLC won't dispay A S S subtitles

Posted: 20 Jul 2011 14:55
by Jean-Baptiste Kempf
Could you share the file?

Re: VLC won't dispay A S S subtitles

Posted: 21 Jul 2011 13:25
by Hazuzi
sry but what file ?
Do you mean the video im trying to play ?

Re: VLC won't dispay A S S subtitles

Posted: 21 Jul 2011 19:41
by VLC_help
Do you mean the video im trying to play ?
Yes.

Re: VLC won't dispay A S S subtitles

Posted: 21 Jul 2011 23:21
by Hazuzi
How would you propose i share it ?
Filesize is 240 MB approximately...

Filehoster or what ?

Re: VLC won't dispay A S S subtitles

Posted: 22 Jul 2011 15:02
by Lotesdelere
How would you propose i share it ?
Filesize is 240 MB approximately...

Filehoster or what ?
Please, cut a sample of this file, 50 MB max should be enough, and upload it to some file sharing site, I suggest to use Multiupload.com, so it will upload the file for you to several other hosts, and then post the link to the file here.

Use DGsplit and read here about how to do it:
viewtopic.php?f=14&t=57724&p=193335#p193335

Re: VLC won't dispay A S S subtitles

Posted: 23 Jul 2011 13:50
by Hazuzi
Ok here's the link to the sample-file
http://www.multiupload.com/GEL1196KJK

Hope you can find something with this.

Re: VLC won't dispay A S S subtitles

Posted: 26 Jul 2011 08:51
by Lotesdelere
I can't reproduce the issue, all subtitles are playing fine to me.

Re: VLC won't dispay A S S subtitles

Posted: 26 Jul 2011 12:59
by Hazuzi
Could it be from a codec then ??
Which are you using ? I'm using the K-Lite Codec Pack + x64 version of it.
Maybe i can copy your settings and it would work.