[MPlayer-users] i18n: Some thoughts and a suggested FAQ

Kalin KOZHUHAROV kalin at ThinRope.net
Wed Apr 9 03:57:59 CEST 2003

Hi, all!

I am using MPlayer/MEncoder for quite some time now, although as a simple user, not developer. Simply the best player/encoder for linux!

(Un)fortunately I am among those people that (have to) speak/read/write several languages in their everyday life. And taking into consideration that I spend zillions of nanoseconds in front of computers every day (=24h), I obviously have a lot of i18n (iNTERNATIONALIZATIOn) problems with different software (no hardware troubles yet!).

So, I decided to start an i18n FAQ for MPlayer and may be A/V in general. This is 0.0.1a-draft and I need your help and opinions. Once we move to 0.0.1 I will put a good looking page on my site and hope to get it linked from the main site (no ads/banners on my sites).

So here it goes:

Section 0: Introduction
Q 0.01: What is i18n? What is L10? What is locale?
A 0.01: i18n stands for i-18_letters-n where 18_letters are "nternationalizatio". So it is short for internationalization. L10 is short for Localization, usually written with capital "L" not to be confused with 110 on bad displays. Locale is the general term for the place/region/culture you belong (think currency sign, decimal point notation, calendar format, etc.).  L10 usually has to do with one language and one locale, i18n has to do with more of each. [Anybody has better definitions?]

Q 0.02: What is MPlayer?
A 0.02: MPlayer is a movie player for LINUX (and not only). It plays most MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5 and even WMV movies, too (without the avifile library).
[ Shortened from http://www.mplayerhq.hu/homepage/info.html]

Q 0.03: Why do I need i18n?
A 0.03: May be you don't. Chances are you do, if you want to read documentation in your native language (and it happens to not be English), if you want to play/encode several audio tracks and/or subtitles in different languages or simply display non-English subtitles.

Q 0.03: What is a language code? What is a country code? What is the difference?
A 0.03: Language code usually refers to a two-letter abbreviation of the language name (as written in English). There is a standard: ISO 639-1 (http://www.loc.gov/standards/iso639-2/) for that.
Example: English -> en, Hungarian -> hu, Japanese -> ja, Bulgarian ->bg,  Bambara->bm 

Q 0.04: What is a country code?
A 0.04: Country code usually refers to a two-letter abbreviation of the country name (as written in English). There is a standard: ISO 3166 (http://www.iso.org/iso/en/prods-services/iso3166ma/index.html) for that.
Example: United Kingdom -> gb, Hungary -> hu, Japan -> jp, Bulgaria ->bg,  Mali->ml 

Q 0.05: Is there any difference between a language code and a country code?
A 0.05: Definely. English (en) is spoken in many countries (gb,ca,us). In Canada (ca) both English (en) and French (fr) are official languages. Country is Japan (jp), but language is Japanese (ja).

Q 0.06: How to name my (language specific) files?
A 0.06: The best and widely practiced approach is to insert language code (Q.0.04) just before the extension. It is widely recognized.
Example: A Japanese audio track -> frameno.ja.avi

Section 1: MPlayer i18n options
Q 1.01: What is --enable-i18n and --language=xx used for (at compile time)?
A 1.01: --language tells ./configure that use help_mp-XX.h where XX is language id and --i18n enables experimental gnu gettext support, but it has no any sense as that code was not finished and affair has been abandoned. (http://mplayerhq.hu/pipermail/mplayer-users/2002-September/020585.html)

Q 1.02: How to use -alang/-slang, -aid/-sid and -vobsuboutid properly?
A 1.02: a=aUDIO, s=sUBTITLE, lang=langUAGE. id=id; -alang/-slang work only for DVD (correct me if I am wrong, man page says it). As far as my experience goes, they often fail to work for different reasons (e.g. there are several en subtitles?). -sid/-aid are more reliable, but you need to know the id of the language/subtitle stream (mplayer -v and look at the output).
Example: Play in Japanese with English subtitles -> mplayer -v -dvd 1 -alang ja -slang en
Example: Extract audio stream 128 (to frameno.en.avi, CBR 128Kbps, joint-stereo) and subtitle stream 2 (to movie.{idx|sub}) and say subtitles are English (for a 2-/3-pass MPEG-4) -> mencoder mydumpedDVD -ifo movie.ifo -vobsubout movie -sid 2 -vobsuboutid en -ovc frameno -oac mp3lame -lameopts vbr=0:br=128:mode=1 -o frameno.en.avi

Q 1.03: Multiple audio streams in one AVI?
A 1.03: You can play such files (use -aid to switch audio), but cannot encode them directly with MEencoder (http://mplayerhq.hu/pipermail/mplayer-users/2002-September/020584.html). Try the newest avimerge utility (http://mplayerhq.hu/pipermail/mplayer-users/2003-April/031957.html).

Q 1.04: Ogg/Vorbis ?
A 1.04: You can (apparently) use Ogg/Vorbis format to have several audio/video/subtitle streams in one file. 

Section 2: Problems
Q 2.01: I can't use Japanese text subtitles...
A 2.01: Update your MPlayer or see http://chubaka.homeip.net/mplayer/ and http://mplayerhq.hu/pipermail/mplayer-users/2002-May/014613.html


Tell me what you think!
Do you know of any similar FAQs?
What other questions/answers would you suggest?

And two unanswered questions for now:
How do I specify an audio/video stream in an AVI file its language when encoding?

For example, I get Language: 0 when using mplayer -v movie.avi:

==> Found video stream: 0
======= STREAM Header =======
Type: vids   FCC:  (0)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 239759/10000 = 23.976
Start: 0   Len: 149316
Suggested BufferSize: 67765
Quality 0
Sample size: 0
found 'bih', 40 bytes of 40
======= VIDEO Format ======
  biSize 40

==> Found audio stream: 1
======= STREAM Header =======
Type: auds   FCC:  (0)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 16000/1 = 16000.000
Start: 0   Len: 99652992
Suggested BufferSize: 8000
Quality 0
Sample size: 1
found 'wf', 28 bytes of 18
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2

Which one (A?,V?) does mplayer use when saying:

Playing movie.avi
[vobsub] subtitle (vobsubid): 0 language en
[vobsub] subtitle (vobsubid): 1 language ja
No matching VOBSUB languge found!


HAaa! A bug in spelling found by Mozilla's spellchecker :-)
No matching VOBSUB languge found!
                   ^^^^^^^ ->languAge
[MPlayer 0.90rc5-RPM-3.1] Please fix it, won't file a whole bug report for that.

||///_ o  *****************************
||//,_/>     WWW: http://ThinRope.net/ 
|||\ <"                                
|||\\ '                                

More information about the MPlayer-users mailing list