Матрешка и субтитры (заморочка с кодировками)

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Матрешка и субтитры

Сообщение sspphheerraa »

Как правильно запаковать в матрешку фильм (анг.) и субтитры на русском?
В mkvtoolnix добавляю avi-файл и добавляю str-файл. Далее выбираю для субтитров язык - rus, и кодировку UTF-8 (такова кодировка в файле). Муксю...

Проигрываю MPlayer'ом так:
$ mplayer RevolutionOS.mkv -slang rus
и вижу что субтитры играются в двух экземплярах - с нормальным русский и с не нормальным :ph34r:
Что я не правильно сделал? или я проигрываю не правильно?

скрин прилагаю
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Sspphheerraa
Спасибо сказали:
Arux
Сообщения: 24
ОС: GNU/Linux 2.6.17; Kubuntu 6.10

Re: Матрешка и субтитры

Сообщение Arux »

Трпдиционно, для кодирования кириллических .srt-субтитров использовалась и используеться CP-1251. По умолчанию, такой кодировки ожидают многие проигрыватели и mkvmerge. Насколько я понял, ты писал .srt-скрипт изначально в уникоде, потом с соответствующим ключом муксил через mkvmerge, т.е. проблем с кодировками нет. Попробуй поставить default-flag для русских субтитров и кормить выходную матрёшку mplayer'у без дополнительных ключей.
Кстати, не помешало бы дать вывод mplayer'a - в нём вся соль :-)

В качестве примера могу показать следующее. У меня есть закоженый в личную коллекцию кинофильм "Girl Interrupted" (первое, что попалось по руку). Вот вывод mplayer'a:

Код: Выделить всё

lang rus
MPlayer 1.0rc1-4.1.2 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (Family: 15, Model: 2, Stepping: 9)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

Playing /media/hdb5/Bonus.vid/girl_int.mkv.
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC) "VideoStream", -vid 0
[mkv] Track ID 2: audio (A_AAC/MPEG4/LC) "Russian 5.1", -aid 0, -alang rus
[mkv] Track ID 3: audio (A_AAC/MPEG4/LC) "English 5.1", -aid 1, -alang eng
[mkv] Track ID 4: audio (A_AAC/MPEG4/LC) "Director's Comments", -aid 2, -alang eng
[mkv] Track ID 5: subtitles (S_TEXT/UTF8) "Russian Subtitles", -sid 0, -slang rus
[mkv] Track ID 6: subtitles (S_TEXT/UTF8) "English Subtitles", -sid 1, -slang eng
[mkv] Will play video track 1
[mkv] Will display subtitle track 5
Matroska file format detected.
VIDEO:  [avc1]  640x352  24bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
FAAD: compressed input bitrate missing, assuming 128kbit/s!
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio) decoder)
==========================================================================
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 640 x 352 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.85:1 - prescaling to correct movie aspect.
VO: [xv] 640x352 => 652x352 Planar YV12

Как можно заметить, в матрёшке целых щесть дорожек. Флаги default-flag в mkvmerge я ставил на: Track ID 1, Track ID 2, Track ID 5. Пускал mplayer твоей командной строкой. Всё играеться превосходно: слышу русскую дорожку звука (по умолч.) и вижу только одни русские субтитры. Если дыть команду

Код: Выделить всё

$mplayer /media/hdb5/Bonus.vid/girl_int.mkv -slang eng
, то увижу только английские субтитры.
Наверняка не скажу (ибо надо увидеть вывод твоего mplayer'a), но, судя по картинке, в рендеринг ушли субтитры из матрёшки и субитры из каталога в котором лежит матрёшка - возможно mplayer их тоже подгрузил :-) - ищи в выводе строчки типа:

Код: Выделить всё

SUB: Detected subtitle file format: ssa
SUB: Read 263 subtitles.
LIBASS: added subtitle file: ./Kemonozume - 01.ass (4 styles, 263 events)
SUB: Added subtitle file (1): ./Kemonozume - 01.ass
[ass] auto-open
[ass] Init

В этих строчках я играю онимэ с внешними сабами .ass...

Кстати, самый эргономичный фронт к mplayer'у - это SMPlayer ;-)
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Матрешка и субтитры

Сообщение sspphheerraa »

Перемуксил, с default флагом.
Вот на всякий случай, команда мукса mkvmerge:

Код: Выделить всё

"mkvmerge" -o "/home/maa/RevolutionOS.mkv"  --track-name 0:Video --language 1:eng --track-name "1:English Audio Track" -a 1 -d 0 -S /home/maa/2dvd/RevolutionOS.avi --sub-charset 0:UTF-8 --language 0:rus --track-name "0:Russian Subtitles" --default-track 0 -s 0 -D -A /home/maa/2dvd/RevolutionOS.srt --track-order 0:0,0:1,1:0

Если запускать без ключа -slang - то субтитров нет.
Вот вывод с субтитрами (результат тот же):

Код: Выделить всё

$ mplayer RevolutionOS.mkv -slang rus
MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2007 MPlayer Team
CPU: AMD Athlon(tm) 64 Processor 3000+ (Family: 15, Model: 47, Stepping: 0)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Playing RevolutionOS.mkv.
[mkv] Track ID 1: video (V_MS/VFW/FOURCC) "Video", -vid 0
[mkv] Track ID 2: audio (A_MPEG/L3) "English Audio Track", -aid 0, -alang eng
[mkv] Track ID 3: subtitles (S_TEXT/UTF8) "Russian Subtitles", -sid 0, -slang rus
[mkv] Will play video track 1.
[mkv] Will display subtitle track 3.
Matroska file format detected.
VIDEO:  [XVID]  640x272  12bpp  23.976 fps    0.0 kbps ( 0.0 kbyte/s)
[ass] auto-open
Opening video filter: [screenshot]
Opening video filter: [eq2]
[ass] Init
[ass] Updating font cache.
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 640 x 272 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 2.35:1 - prescaling to correct movie aspect.
[swscaler @ 0xcd7e90]SwScaler: using unscaled yuv420p -> bgr24 special converter
VO: [xv] 640x412 => 640x412 Planar YV12
[ass] PlayResX undefined, setting 678.00   1/  1 ??% ??% ??,?% 0 0
A:   2.9 V:   2.9 A-V:  0.004 ct: -0.003  70/ 70  5% 24%  0.7% 1 0
Exiting... (Quit)
$

Заметил еще одну вещь, если в ~/.mplayer/config отключить ass (по-умолчанию оно у меня включено), то исчезают "нормальные" субтитры, а остаются только "большие, без русского". В папке где лежит полученный mkv отдельного файла субтитров нет. Но тем не менее что-то тут не то...

И вот на всякий случай конфиг MPlayer'а:

Код: Выделить всё

# ~/.mplayer/config
# Write your default config options here!

#Накладываемые фильтры
vf=eq2,screenshot #,kerndeint

#Обрезание краев фильма #vf=crop[=w:h:x:y]

#Субтитры и все связанное с ними
ass=1 #Включает рендеринг субтитров SSA/ASS
ass-bottom-margin=140 #Добавляем черную полосу внизу
ass-use-margins=1 #Отображать субтитры на добавленной черной полосе
ass-color=FFFFFF00 #Белый цвет текста
subfont-text-scale=5 #Размер шрифта субтитров, процент от высоты кадра
#subfont-osd-scale=6 #Размер шрифта для osd - default
#subfont-blur=2 #Размытие контура вокруг букв - default
#subfont-outline=2 #Толщина чёрного контура вокруг букв - default
fontconfig=yes
font="DejaVu Sans" #Список доступных имен можно посмотреть коммандой fc-list
#subcp=enca:ru:cp1251

#Пропорции фильма в случае если они в файле не верны
#−aspect 4:3 or −aspect 1.3333
#−aspect 16:9 or −aspect 1.7777
#sinesuppress[=freq:decay] #Полезен для удаления 50/60Гц шума на низкокачественном звуковом оборудовании

#Телевидение
tv=driver=v4l2
#:chanlist=europe-west

- У тебя я тоже вижу субтитры в UTF-8
- SMPlayer в портежах gentoo не нашел... да и ладно, я уже привык к консольному :)
Sspphheerraa
Спасибо сказали:
Arux
Сообщения: 24
ОС: GNU/Linux 2.6.17; Kubuntu 6.10

Re: Матрешка и субтитры

Сообщение Arux »

Глупое, конечно предложение, а если проигнорить ~./mplayer/config и все настройки дефолтом прогнать?
По ходу mplayer считает, что он прав в том, что рендерит сабы дважды и второй раз неправильно... Какая странно любопытная проблеммка... Ради интереса попробовал твой конфиг. Играеться нормально кажет одни сабы :-)
Вывод вот:

Код: Выделить всё

$ mplayer ./girl_int.mkv -slang eng
MPlayer 1.0rc1-4.1.2 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (Family: 15, Model: 2, Stepping: 9)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

Playing ./girl_int.mkv.
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC) "VideoStream", -vid 0
[mkv] Track ID 2: audio (A_AAC/MPEG4/LC) "Russian 5.1", -aid 0, -alang rus
[mkv] Track ID 3: audio (A_AAC/MPEG4/LC) "English 5.1", -aid 1, -alang eng
[mkv] Track ID 4: audio (A_AAC/MPEG4/LC) "Director's Comments", -aid 2, -alang eng
[mkv] Track ID 5: subtitles (S_TEXT/UTF8) "Russian Subtitles", -sid 0, -slang rus
[mkv] Track ID 6: subtitles (S_TEXT/UTF8) "English Subtitles", -sid 1, -slang eng
[mkv] Will play video track 1
[mkv] Will display subtitle track 6
Matroska file format detected.
VIDEO:  [avc1]  640x352  24bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
[ass] auto-open
Opening video filter: [screenshot]
Opening video filter: [eq2]
[ass] Init
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
FAAD: compressed input bitrate missing, assuming 128kbit/s!
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio) decoder)
==========================================================================
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 640 x 352 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.85:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 5 -> 4

SwScaler: BICUBIC scaler, from yuv420p to bgr24 using MMX2
SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
SwScaler: using n-tap MMX scaler for vertical scaling (BGR)
SwScaler: using MMX2 YV12->BGR24 Converter
SwScaler: 640x352 -> 652x352
VO: [xv] 640x492 => 652x492 Planar YV12
A: 113.1 V: 113.1 A-V:  0.006 ct:  0.021 2828/2828 10%  1%  5.5% 0 0
Exiting... (Quit)

Не скажу что я не удивлён, но трабл не в конфигах и, думается не в матрёшке... Нада думать. есть какие-нить соображения?

PS:
- У тебя я тоже вижу субтитры в UTF-8
- SMPlayer в портежах gentoo не нашел... да и ладно, я уже привык к консольному

Внутри матрёшки всегда уникод. Всё, что не было уникодом, при муксе конвертится в уникод.
А ./config&&make&&make install отменили? или это в Дженту неправославно? Get here. Программа у меня собираеться на раз, требует Qt 3.3.3+. Хотя, если ты привык к консольному, то я молча соглашусь.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Матрешка и субтитры

Сообщение sspphheerraa »

Arux писал(а):
26.07.2007 00:02
Глупое, конечно предложение, а если проигнорить ~./mplayer/config и все настройки дефолтом прогнать?
По ходу mplayer считает, что он прав в том, что рендерит сабы дважды и второй раз неправильно...

Не скажу что я не удивлён, но трабл не в конфигах и, думается не в матрёшке... Нада думать. есть какие-нить соображения?

Так, убрал ~./mplayer/config
Консольный проигрывает как и раньше

KPlayer тоже кергуду показывает, но уже "другую"

Да и вообще, субтитры у меня по-дефолту (русские) никак не отображаются корректно :( какую бы кодировку не подсовывать
Вижу версии у нас разные, но все равно странно - моя из стабильной ветви...


Добавлено:
Прописал в ~./mplayer/config
utf8=1

Далее скопировал в ~./mplayer/DejaVuSans.ttf и сделал
$ ln -s DejaVuSans.ttf subfont.ttf

Теперь картинка такая :laugh: :laugh:



зы К стати, сам фильм RevolutionOS про Linux и вообще про OpenSource, там Линус Торвальдс и другие отцы основатели рассказывают как все происходило и будет происходить в OpenSource.
Посмотри при случае ;)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Sspphheerraa
Спасибо сказали:
Arux
Сообщения: 24
ОС: GNU/Linux 2.6.17; Kubuntu 6.10

Re: Матрешка и субтитры

Сообщение Arux »

Наконец-то у меня появились инферненты.
Я тут думаю над твоим случаем, но пока не могу ничего придумать. Пока грешу на твою сборку mplayer'a. Дай пожалуйсмта вывод mkvinfo. А что по поводу субтитров говорят xine||gstreamer?
Фиг знает, товарищ майор, - собака след не берёт...
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Матрешка и субтитры

Сообщение sspphheerraa »

Arux писал(а):
29.07.2007 15:14
Наконец-то у меня появились инферненты.

это что такое?
Arux писал(а):
29.07.2007 15:14
Я тут думаю над твоим случаем, но пока не могу ничего придумать. Пока грешу на твою сборку mplayer'a. Дай пожалуйсмта вывод mkvinfo. А что по поводу субтитров говорят xine||gstreamer?
Фиг знает, товарищ майор, - собака след не берёт...

xine||gstreamer воспроизводят правильно, 1 субтитры (но настроек там минимум)
Если в ~./mplayer/config выключить ass, то воспроизводятся 1 субтитры (большие белые). Но эти менее гибки в настройках...
Вот если бы наоборот включить ass субтитры, а вот "эти" обычные отключить :)
Почему у тебя при включении ass в конфиге 2 экземпляр субтитров не появляется?

Вывод mkvinfo?

Код: Выделить всё

$ mkvinfo
Usage: mkvinfo [options] inname

 options:
  -g, --gui      Start the GUI (and open inname if it was given).
  inname         Use 'inname' as the source.
  -v, --verbose  Increase verbosity. See the man page for a detailed
                 description of what mkvinfo outputs.
  -c, --checksum Calculate and display checksums of frame contents.
  -s, --summary  Only show summaries of the contents, not each element.
  --output-charset <charset>
                 Output messages in this charset
  -r, -o, --redirect-output file.ext
                 Redirect all messages to this file.
  -h, --help     Show this help.
  -V, --version  Show version information.
$
Sspphheerraa
Спасибо сказали:
Arux
Сообщения: 24
ОС: GNU/Linux 2.6.17; Kubuntu 6.10

Re: Матрешка и субтитры

Сообщение Arux »

MAA писал(а):
29.07.2007 16:05
это что такое?

инфернеты - это мем.
Internets is serious business.
George Walker Bush


MAA писал(а):
29.07.2007 16:05
xine||gstreamer воспроизводят правильно, 1 субтитры (но настроек там минимум)
Если в ~./mplayer/config выключить ass, то воспроизводятся 1 субтитры (большие белые). Но эти менее гибки в настройках...
Вот если бы наоборот включить ass субтитры, а вот "эти" обычные отключить :)

Ну, к качестве танца с бубном предлагаю попробовать сравнить (по отдельности) действие переметра ass через конфиг и через командную строку

Код: Выделить всё

$ mplayer RevolutionOS.mkv -slang rus -ass


MAA писал(а):
29.07.2007 16:05
Почему у тебя при включении ass в конфиге 2 экземпляр субтитров не появляется?

Фиг знает, товарищ майор, - собака след не берёт...
Возможно даже проблема в версии mplayer'a. Но тогда единственный путь решить - это править код или... svn && ./configure && make && make install

MAA писал(а):
29.07.2007 16:05
Вывод mkvinfo?

Ну, вообще, я имел в виду вывод от

Код: Выделить всё

$ mkvinfo RevolutionOS.mkv
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Матрешка и субтитры

Сообщение sspphheerraa »

Arux писал(а):
01.08.2007 19:56
инфернеты - это

а, т.е. фильм появился? :)

Arux писал(а):
01.08.2007 19:56
Ну, к качестве танца с бубном предлагаю попробовать сравнить (по отдельности) действие переметра ass через конфиг и через командную строку

Код: Выделить всё

$ mplayer RevolutionOS.mkv -slang rus -ass

одинаково :(
Надо будет попробовать на кноппиксе...
Arux писал(а):
01.08.2007 19:56
Ну, вообще, я имел в виду вывод от

Код: Выделить всё

$ mkvinfo RevolutionOS.mkv

Вот:

Код: Выделить всё

$ mkvinfo RevolutionOS.mkv
+ EBML head
|+ Doc type: matroska
|+ Doc type version: 1
|+ Doc type read version: 1
+ Segment, size 728557460
|+ Seek head (subentries will be skipped)
|+ EbmlVoid (size: 4027)
|+ Segment information
| + Timecode scale: 1000000
| + Muxing application: libebml v0.7.7 + libmatroska v0.8.0
| + Writing application: mkvmerge v1.8.1 ('Little By Little') built on Jun  2 2007 14:57:13
| + Duration: 5104.104s (01:25:04.104000000)
| + Date: Wed Jul 25 11:58:35 2007 UTC
| + Segment UID: 0x37 0xd7 0xfe 0xeb 0x8f 0x5d 0x44 0x1b 0x01 0xfd 0x60 0x1b 0x4e 0xf2 0x62 0x00
|+ Segment tracks
| + A track
|  + Track number: 1
|  + Track UID: 1930683830
|  + Track type: video
|  + Enabled: 1
|  + Default flag: 1
|  + Forced flag: 0
|  + Lacing flag: 0
|  + MinCache: 1
|  + Timecode scale: 1.000000
|  + Max BlockAddition ID: 0
|  + Codec ID: V_MS/VFW/FOURCC
|  + Codec decode all: 1
|  + CodecPrivate, length 40 (FourCC: XVID, 0x44495658)
|  + Default duration: 41.708ms (23.976 fps for a video track)
|  + Language: und
|  + Name: Video
|  + Video track
|   + Pixel width: 640
|   + Pixel height: 272
|   + Interlaced: 0
|   + Display width: 640
|   + Display height: 272
| + A track
|  + Track number: 2
|  + Track UID: 3311921645
|  + Track type: audio
|  + Enabled: 1
|  + Default flag: 1
|  + Forced flag: 0
|  + Lacing flag: 1
|  + MinCache: 0
|  + Timecode scale: 1.000000
|  + Max BlockAddition ID: 0
|  + Codec ID: A_MPEG/L3
|  + Codec decode all: 1
|  + Default duration: 24.000ms (41.667 fps for a video track)
|  + Language: eng
|  + Name: English Audio Track
|  + Audio track
|   + Sampling frequency: 48000.000000
|   + Channels: 2
| + A track
|  + Track number: 3
|  + Track UID: 3704317153
|  + Track type: subtitles
|  + Enabled: 1
|  + Default flag: 1
|  + Forced flag: 0
|  + Lacing flag: 0
|  + MinCache: 0
|  + Timecode scale: 1.000000
|  + Max BlockAddition ID: 0
|  + Codec ID: S_TEXT/UTF8
|  + Codec decode all: 1
|  + Language: rus
|  + Name: Russian Subtitles
|+ EbmlVoid (size: 1024)
|+ Cluster
$
Sspphheerraa
Спасибо сказали:
Arux
Сообщения: 24
ОС: GNU/Linux 2.6.17; Kubuntu 6.10

Re: Матрешка и субтитры

Сообщение Arux »

Норматрон с матрёшкой. Она не виновата.
Это так работает mplayer. Кури в сторону сборки его из svn'ов.

MAA писал(а):
02.08.2007 13:22
а, т.е. фильм появился? :)

ты о чём?
Спасибо сказали: