Русские субтитры mplayer
Доброе время суток!
Открыл тут для себя аниме... :) и столкнулся с проблемой просмотра фильмов с русскими субтитрами...
Прошу помощи. К гуглу просьба не посылать, я там уже искал многое пробовал но не помогло.
emerge -pv mplayer:
[ebuild R ] media-video/mplayer-1.0_rc1-r2 USE="3dnow X alsa arts dga dvd dvdread encode esd fbcon gif iconv jpeg lirc mad (mmx) opengl oss png (sse) (sse2) truetype unicode v4l2 vorbis x264 xinerama xv xvid (-3dfx) -3dnowext -aac -aalib (-altivec) -amr -bidi -bindist -bl -cdparanoia -cpudetection -custom-cflags -debug -directfb -doc -dts -dv -dvb -enca -ggi -gtk -ipv6 -jack -joystick -libcaca -live -livecd -lzo -matrox -mmxext -musepack -nas -openal -real -rtc -samba -sdl -speex (-svga) -tga -theora -v4l (-win32codecs) -xanim -xvmc" LINGUAS="en ru -bg -cs -da -de -el -es -fr -hu -ja -ko -mk -nl -no -pl -pt_BR -ro -sk -tr -uk -zh_CN -zh_TW" 0 kB
~/.mplayer/config
subcp = enca
subfont-text-scale = "3"
subfont-blur = "8"
subfont-outline = "8"
Файл с субтитрами в cp1251
Если делаю subcp = cp1251:
http://sergesangre.narod.ru/sreen1.png
Если делаю subcp =enca:
http://sergesangre.narod.ru/sreen2.png
Судя по всему во втором случае использует какой-то левый шрифт.
Пробовал подкидывать шрифт tahoma.ttf в ~/.mplayer/subfont.ttf и прописывать ~/.mplayer/config строку:
font = "/home/.mplayer/subfont.ttf"
Результата нет в обоих случаях.
Вывод mplayer -v:
mplayer Revolution\ OS.avi -vMPlayer 1.0rc1-4.1.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3600+ (Family: 15, Model: 75, Stepping: 2)
MMX2 supported but disabled
3DNowExt supported but disabled
CPUflags: MMX: 1 MMX2: 0 3DNow: 1 3DNow2: 0 SSE: 1 SSE2: 1
Скомпилировано для x86 CPU со следующими расширениями: MMX 3DNow SSE SSE2
get_path('codecs.conf') -> '/home/sangre/.mplayer/codecs.conf'
Читаю '/home/sangre/.mplayer/codecs.conf': Не могу открыть '/home/sangre/.mplayer/codecs.conf': No such file or directory
Читаю '/usr/share/mplayer/codecs.conf': Не могу открыть '/usr/share/mplayer/codecs.conf': No such file or directory
Используется встроенный codecs.conf.
Командная строка: 'Revolution OS.avi' '-v'
init_freetype
Using MMX (with tiny bit 3DNow) Optimized OnScreenDisplay
Using nanosleep() timing
get_path('input.conf') -> '/home/sangre/.mplayer/input.conf'
Can't open input config file /home/sangre/.mplayer/input.conf: No such file or directory
Parsing input config file /usr/share/mplayer/input.conf
Input config file /usr/share/mplayer/input.conf parsed: 67 binds
Установка поддержки LIRC...
get_path('Revolution OS.avi.conf') -> '/home/sangre/.mplayer/Revolution OS.avi.conf'Воспроизведение Revolution OS.avi.
get_path('sub/') -> '/home/sangre/.mplayer/sub/'
[file] File size is 730128384 bytes
STREAM: [file] Revolution OS.avi
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Обнаружен AVI формат файла!
list_end=0x2292
======= AVI Header =======
us/frame: 33367 (fps=29.970)
max bytes/sec: 0
padding: 0
MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
frames total: 152948 initial: 0
streams: 2
Suggested BufferSize: 0
Size: 640 x 274
==========================
list_end=0x10F4
==> Нашёл видеопоток: 0
====== STREAM Header =====
Type: vids FCC: divx (78766964)
Flags: 0
Priority: 0 Language: 0
InitialFrames: 0
Rate: 1000000/33367 = 29.970
Start: 0 Len: 152948
Suggested BufferSize: 62748
Quality 10000
Sample size: 0
==========================
Найден 'bih', размер звена 40 байт(а/ов), размер 'bih' 40 байт(а/ов)
======= VIDEO Format ======
biSize 40
biWidth 640
biHeight 274
biPlanes 1
biBitCount 24
biCompression 808802372='DX50'
biSizeImage 526080
===========================
Восстановление таблицы базовых кадров для MPEG-4 видео.
list_end=0x2186
==> Нашёл аудиопоток: 1
====== STREAM Header =====
Type: auds FCC: (0)
Flags: 0
Priority: 0 Language: 0
InitialFrames: 1
Rate: 13973/1 = 13973.000
Start: 0 Len: 71310030
Suggested BufferSize: 6986
Quality 4294967295
Sample size: 1
==========================
Найден 'wf', размер звена 30 байт(а/ов), размер 'wh' 18 байт(а/ов)
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2
Samplerate: 44100
avg byte/sec: 13973
Block align: 1
bits/sample: 0
cbSize: 12
mp3.wID=1
mp3.fdwFlags=0x2
mp3.nBlockSize=365
mp3.nFramesPerBlock=1
mp3.nCodecDelay=1393
==========================================================================
list_end=0x2292
AVI: найден dmlh (размер=248) (всего_кадров=152948)
list_end=0x2B3A30E6
Найден фильм на 0x280C - 0x2B3A30E6
Читаю блок INDEX, 305883 звеньев для 152948 кадров (fpos=725233902).
AVI index offset: 0x2808 (movi=0x280C idx0=0x4 idx1=0x1B56)
Auto-selected AVI audio ID = 1
Auto-selected AVI video ID = 0
AVI: Searching for audio stream (id:1)
AVI video size=651353780 (152948) audio size=71310030 (71310030)
VIDEO: [DX50] 640x274 24bpp 29.970 fps 1021.0 kbps (124.6 kbyte/s)
[V] filefmt:3 fourcc:0x30355844 size:640x274 fps:29.97 ftime:=0.0334
get_path('sub/') -> '/home/sangre/.mplayer/sub/'
[file] File size is 130978 bytes
STREAM: [file] ./Revolution OS.srt
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
SUB: Detected subtitle file format: subviewer
SUB: error opening iconv descriptor.
SUB: Read 1499 subtitles.
SUB: Adjusted 894 subtitle(s).
СУБТИТРЫ: добавлен файл субтитров (1): ./Revolution OS.srt
X11 opening display: :0.0
vo: X11 color mask: FFFFFF (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
[x11] Detected wm supports NetWM.
[x11] Detected wm supports FULLSCREEN state.
[x11] Detected wm supports ABOVE state.
[x11] Detected wm supports BELOW state.
[x11] Detected wm supports STAYS_ON_TOP state.
[x11] Current fstype setting honours FULLSCREEN STAYS_ON_TOP ABOVE BELOW X atoms
Disabling DPMS
DPMSDisable stat: 1
Xv: could not grab port 355
[xv common] Drawing no colorkey.
[xv common] Maximum source image dimensions: 2046x2046
==========================================================================
Открываю декодер видео: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Выбран видеокодек: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
==========================================================================
Открываю декодер аудио: [mp3lib] MPEG layer-2, layer-3
dec_audio: Захватываю 4608 + 65536 = 70144 байт(а/ов) для буфера вывода.
mp3lib: using generic C decore!
MP3lib: init layer2&3 finished, tables done
mpg123: Can't rewind stream by 359 bits!
MPEG 1.0, Layer III, 44100 Hz 112 kbit Stereo, BPF: 365
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
AUDIO: 44100 Hz, 2 ch, s16le, 112.0 kbit/7.94% (ratio: 14000->176400)
Выбран аудиокодек: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Построение цепочки аудиофильтра для 44100Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
ao2: 44100 Hz 2 chans s16le
audio_setup: using '/dev/dsp' dsp device
audio_setup: using '/dev/mixer' mixer device
audio_setup: using 'pcm' mixer device
audio_setup: sample format: s16le (requested: s16le)
audio_setup: using 2 channels (requested: 2)
audio_setup: using 44100 Hz samplerate (requested: 44100)
audio_setup: frags: 16/16 (4096 bytes/frag) free: 65536
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)
AO: Description: OSS/ioctl audio output
AO: Author: A'rpi
Построение цепочки аудиофильтра для 44100Hz/2ch/s16le -> 44100Hz/2ch/s16le...
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
Начало воcпроизведения...
[ffmpeg] aspect_ratio: 2.335766
VDec: запрос vo config - 640 x 274 (предпочтимое цветовое пространство: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect - 2.34:1 - премасштабирую для коррекции соотношения сторон фильма.
VO Config (640x274->640x274,flags=0,'MPlayer',0x32315659)
VO: [xv] 640x274 => 640x274 Planar YV12
VO: Description: X11/Xv
VO: Author: Gerd Knorrand others
Xvideo image format: 0x32595559 (YUY2) packed
Xvideo image format: 0x32315659 (YV12) planar
Xvideo image format: 0x59565955 (UYVY) packed
Xvideo image format: 0x30323449 (I420) planar
using Xvideo port 356 for hw scaling
[xv] dx: 0 dy: 0 dw: 640 dh: 274
*** [vo] Allocating (slices) mp_image_t, 640x288x12bpp YUV planar, 276480 bytes
[xv] dx: 0 dy: 0 dw: 640 dh: 274
XXX initial v_pts=0.000 a_pos=6986 (0.500) 1 ??% ??% ??,?% 0 0
*** [vo] Allocating (slices) mp_image_t, 640x288x12bpp YUV planar, 276480 bytes
Unicode font: 255 glyphs.
Заранее спасибо
- Для комментирования войдите или зарегистрируйтесь
Собери с gtk и
Собери с gtk и заюзай gmplayer и будешь приятно удивлен. В чем прикол не знаю :(
Была такая-же
Была такая-же ситуация.
Собрано с
media-video/mplayer-1.0.20070427 USE="X aac aalib alsa amr arts bl cddb cpudetection directfb dts dv enca encode fbcon gif iconv ipv6 jack jpeg lzo mad md5sum mmx mmxext mp3 nas opengl png pnm quicktime rar samba sdl sse sse2 theora truetype unicode vorbis x264 xanim xv xvid -3dnow -3dnowext -a52 (-altivec) -bidi -bindist -cdparanoia -custom-cflags -debug -dga -doc -dvb -dvd -dvdnav -dvdread -esd -ftp -ggi -gtk -ivtv -joystick -libcaca -lirc -live -livecd -mp2 -musepack -openal -oss -radio -real -rtc -speex -srt (-svga) -tga -tivo -v4l -v4l2 (-vidix) (-win32codecs) -xinerama -xvmc -zoran" VIDEO_CARDS="tdfx vesa -mga -s3virge" 0 kB
На правильный путь натолкнуло
lists.altlinux.ru/pipermail/sisyphus/2006-October/087389.html
После того как добавил в конфиг следующие строки, всё заработало ...
subcp=enca:ru:cp1251
fontconfig=yes
font="Arial"
subfont-osd-scale=4
subfont-text-scale=3
subfont-blur=3
sub-bg-color=0
subpos=90
Завтра буду разбираться почему именно так себя ведет и почему сразу не работает.
Зачем всё так
Зачем всё так усложнять.
Копируешь ~/.mplayer/subfont.ttf что нибудь виндовое типа Verdana.ttf . Пробуешь. Если неправильно кажет пишешь subcp=windows-1251.
Твой рецепт в
Твой рецепт в любом how-to есть, но проблема в том что не работает! У тебя система с юникодом или без? я подозреваю тут собака зарыта.
Система с
Система с юникодом, mplayer собран со след USE -
> equery u mplayer
Конфиг mplayer'a:
> cat ~/.mplayer/config | grep -vr "^#" | grep -vr "^[[:space:]]$"
Т.е. mplayer собран и работает с поддержкой ass, за это отвечает USE флаг srt, кстати всем советую включить эту опцию, равно как и truetype флаг для поддержки ttf шрифтов, определенно приятнее смотреть видео с ssa/ass субтитрами использущими разные шрифты, цвета и свободное позиционирование. Шрифты берет из fontconfig'а, по умолчанию используется шрифт 'Comic Sans MS', остальное не столь важно. Альфу можно выключить - это прозрачность...
Далее, проблем с русскими субтитрами не наблюдалось вообще, разве что когда по умолчанию используется шрифт в котором нет кирилической таблицы (что вероятно имеет место быть у вас, судя по значкам "__" вместо русских букв). Иногда при просмотре с субтитрами в utf-8 приходится в ручную менять кодировку параметром командной строки -subcp utf8.
ass субтитры
Кстати при использовании ass и подключении субтитров, mplayer будет читать свойства и типы шрифтов из файла субитров и автоматом будет пытаться их найти, в случае отсутсвия определенных шрифтов будет использовать угаданные шрифты (у меня обычно он пытается рисовать все верданой), так что внимательно следите и доустанавливайте необходимые для субтитров шрифты, чтобы насладится в полной мере предоставляемыми удобствами ass/ssa скриптов (в ином случае угаданный шрифт просто будет вылазить за определенные авторами рамки ;)
Пример ошибки нахождения шрифта:
Видно что mplayer ругается на то что не может найти шрифт 'Century Gothic', установкой которого сейчас и займемся )
Примеры ass субтитров : http://zahidinkom.kiev.ua/1.png (Bokura ga Ita, позиционирование), http://zahidinkom.kiev.ua/2.png (Death Note, разный цвет), http://zahidinkom.kiev.ua/3.png (та же серия Death Note, другой шрифт)
у меня кстати
у меня кстати тоже проблема с аниме, иногда в некоторых фильмах субтитры просто заедает. в некторых местах mplayer их заменяет на надписи типа "------", а kaffeine просто вешает иксы(но обычно оживает через несколько секунд), под виндовсом все нормально. каких-то примечательных черт у этих субтитров я не обнаружил :(
а у мя работает
а у мя работает отлично.
[ebuild R ] media-video/mplayer-1.0.20070427 USE="3dnow X a52 aalib alsa amr dvd dvdread encode esd ftp gif gtk iconv jpeg libcaca mad mp3 opengl png quicktime real srt truetype unicode vorbis win32codecs xv xvid -3dnowext -aac (-altivec) -arts -bidi -bindist -bl -cddb -cdparanoia -cpudetection -custom-cflags -debug -dga -directfb -doc -dts -dv -dvb -dvdnav -enca -fbcon -ggi -ipv6 -ivtv -jack -joystick -lirc -live -livecd -lzo -md5sum -mmx -mmxext -mp2 -musepack -nas -openal -oss -pnm -radio -rar -rtc -samba -sdl -speex -sse -sse2 -svga -tga -theora -tivo -v4l -v4l2 -vidix -x264 -xanim -xinerama -xvmc -zoran" VIDEO_CARDS="-mga -s3virge -tdfx -vesa" 0 kB
----
/gui.conf
enable_audio_equ = "no"
vo_driver = "xv"
vo_panscan = "0.000000"
vo_doublebuffering = "yes"
vo_direct_render = "no"
v_framedrop = "0"
v_flip = "0"
v_ni = "no"
v_idx = "1"
v_vfm = "vfwex"
vf_pp = "no"
vf_autoq = "0"
vf_lavc = "no"
ao_driver = "alsa"
ao_volnorm = "no"
softvol = "no"
ao_surround = "no"
ao_extra_stereo = "yes"
ao_extra_stereo_coefficient = "1.500000"
ao_alsa_mixer_channel = "Master"
dvd_device = "/dev/dvd"
cdrom_device = "/dev/cdrom"
osd_level = "1"
sub_auto_load = "yes"
sub_unicode = "no"
ass_enabled = "no"
ass_use_margins = "no"
ass_top_margin = "0"
ass_bottom_margin = "0"
sub_pos = "98"
sub_overlap = "no"
font_factor = "0.750000"
font_name = "sans-serif"
font_encoding = "cp1251"
font_text_scale = "3.510000"
font_osd_scale = "4.010000"
font_blur = "0.000000"
font_outline = "8.000000"
font_autoscale = "3"
cache = "no"
cache_size = "2048"
playbar = "yes"
load_fullscreen = "no"
show_videowin = "no"
stopxscreensaver = "yes"
autosync = "no"
autosync_size = "0"
gui_skin = "Corelian"
gui_save_pos = "yes"
gui_main_pos_x = "366"
gui_main_pos_y = "539"
gui_video_out_pos_x = "192"
gui_video_out_pos_y = "144"
----
config пуст =)
подпишуь -
подпишуь - скоро пригодится =)