An assembly is the packaging of individual media streams into a common container. There are 3 types of containers used for remixes: MKV, TS and M2TS. Based on the M2TS container, you can also make a full-fledged file structure of a Blu-ray disc.

Container (Video Container)

Video Stream

MPEG-2, H.264 / AVC (MPEG-4), VC-1

Audio Stream

AC3, DTS, DTS-HD MA, DTS-HD HR, Dolby TrueHD, LPCM

Subtitles (Presentation Graphics Stream)

SRT, PGS TS, MKV, M2TS

A container can also contain several streams of the same type. There are restrictions on the stream formats that can be included in any given container, and the containers themselves are perceived by different hardware with varying degrees of success. For example, the MKV container is the most omnivorous of all the three currently in use, but it itself is not accepted by any "iron" player. The TS container is better perceived by stationary equipment, but subtitles cannot be included in it at all - only as an external stream. M2TS is a standard container for Blu-ray discs, all three HD-video formats, all audio formats of interest to us, and subtitles in PGS graphic format can be included in it. Which container to use is a matter of personal preference.

So, we have subtitles in SRT format, audio, in AC3 and DTS format too. It remains to deal with the video. Three codecs are currently used in HD: MPEG-2, H.264 / AVC (MPEG-4), and VC-1 from Microsoft. In addition, there is a free open-source project x264 as part of commercial H.264 / AVC. This codec is mainly used for making rips.

Note: To connect subtitles, like external subtitles in Media Player Classic, you need the subtitle file to be named in the same way as movies is in the same folder. Then the player will load them automatically. You can enable them in the Navigate> Subtitle Language menu. For example:

00001.ts - movie 00001.srt - subtitles

There is a problem with VC-1 video captured from HD-DVD. For compatibility with various equipment, ie. "With the best of intentions", service information (pulldown flag) has been added to the video stream, due to which a stream with real parameters 1920х1080p and fps 23.976 can be perceived by the splitter as 1920х1080i and fps 29.97. During playback of such a file, intermittent

short-term "slowdowns". If the splitter takes information about the stream from the header, problems are guaranteed, if from the stream itself, everything will be OK.

For correct reproduction, this service information must be removed. This can be done using utilities xport and vc1conv... Programs run in the DOS command line, you can also use the graphical shell eac3to And More GUI... Utility xport allows you to extract elementary streans (ES) from a container, and vc1conv performs VC-1 flow correction. The quality of the video does not suffer.

Syntax for xport: xport movie.ts 1 1 1

(the second and third digits mean the numbers of the video and audio streams, respectively) Syntax on vc1conv: vc1conv videostream.mpv videostream-new.mpv.

Then you need to change the file extension to * .VC1.

The same flow correction operation can be performed directly in tsMuxeR and in eac3to, but in earlier versions of these programs this function did not work correctly, and in the latter it was not possible to check.

Build with tsMuxeR.

tsMuxeR allows you to pack content in the following formats:

1. TS - one * .ts file (subtitles are not supported).

2. M2TS - one file * .m2ts

3. Blu-ray structure - creates a Blu-ray file system with one m2ts file, one mpls and one clpi. The menu is (naturally) absent.

It is also possible to create AVCHD (not used for remixes). The format is designed for home-video. Has a structure similar to (but not identical) to Blu-ray. The main differences from Blu-ray:

1. DVD is used as a medium.

2. Video bitrate is limited to 18 Mbps.

3. Simplified menu system.

We launch the program. Out the window Input files drag and drop the necessary files with the mouse. If you need to glue several fragments into one, then drag the first one, click join, point to the second, etc. In the window Tracks information about available streams is displayed. Buttons Up, Down and Remove you can, respectively, change the order or remove streams from the list. You can also exclude a stream from processing by unchecking the checkbox. Highlighting the stream in the window Tracks,

you can view and change its parameters displayed in the menu General track options... For example, for an audio track, you can specify the audio language and set the delay.

For TS files, that's it. We put a daw on TS muxing, specify the save path, file name and click Start muxing... In 10-15 minutes everything will be ready.

When creating Blu-ray structure from Blu-ray disc, it is better to drag and drop to window Input files not a m2ts file with the main movie, but its playlist (mpls file). You can calculate it by brute force or using eac3to by pointing it to the BDMV folder:

This will import into tsMuxeR all m2ts files of the main movie (if there are several) in the desired order, as well as import chapter information.


We remove unnecessary audio tracks and subtitles, substitute the Russian ones, change the order, specify the parameters:

Note: Chapter information is saved only when creating Blu-ray Disk.

We go to the subtitle section. Here we can select the font options and the location of the subtitles on the screen. The first time you will have to experiment, having received the desired result, remember the parameters and will use them in the future for other films.

On the menu Output put a daw on Blu-ray disk or M2TS Muxing, specify the save path (and the file name, in the case of m2ts) and click Start Muxing.

Depending on the selection in the menu Output, we get either 1 m2ts file or Blu-ray structure.

Note: Since I do not use this program all the time and am not a fan of the MKV container, the instructions are very superficial.

and is presented here solely for completeness. If someone writes and sends me a more detailed version reflecting all the advantages of the format, I will be happy to include it

in your instructions.

P.S. Found a very nice description on the rutracker.org forum:

http://rutracker.org/forum/viewtopic.php?t=619851 under Programs> mkvtoolnix (MKV). However, the whole topic deserves an in-depth study.

Build with MKVMerge GUI.

The program allows you to pack content in an MKV container and is a graphical interface for a set of tools MKVToolnix... A detailed description of the program can be found here: http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge.html. The method of working with this program is similar to working with tsMuxeR so let's look at the differences.

Unlike tsMuxeR, does not accept TS and M2TS as input - only MKV (from the containers of interest) or streams extracted from the container. Besides SRT, MKVMerge works

with subtitles in VobSub format. The MKV container supports external links (attachments). Let's consider the program interface.

Source materials are loaded into the window Input files, information about streams is in the menu Tracks... On the menu General track options there are several new, and most importantly useful options:

1. In the field Track name you can specify the name of the stream.

2. In the field Defaul track flag you can specify that the track will be included by default (value "yes").

3. In the field Forced track flag you can set the forced inclusion of the track (value "yes").

On the menu Format specific options, in field Delay you can set a delay, and in the field Stretch by, theoretically, you can set the stretch / compression, but you cannot use this option - the result will be depressing.

In field Output filename select the save path and file name, click Start muxing.

MKV file can also be made with eac3to... Examples will be considered in the translation of the official description of the program.

Note: translation of the official instructions. The original is here: http://en.wikibooks.org/wiki/Eac3to/How_to_Use

You will get the most out of watching a movie in its original language. And due to the fact that you often do not know the original language or know poorly, there is a need for subtitles. Subtitles are also a good opportunity to learn the language.

Subtitles can be applied at the time of video encoding or at the time of its playback (realtime). In the first case, the subtitles are embedded, in the second - external. External subtitles have a number of advantages over embedded subtitles. They are always clear and easy to read regardless of the video quality and decompressor settings. And of course the main advantage is that they can be turned off.

Formats

There are several formats for presenting external subtitles. Each format has its own advantages and disadvantages. The most common are srt, ssa, smi. srt is one of the simplest and most intuitive; ssa - the most sophisticated; and smi is supported by Microsoft.

The subtitle file contains some structure, which contains information about when and what text should be superimposed on the image.

The display time is determined either by the start and end frame (framebased subtitres) or by the start time and end time of the phrase display (timebased subtitres). A phrase is one or more test lines. More complex formats determine the color and position of the text, its size, the effects used. Sometimes the subtitle file contains<шапку>- the title in which it is written for which film these subtitles are intended, who they were made by and other information.

Where subtitles come from:

  • DVD The DVD company usually includes subtitles for the released movie in one or more languages. It is not difficult to rip these subtitles from DVD. It is very convenient to use the SubRip program for this. These subtitles are usually very well timed and translated correctly.
  • Fansub Until a certain anime is officially released in America, its translation can be made by fans - fansubers. Usually these subtitles are in SSA format, since they are timed in SubStation Alpha. They are primarily intended for output to cassette using the GenLoc device. These subtitles are often less translated than the official subtitles seen on DVD and are often less timed. But on the other hand, all the advantages of the SSA format are used to change the size and color of the font and the position of the superimposed subtitles. Since these subtitles are made by fans for fans, for example, nominal suffixes are not translated into them, which should be clear to a fan anyway.

Here is a more detailed description of the most common subtitle formats.

SubRipper (* .srt)

The files have the srt extension. It is the native subtitle format of SubRip (by Brain). It is the most popular DVD subtitle ripper software. The format itself is simple and clear, synchronization with video based on time with millisecond precision. A very common format. Srt files are very convenient to edit - it is better to do translation in srt files. The extended format allows you to change some of the font parameters (style, color) and the position of the subtitles on the screen, but few people support it. Hats - no. Subtitles are separated from each other by a blank line; the end of the file is marked with a double line feed (critical for some players and converters).

Example file:

Quote:

1
00:00:03,600 --> 00:00:07,630
0-3-3, 0-3-5, 0-3-8,
No contact.

2
00:00:07,700 --> 00:00:09,100
Got you.
...

222
00:24:50,220 --> 00:24:53,880
Now they will act
cocky isn't it

a subtitle file is a collection of phrases in the following format.

N
HH: MM: SS: MLS -> hh: mm: ss: mls
First line of the phrase
Second line of the phrase

where
N - phrase number
HH: MM: SS: MLS - time of the beginning of the phase display in hours minutes, seconds and milliseconds (mls)
hh: mm: ss: ms - time of the beginning of the phase display in hours minutes, seconds and milliseconds (ms)

there is a space between the time and the arrow.

SAMI (* .smi)

Files with the * .smi extension are a subtitle format from Microsoft called SAMI (Synchronized Accessible Media Interchange). ... This format is well documented and has a complex, extensible structure. In fact, SAMI is a subset of SGML, just like HTML, and therefore is very similar to it. The creation of this markup language is the result of the work of The Caption Center at WGBH to bring subtitling to television for the deaf, hard of hearing, and foreign language learners. The standard supports changing the size, color, typeface and style of the font, as well as changing the position on the screen. Moreover, it supports styles. Styling syntax similar to W3C CSS. Time synchronization. The main advantage of this format is that it is supported by Microsoft and therefore it can be played without any problems on a regular Windows Media Player (ver> = 5). It should also be mentioned that sometimes the smi extension has SMIL format files (these are subtitles for RealPlayer "but) they are not should be confused with SAMI subtitles. Correct extension for SMIL files is * .smil

Here is an example of a typical SAMI file:

Quote:



SubConv created subtitle






0-3-3, 0-3-5, 0-3-8,
No contact.

Got you.


Now they will act
cocky isn't it


the subtitle file consists of two parts, enclosed in a common tag

- title

- body

the title, in turn, includes sections and<STYLE>. В первом задается заглавие файла со скриптами, а во втором задаются стили. Формат позволяет указывать как стили по умолчанию так и пользовательские, которые зритель может менять в процессе просмотра (такая возможность поддерживается например в Windows Media Player). Также в заголовке с помощью тега <SAMIParam> можно давать любую сопутствующую информацию, например указать переводчика, название оригинала и т.д.</p> <p>Тело представляет из себя таблицу и состоит из последовательности фраз, заключенных в тег <P>Параграф. Позволяются следующие форматирующие теги:</p> <ul><li>Bold text: <strong>Bold</strong> text</li> <li>Italic text: <em>Italic</em> text</li> <li>Bold Italic text: <em><strong>Bold Italic</strong></em> text</li> <li>Strikethrough text: <s>Strikethrough</s> text</li> <li>Subscript text: <sub>Subscript</sub> text</li> <li>Superscript text: <sup>Superscript</sup> text</li> <li>Underline text: <u>Underline</u> text</li> </ul><p>Для синхронизации по времени используется специальный тег <SYNC Start=time> где time - это время начала показа фразы в микросекундах. Для того чтобы убрать фразу с экрана выводится пустая фраза () между тегами синхронизации может находиться сколько угодно фраз с различными значениями ID и CLASS это позволяет хранить в одном файле субтитры на нескольких языках и стилях (пользователь может сменить язык и стиль во время просмотра), с помощью стиля Source можно задавать имя произносящего данную фразу.</p> <h3><span>SubViewer (*.sub) v1 & v2 (Submagic) </span></h3> <p>Формат некогда был довольно популярен, но теперь в связи с распространением других форматов, обладающих большими преимуществами, стал абсолютно неактуален. Изначально этот формат был предназначен для проигрывания в программе Submagic. Это программа для просмотра субтитров, работающая отдельно от плеера и требующая ручной синхронизации. Так можно было просматривать с субтитрами видеокассеты, если подключить видеомагнитофон к ТВ тюнеру. В последствии этот формат научились поддерживать многие плееры. Формат очень похож на *.srt. Отличается наличием шапки в которой можно указать различную информацию о субтитрах: название, кто перевел, с чего сделан перевод и т.д. Также в шапке указываются параметры шрифта. Эти параметры общие для всего скрипта. Обычно плееры, поддерживающие это формат субтитров плюют на эти стилевые указания. Синхронизация по времени.</p> <p>Формат *.sub состоит из двух не совместимых между собой версий: v1 и v2,</p> <p>вот пример скрипта версии 2.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body"> Пожалуйста спаси мою землю<br> Silvan Elf<br> Please Save My Earth.<br> 1<br> <br> 1<br> Перевод с английского.<br> <br> &HFFFFFF,no,18,Arial<br> 00:00:19.49,00:00:21.55<br> Хочу домой.<br> 00:00:22.66,00:00:25.75<br> Я раньше никогда не была в месте <br class="bb-br">Где воздух такой...<br> 00:00:26.66,00:00:28.13<br> грязный.<br> 00:59:07.21,00:59:08.84 Я хочу поговорить с тобой. 00:59:08.91,00:59:10.11 Так ты умеешь летать, верно? </blockquote> <p>структура очень мало отличается от структуры *.srt формата и потому подробно не рассматривается.</p> <h3>MicroDVD (*.mdv,*.sub) </h3> <p>Это собственный формат плеера MicroDVD player. Он не имеет фиксированного расширения, обычно это txt или sub. В связи с тем, что MicroDVD Player долгое время оставался вне конкуренции среди плееров с поддержкой субтитров, а также благодаря подробной документации, поддержке изменяемого стиля, размера и положения шрифта, этот формат сыскал уважение среди пользователей. Под него успели написать множество утилит, которые делают в основном то же самое: конвертят в него из всего, что попало и меняют FPS. Последнее особенно актуально в связи с тем, что этот формат синхронизирован по номеру кадра, и поэтому если у вас окажется исходник видео с другой частотой кадров (например при Inverse TeleCine 30fps->24fps) то придется пересчитывать кадры начала и конца каждой фразы файла субтитров. Формат весьма компактен и интуитивно понятен. За основу видимо взят формат SubMagic v1 с (он был кадровой синхронизацией).</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body">Хочу домой.<br> Я раньше никогда не была в месте |Где воздух такой...<br> грязный.<br> Знаешь Алиса...<br> Давным-давно,|землей правили динозавры. <p>88680}Я хочу поговорить с тобой. Так ты умеешь летать, верно?</p> </blockquote> <p>формат не предусматривает никакой шапки и является одним из самых компактных. Он слегка проигрывает в читабельности srt в связи с тем что переводы строки здесь обозначены как "|"</p> <p>формат расширяется посредством следующих контрольных кодов:</p> <p>{c:$bbggrr} цвет шрифта bb gg и rr это шестнадцатеричные числа в RGB представлении цвета, т.е. как в HTML.</p> <p>пример {}{c:$0000FF}- But why?|{c:$00FFFF}- Because this movie|has naughty language!<br> если в контрольном коде маленькая c то код действует до конца строки, если большая - на всю фразу.</p> <p>{f:fontname} выбор гарнитуры шрифта. заглавная и строчная буквы действуют аналогично выбору цвета.</p> <p>{s:size} выбирает размер шрифта. Заглавная и строчная буквы действуют аналогично выбору цвета.</p> <p>{H:charset} выбор кодировки: русская греческая и т.д.<br> Внимание! действительно только в разделе <br> {y:style} выбор стиля (bold, italic, underline) можно комбинировать, например bi жирный курсив. заглавная и строчная буквы действуют аналогично выбору цвета.</p> <p>{P:position} показывать субтитры сверху видео окна или снизу. действует только на всю фразу (только заглавная)</p> <p>{o:x-coordinate,y-coordinate}поместить текст в произвольно положение экрана с координатами x,y относительно правого верхнего угла.</p> <p>можно указать значения по умолчанию для всего скрипта субтитров с помощью раздела {}<Control Codes></p> <p>на месте <Control Codes> можно поместить любые из контрольных кодов(заглавные буквы).</p> <p>пример {}{F:Arial}{S:18}{Y:b,i}{P:1}</p> <p>контрольный код H можно применять только в этом разделе!</p> <h3>SubStation Altha (*.ssa) v.4 </h3> <p>Формат *.ssa это рабочий файл субтитров программы SubStation Altha. Это программа для подготовки и таймирования субтитров, а также наложения их на аналоговый носитель (VHS или SVHS) с помощью устройства называемого GenLock. Среди непрофессионалов это самая популярная и богатая возможностями программа для титрования. Список ее возможностей может послужить темой для отдельной статьи. Также богат и сам формат субтитров. Здесь полностью поддерживается работа со всеми параметрами шрифта (цвет, размер, гарнитура и т.д.), размещение текста в любом месте экрана, комментарии. Множество полей определяет параметры каждой фразы, например специальное поле для определения произносящего данную фразу. Этот формат является фактически стандартом де-факто в среде фэнсаберов (небольшая доля пользуется амиговским Js но основная масса использует Windows и SubStation Alpha). Все это делает формат SSA преобладающим в среде анимешников. До недавнего времени не было плееров, с возможностью динамически накладывать ssa субтитры на видео, и единственным способом посмотреть их было вставить в ssa событие проигрывания фрагмента самого фильма. При этом субтитры накладывались на видео в самом SubStation Altha. При этом отсутствовала возможность растянуть видео на полный экран. Теперь ситуация поправляется: его хорошо поддерживает Crystal Player. Также поддерживает этот формат MicroDVDPlayer ver 1.2 (без изменения параметров шрифтов, положения текста и эффектов) и DVDSubtitler.</p> <p>Как альтернатива можно просматривать цифровое видео с субтитрами в этом формате если жестко наложить эти субтитры на видео с помощью фильтра subtitler (by Avery Lee) для VirtualDub. При этом работа со шрифтами поддерживается.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body"> <p><br> ; This is a Sub Station Alpha v4 script.<br> ; For Sub Station Alpha info and downloads,<br> ; go to http://www.eswat.demon.co.uk/ <br> ; or email kotus@eswat.demon.co.uk <br> Title: Di Gi Charat Volume 1<br> Original Script: Zeruel<br> Script Updated By: Anime Jonetsu<br> ScriptType: v4.00<br> Collisions: Normal<br> PlayResY: 600<br> PlayDepth: 0<br> Wav: 0, 179746,C:Scriptsdigicharatdigicharat1.wav<br> Timer: 100.0000</p> <p><br> Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding<br> Style: Default,Arial,28,16777215,16777215,16777215,13305607,-1,0,1,4,1,2,30,30,30,0,0<br> Style: Screentext,Arial,26,16777215,16777215,16777215,10750853,-1,0,1,3,1,2,30,30,30,0,0<br> Style: alt dialog,Arial,26,16777215,16777215,16777215,32768,-1,0,1,3,1,2,30,30,30,0,0<br> Style: credits,Arial,22,16777215,16777215,16777215,5701806,-1,0,1,3,1,2,30,30,30,0,0<br> Style: digi,Arial,28,16777215,16777215,16777215,11493729,-1,0,1,4,1,2,30,30,30,0,0<br> Style: scary,Arial,28,255,16777215,16777215,3092271,-1,0,1,4,1,2,30,30,30,0,0<br> Style: song,Arial,26,16777215,16777215,16777215,33023,-1,0,1,3,1,2,30,30,30,0,0</p> <p><br> Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text<br> Comment: Marked=0,0:00:03.50,0:00:05.50,*Default,Comment,0000,0000,0000,Synch Point: Chapter 1, 0:00:00<br> Dialogue: Marked=0,0:00:06.50,0:00:12.50,Screentext,Text,0187,0181,0529,NOT FOR SALE OR RENT<br> Dialogue: Marked=0,0:00:18.14,0:00:20.12,Screentext,Text,0122,0411,0313,OP Theme:nOnly 1 No.1n(Okui Masami)<br> Dialogue: Marked=0,0:00:06.32,0:00:13.05,song,romaji-song,0131,0128,0469,sekai de ichiban kagayaku made<br> Dialogue: Marked=0,0:00:06.32,0:00:13.05,digi,song-e,0075,0050,0001,Until I shine the brightest in the world</p> </blockquote> <p>Скрипт состоит из заголовка, описания стилей и тела</p> <p>В заголовке есть стандартная часть, которая сообщает что это за файл и версию скрипта, а также отсылает к сайту SubSttaion Altha.</p> <p>Далее идут несколько полей обозначающих автора перевода, источник откуда сделан перевод, точку синхронизации (при выводе на аналоговый носитель синхронизация производится вручную), разрешение с которым работал редактор при расположении элементов по экрану и некоторые другие.</p> <p>В разделе стилей идет детально описание всех используемых в скрипте стилей. указывается размер, гарнитура, стиль и цвет шрифта, положение (в виде отступов справа, слева, сверху и снизу), а также кодировку.</p> <p>Для каждой из фраз отдельно можно указать время начала и конца показа этой фразы, ее стиль, название (используется как поля для указание имени говорившего) и положения фразы на экране. Далее идет сам текст фразы, разделение на строки как в языке C с помощью комбинации "n" или "N".</p> <p>Интересно работаем механизм коллизий, т.е. перекрывания по времени отдельных фраз. Например когда в кадре кто-то говорит, а за кадром слышен голос диктора из телевизора. при этом на экране показываются обе строки, только более поздняя показывается ниже и другим цветом. Для этого задается не один а 3 цвета шрифта, например для случая двукратной коллизии (встречается крайне редко).</p> <p>Кроме того формат еще позволяет включать в себе с помощью UUEncoding шрифты и картинки, используемые в скрипте. Это делает *.ssa самодостаточным и независимым от машины, на которой накладывается, но поддерживается это только в SubStation Alpha.</p> <h3>JACOsub (*.js) </h3> <p>Файлы с расширением *.js - рабочие файлы программы JACOSub. Это программа для титрования фильмов, такая же как и SubStation Altha только для компьютера Amigo. В свое время этот стандарт был довольно популярен, сейчас используется редко, но не смотря на это все, еще можно встретить в Интернет скрипты в этом формате. Возможности JACOSub близки к SSA, но многие вещи очень Amigo-зависимы. Синхронизация с видео по времени.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body"># JACOsub script file<br> # Converted by Multi-script Converter VERSION 1.24<br> # Title: Aa! Megami-sama Gekijouban Subbing Script<br> # Original Script: Converted by Shadowrunner<br> # Timing/Script: Converted by Shadowrunner<br> # Editing: Converted by Shadowrunner <p># This is a free fan subtitle. You may use this script only in accordance<br> # with U.S. copyright regulations. This means if the title has been licensed<br> # for release in the U.S., you may ONLY use this script for PERSONAL viewing<br> # and MAY NOT distribute material using this script or translation. Neither<br> # Shadowrunner nor the converter that created this file will be held<br> # accountable for anyone"s use or abuse of this script. It is intended for<br> # personal private use only and the actions of third parties are their<br> # OWN responsibility.</p> <p># Date: 08-10-2001</p> <p>#TIMERES 100<br> #SHIFT 0</p> <p>0:00:01.00 0:00:04.00 D0 {} Oh! My Goddess Movie v1.9 Fansub<br> 0:00:05.00 0:00:08.00 D0 {} Nekomi Kodai Fansubbing<br> 0:00:09.00 0:00:12.00 D0 {} The accuracy of this sub is in no way guaranteed.<br> 0:00:13.00 0:00:16.00 D0 {} Timed, Edited, Translated by Edward Chang Retimed for the DVD release by Ifruita</p> </blockquote> <p>Как видно из примера файл субтитров состоит из заголовка, в котором указывается название, кто перевел, кто оттаймировал, кто редактор данного скрипта, затем стандартное предупреждение что этот файл не предназначен для коммерческого использования и др. подобной информации. После заголовка идет тело скрипта, состоящее из последовательности фраз с указание времени начала и конца показа каждой фразы. Можно указывать кто произносит тут или иную фразу.</p> <p>Real Text&SMIL (*.smil,*.rt,*.smi)</p> <p>Real Player также может показывать субтитры, для их включения нужны файлы real text и SMIL. SMIL (Synchronized Multimedia Integration Language) формат представления синхронизированного с медиафайлами текста, разработанного W3C консорциумом.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body"><smil><br> <head><br> <meta name="title" content="Dragonball Z Episode 192" /><br> <meta name="author" content="Bardock" /><br> <meta name="copyright" content="(c) 1999" /><br> <layout><br> <root-layout width="320" height="270" /><br> <region id="video_region" width="320" height="240" left="0" top="0" /><br> <region id="text_region" width="320" height="30" left="0" top="240" /><br> </layout><br> </head><br> <body><br> <par> <textstream src="http://www..rt" region="text_region" fill="freeze" /><br> <video src="http://www..rm" region="video_region" fill="freeze" /><br> </par><br> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body><br> </smil> </blockquote> <p>этот файл представляет собой шапку для одно или нескольких *.rt (real text) файлов которые и содержат собственно сами субтитры.</p> <p>а вот пример упомянутого в SMIL файла 192-raw-300k.rt</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body"><window type="generic"<br> duration="19:44"<br> width="320"<br> height="60"><br> <time begin="1"/><font color="blue">Episode 192: "I"ll Be up there. Farewell with a Smile"</font><br/><br> <time begin="13"/><clear/>Yamcha: He did it! Way to go! you destroyed Cell.<br/><br> <time begin="35"/><clear/>Krillin: Amazing Gohan! Hey, You did it!<br/><br> <time begin="42"/><clear/>Yamcha: (something on the idea of "great, you did it! You killed him!"<br/><br> <time begin="48"/><clear/>Krillin: We better fly over to heaven to get some senzu for gohan<br/><br> <time begin="1:00"/><clear/>Yamcha: Alright then.. let"s go<br/><br> <time begin="1:04"/><clear/>Gohan: Thanks<br/><br> </window> </blockquote> <p>видно что каждый из *.rt файлов состоит из маленького заголовка, в котором указывается техническая информация по данному скрипту, и набора фраз, каждая из которых начинается с тега <time> с указанием времени начала показа<br> фразы с точностью до секунды. далее сама фраза. В тексте фразы можно управлять шрифтом и текстом так же как это делается в HTML или SAMI с помощью тегов <font>,<br> и др. Предыдущая фраза убирается с экрана с помощью тега <clear/></p> <h3>Sasami2k script (*.s2k) </h3> <p>Это внутренний формат представления субтитров плеера Sasami2k. После того как Sasami2k обнаружит рядом с файлом фильма файл субтитров *.smi с тем же именем, он автоматически запустит перекодировщик - Sasami translator. Затем происходит преобразование, детали которого пока неясны, так как перекодировщик еще не переведен с корейского. Ясно лишь, что после перекодирования сохраняется информация о стилях и положении текста, причем положение и размер шрифта масштабируется в соответствии с разрешением фильма. Далее в плеере можно изменять положение размер и другие параметры субтитров прямо на лету и в конце сохранить скрипт субтитров со всеми внесенными изменениями в файл *.s2k.</p> <p>Формат очень громоздок, трудночитаем, имеет весьма сложную структуру и, скорее всего, не будет поддерживаться ни одним плеером, кроме Sasami2k.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body">// translated by Sami2Sasami 1.0.7.300<br> // contact: nuclei@shinbiro.com <br> ;Set.Slot=1<br> ;Set.Time.Delay=15000<br> ;Set.Alpha.End=256<br> ;Set.Alpha.Start=256<br> ;Set.Alpha.Step=-300<br> ;Set.Font.Bold=0<br> ;Set.Font.Color=#EEF4FB<br> ;Set.Font.Outline.Color=#00101010<br> ;Set.Font.Outline2.Color=#01101010<br> ;Set.Font.Size=9<br> ;Set.Font.Face=№ЩЕБ<br> ;Buffer.Push=1 <p>;Buffer.Pop=1<br> ;Set.Time.Start=18352<br> ;Set.Start.Position.x=117<br> ;Set.End.Position.x=117<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203<br> ;Set.Start.Position.x=117<br> ;Set.End.Position.x=117<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203</p> <p>;(ї┐°бчК)<br> ;Set.Start.Position.x=164<br> ;Set.End.Position.x=164<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203<br> ;Set.Start.Position.x=164<br> ;Set.End.Position.x=164<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203<br> Long, long ago,<br> ;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=221<br> ;Set.End.Position.y=221<br> ;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=221<br> ;Set.End.Position.y=221</p> <p>Ihrie! Hey, lhrie!<br> ;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203<br> ;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=203<br> ;Set.End.Position.y=203</p> <p>;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=221<br> ;Set.End.Position.y=221<br> ;Set.Start.Position.x=160<br> ;Set.End.Position.x=160<br> ;Set.Start.Position.y=221<br> ;Set.End.Position.y=221<br> What is it, Fam?</p> </blockquote> <p>здесь видно, что это больше похоже на язык программирования чем на скрипт субтитров. например общие для всех фраз параметры вносятся в стек и вынимаются перед каждой фразой. Частенько каждое слово обрамляется полным набором параметров, которые к тому же часто дублируют друг друга.</p> <p>конвертировать субтитры в этот формат можно только конвертором от Sasami2k и просмотреть можно только в плеере Sasami2k.</p> <h3>QTtext (*.txt) </h3> <p>Для представления субтитров в QuickTime плеере используется формат QTtext. Это очень кривой и редкий формат. Субтитры в таком формате можно создать (т.е. оттаймировать) с помощью программы Magpie.</p> <p>Вот пример субтитров в данном формате.</p> <p><b>Цитата: </b></p><blockquote class="bb-quote-body">{QTtext}{font: Arial}{justify: center}{size: 12}{backcolor:0, 0, 0}<br> {timescale: 100}{width: 439}{height: 0} <p><br> {justify:center}README.TXT for MAGpie<br> {justify:center}Please read this entire document before installing MAGpie.<br> {justify:center}*****************<br> MAGpie 1.0<br> *****************00:00:15.99]<br> {justify:center}-- SYSTEM REQUIREMENTS<br> {justify:center}1. Windows95/98<br> {justify:center}2. Microsoft Internet Explorer 4 or higher (http://www.microsoft.com)</p> </blockquote> <p>Файл состоит из маленького заголовка с указанием общих для всего скрипта технических параметров (гарнитура, размер и цвет шрифта; размеры изображения и т.д.) далее идет последовательность фраз, предваряемых временем начала показа в квадратных скобках. Время указывается с точностью до микросекунды. Перевод строки в тексте фразы передается обычным переводом строки в файле скрипта (также как и в srt формате).</p> <p>субтитры в данном формате проиграются только QuickTime player"ом.</p> <h3>TMPlayer subtritres (*.sub) </h3> <p>Внутренний формат плеера TMPlayer, который широко распространен в Польше, и, похоже, только там. Встретить можно очень редко, но DVDSubtitler его все же поддерживает.</p> <p>конверторов в этот формат я не нашел потому примера файла нет.</p> <p>Такого формата субтитров не существует. *.txt это PlainText, а не субтитры. Но иногда всё же можно встретить файлы субтитров с этим расширением. Как правило это субтитры формата MicroDVD или SubViewer и должны иметь расширение sub, но встречаются и MPL субтитры (расширение mpl).</p> <p><i>What is the easiest way to <b>convert PGS to SRT subtitles with Subtitle Converter tool </b> on Windows or Mac? I will refer to a problem to tell you how to convert PGS to SRT subtitles with SupRip, BDSup2Sub or ByteCopy. </i></p> <h2>1. What’s SupRip? </h2> <p> (not to be confused with SubRip) is a program that OCR’s Blu-ray and HD-DVD formatted SUP files (such as those exported by eac3to), and can then export SRT formatted subtitle files that can be muxed into MKV or other containers, or read as external subtitles by compatible players. It allows you to rip DVD subtitles with their timing as a text file. It converts vobsub(sub and idx) to srt text subtitles (<b><b>vobsub to srt </b> / <b>sub to srt </b> / <b>subtosrt </b> / <b>sub2srt </b> </b>) at ease. Yet the program can do more for you. In fact it is capable of converting Blu-ray .sup subtitles to .srt as well with OCR option. Below is some info about the Subtitle Converter – SubRip <b>Pros: </b></p> <ul><li>Rips DVD Subs, Image Subs, PNG Subs, and HARD-CODED SUBS!</li> <li>Learns well when training.</li> <li>Can be modified (using semi-source) by knowledgeable user to do non-Latin text.</li> </ul><ul><li>Hard to extend to non-latin text by average user</li> <li>OCR has difficulty reading the odd Sub file now and then. Indispensable tool for foreign language films.</li> <li>Slower than some rippers.</li> </ul><p><b>Compatible OS: </b> Windows XP, 2000, Vista (Windows ONLY)</p> <h2><span>2. What is PGS and SRT subtitles? </span></h2> <p> – The .sup file extension stands for subtitle bitmap image extracted from a Blu-ray movie; it contains subtitle text graphics that are displayed during movie playback. The .sup subtitles are encoded with PGS codec, and sometimes known as PGS subtitles. Blu-ray PGS subtitles is not so widely supported by HD media players as DVD subtitles and usually need to be converted to more common subtitle format like SRT, SSA, IDX, ASS, etc. When a Blu-ray is ripped into .m2ts streams , the .sup subtitles can be extracted by demuxing the M2TS using tsMuxer. – The .srt is primarily associated to DivX, DVD and some other video formats (e.g. MKV) as external subtitle format. SRT files are text files used in video playback. Therefore, they do not contain any video data, but they include the time each subtitle should be displayed followed by the text of the subtitle.</p> <ul><li>Read More: </li> </ul><h2><span>3. SupRip Tutorial – Converting PGS .sup subtitles to .srt using SupRip </span></h2> <p>SupRip v1.16 Download (Windows ONLY, Mac users you can have a try with this app if you’re ripping Blu-ray to Mac, which lets you convert Blu-ray .sup subtitles straightly from Blu-ray Disc) Step 1. Start SupRip, load the SUP file with the “Open” button. <br><img src='https://i0.wp.com/best-tablet-converter.com/wp-content/uploads/2014/09/suprip.jpg' width="100%" loading=lazy loading=lazy> Step 2. Click “Auto-OCR” to automatically scan the whole file and leave any unknown characters alone. Step 3. Go to the SRT tab. <br><img src='https://i1.wp.com/best-tablet-converter.com/wp-content/uploads/2014/09/srt-tab.jpg' width="100%" loading=lazy loading=lazy> Step 4. Review the subtitles and statistics. Change some options there if you want. <br><img src='https://i1.wp.com/best-tablet-converter.com/wp-content/uploads/2014/09/subtitles-and-statistics.jpg' width="100%" loading=lazy loading=lazy> Step 5. Save the SRT file with the “Save” button. <br><img src='https://i1.wp.com/best-tablet-converter.com/wp-content/uploads/2014/09/save-srt-file.jpg' width="100%" loading=lazy loading=lazy><b>How to name multiple srt files so that the language shows to select: </b> 1. name the subtitles exactly as the video stream. E.g. 00033.m2ts-> 00033.srt 2. give an id to subtitles with different languages. E.g. name English subtitles xxx.en.srt and German subtitles xxx.de.srt <br><img src='https://i1.wp.com/best-tablet-converter.com/wp-content/uploads/2014/09/name-multiple-srt-files.jpg' width="100%" loading=lazy loading=lazy><b>What’s annoying </b> – there are lots of spelling mistakes and indistinguishable characters when Auto-OCR is used, and you have to proof and correct them one by one.</p> <p>Не нашли нужных субтитров в Сети? Не беда: их можно «вытащить» с диска DVD Video или Blu-ray. Но задействовать такие подстрочники в медиаконтейнерах невозможно. Поговорим сегодня о том, как сделать их совместимыми с большинством видеоформатов.<br><br> Сначала опишу задачу. Многие синефилы предпочитают смотреть фильмы на языке оригинала с субтитрами, даже если есть перевод. Причин тому несколько, но их обсуждение выходит за рамки статьи (скажу лишь, что я сам часто так делаю). Также для наших читателей не является секретом, что оптические носители постепенно уходят в прошлое. Те, у кого есть домашний медиасервер, или уже переводят свою киноколлекцию в бездисковый формат, или, по крайней мере, начали задумываться об этом. Чаще всего для домашнего хранилища используются файлы MKV.</p> <blockquote><p>Извлечение субтитров при помощи HD-DVD/Blu-Ray Stream Extractor. Можно вытащить из контейнера все потоки</p> </blockquote> <p>Для их создания есть много инструментов – например, HandBrake (handbrake.fr), который я недавно описывал в статье «Всеядный универсал» (см. UPgrade #15-16 (570-571)). Единственная действительно серьезная проблема, с которой сталкиваются те, кто самостоятельно делает рипы, – это добывание субтитров. Дело в том, что в DVD Video и Blu-ray обычно применяются т. н. пререндеренные субтитры – они представляют собой уже готовую картинку, которая просто накладывается на кадр (подробнее о типах подстрочников: ru.wikipedia.org/wiki/Субтитры).</p> <p>А вот в контейнеры Matroska можно «вшить» только текстовые (вообще-то есть способ поместить в файлы MKV и субтитры, «выдранные» с оптического диска, но делать это крайне не рекомендуется из-за проблем совместимости – многие плееры их просто не увидят). С другой стороны, поиск в интернете субтитров в текстовом виде (SRT / SMI) далеко не всегда дает нужный результат, особенно для изданий вроде «расширенная режиссерская версия» или, скажем так, не слишком популярных у обычного потребителя кинопродукции фильмов. Так что надо каким-то образом вытащить подстрочник с диска, перевести его в нужный формат, а потом скормить конвертеру.</p> <p><img src='https://i2.wp.com/upweek.ru/wp-content/uploads/2012/06/Subtitles_Pic-3.jpg' width="100%" loading=lazy loading=lazy></p> <p>На неискушенный взгляд задача сводится к обычному распознаванию текста. И действительно, если вы забьете в строку поиска Google фразу «FineReader Blu-ray», в первой же пятерке результатов обнаружится ссылка на достаточно подробную инструкцию на русском о том, как это сделать. Но, во-первых, придется привлекать коммерческое ПО, а во-вторых, процесс получается достаточно трудоемким. В общем, не наш выбор: минимизируем телодвижения и обойдемся бесплатным софтом.</p> <p>Сначала эти самые пререндеренные субтитры надо как-то получить. Конкретный способ зависит от исходного формата. Скажу лишь, что в любом случае потребуется копия диска с фильмом на винчестере. Но поскольку взлом защиты – противоправное действие, то от описания оного придется воздержаться. Думаю, любой желающий без труда найдет мануал в Сети.</p> <p>В случае с Blu-ray берем консольную утилиту eac3to (madshi.net/eac3to.zip). Можно, кстати, «прикрутить» к ней какую-нибудь графическую оболочку, коих существует довольно много. Лично мне приглянулась HD-DVD/Blu-Ray Stream Extractor (code.google.com/p/hdbrstreamextractor), которую я и рекомендую. Всего-то и нужно распаковать полученный архив в ту же директорию, где проживает eac3to, а затем запустить HdBrStreamExtractor.exe. Теперь следует нажать кнопку правее поля Input (всплывающая подсказка Select Input File(s)), выбрать самый объемный в папке STREAM файл с расширением *.m2ts, а затем указать директорию назначения в поле Output.</p> <p><img src='https://i0.wp.com/upweek.ru/wp-content/uploads/2012/06/Subtitles_Pic-4.jpg' width="100%" loading=lazy loading=lazy></p> <p>Осталось кликнуть по надписи Feature(s) и дождаться момента, когда программа завершит считывание контейнера. После этого в разделе Stream(s) появится список обнаруженных потоков. Хотите – вытаскивайте все, хотите – только субтитры: просто отметьте галкой то, что нужно извлечь, а потом запустите процесс кнопкой Extract.</p> <p>Через некоторое время (которое зависит главным образом от быстродействия ПК; на современных машинах экстракция субтитров с дисков Blu-Ray обычно занимает чуть больше часа) в папке с результатами работы окажутся файлы с расширением *.sup и малоинформативными названиями вида 1_7_subtitle (второй номер, в данном случае – 7, означает номер потока). Это и есть наши субтитры «в картинках», которые теперь надо распознать.</p> <p>Если речь идет о DVD Video, надо взять утилиту под названием VobSub Ripper Wizard от небезызвестного Gabest. Она входит в состав Gordian Knot и других пакетов аналогичного назначения. Впрочем, засорять винчестер ненужным софтом вовсе необязательно: VSRip проживает по адресу: sourceforge.net/projects/guliverkli/files/VSRip. Там находится архив ZIP, внутри которого – единственный экзешник. Интерфейс проги (которая, кстати, была выпущена в далеком 2003 году, но превосходно работает и в Windows 7 x64) примитивен.</p> <p>Первым делом надо открыть файл со служебной информацией (кнопка Load IFO…), который соответствует контейнерам, в которых хранится сам фильм. Определить, какой именно, достаточно легко: нужно зайти в папку VIDEO_TS и найти в ней любой файл VOB объемом 1 Гбайт.</p> <p>Предположим, он называется VTS_01_1 – тогда рипперу надо «скормить» VTS_01_1.IFO (другими словами, цифры в именах после набора символов «VTS_» должны совпадать). Что указывать в поле Save to… – догадайтесь сами (смайл). Далее жмем Next и на следующем этапе мастера отмечаем в списке Languages субтитры на нужных языках. Здесь важно, чтобы в колонке Vob/Cell IDs были выбраны все позиции – в противном случае субтитры будут извлечены с пропусками. Опять жмем Next и получаем на выходе два файла с одинаковыми именами и расширениями *.idx и *.sub. Они-то нам и нужны.</p> <p>Внутренняя структура субтитров, вытащенных из DVD Video и Blu-ray, различается. Для последних можно взять распознавалку SupRip (exar.ch/suprip), которая в целом со своей задачей справляется – хотя<br> и не могу сказать, что идеально. «Расшифровка» английского ей дается намного лучше, чем русского (но хотите – попробуйте, никто не запрещает). С «дивидишными» субтитрами она незнакома. Народ советует для них софтину SubRip (zuggy.wz.cz) – обратите, кстати, внимание: названия различаются всего на одну букву, но это разные программы.</p> <p><img src='https://i1.wp.com/upweek.ru/wp-content/uploads/2012/06/Subtitles_Pic-2.jpg' width="100%" loading=lazy loading=lazy></p> <p>Со второй у меня как-то не сложилось: я так и не смог подружить ее с 64-битной «семеркой». На кривизну рук ваш покорный слуга раньше не жаловался – хотя, конечно, всякое случается. Может, истина – как в известном телесериале – где-то рядом, но я ее обнаружить не сумел. Потом я перепробовал еще несколько похожих утилит, но ни с одной не нашел понимания. Пишу об этом только для того, чтобы вы не повторяли моих ошибок.</p> <p>Решение, причем универсальное, есть, и зовут его Subtitle Edit (www.nikse.dk/SubtitleEdit). Чем мне приглянулся этот редактор, так это тем, что он обучен распознавать пререндеренные субтитры обоих типов и не только. Распространяется как в виде архива, не требующего установки, так и в виде инсталлятора, по сути они ничем не отличаются. Интерфейс прекрасно русифицирован (Options > Choose Language), в наличии также имеется довольно подробная онлайновая справка на языке – уж простите за банальность – Пушкина и Достоевского. Для распознавания применяется оупенсорсный движок Tesseract OCR (code.google.com/p/tesseract-ocr).</p> <p>Однако, прежде чем программа станет способна работать с русскими сабами, надо кое-что сделать. Для начала идем на интернет-страничку указанного выше движка, в разделе загрузок ищем файл rus.traineddata.gz, скачиваем и кладем в папку Tesseract\tessdata в программной директории Subtitle Edit. Потом перезапускаем редактор, открываем меню «Орфография» > «Получение словарей…» и в выпадающем списке выбираем пункт с названием Russian Spelling, Hyphenation, Thesaurus, а потом жмем «Загрузить» (думаю, особых пояснений здесь не требуется). Вот теперь все готово.</p> <p>Для распознавания субтитров, полученных из DVD Video, используется пункт «Импорт/OCR VonSub (sub/idx) субтитров…» в меню «Файл», для аналогичной операции с сабами c оптических дисков, где хранится HD-видео, – «Импорт/OCR файла Blu-ray sup…».</p> <p>В первом случае вас попросят еще выбрать поток с требуемым языком (если их там несколько), во втором – будет сразу запущен мастер. Далее порядок действий не различается. В поле «Метод OCR» надо оставить пункт «OCR с помощью Tesseract», в поле «Язык» выбрать тот, который соответствует языку субтитров, а в списке «Коррекция OCR/Орфография» умная прога сама подберет подходящий вариант, если установлены соответствующие словари. Еще советую включить опцию «Запрос при неизвестных словах» – тогда вас будут просить вручную подкорректировать неизвестное модулю проверки орфографии слово.</p> <p>При некоторой тренировке на обработку русских сабов фильма длительностью 2 ч требуется минут 30-40. С английскими дело идет еще быстрее. Когда процесс будет завершен, текстовые субтитры надо записать на диск («Файл» > «Сохранить», в поле «Тип файла» следует оставить SubRip). Еще в Subtitle Edit есть очень полезная функция «Синхронизация», которая поможет вам пересчитать тайм-коды с одной частоты кадров на другую (пригодится, если вы хотите прикрутить сабы, полученные из DVD Video, к BD-рипу).</p> <p>По идее, после получения субтитров SRT их можно сразу инкапсулировать в контейнер. Но поскольку автоматическое распознавание весьма частенько ошибается, лучше подрихтовать их в каком-нибудь редакторе. Мне лично понравился бесплатный Srt Corrector. Но поскольку места, отведенного под статью, как всегда, не хватило, ищите его подробное описание в «Маленьких программах» в этом же номере UPgrade. UP</p> <p><b>Субтитрами </b> <b>субтитры </b> <b>субтитры </b> <b>Субтитры </b> отображаются в виде текста появляющегося в соответствующий момент в нижней части экрана при просмотре видео.</p><p><br> </span> <b>Субтитрами </b> называют текстовое сопровождение видео на языке оригинала или в переводе. В большинстве случаев <b>субтитры </b> дублируют слова произнесенные персонажами и некоторые звуки фильма. Иногда <b>субтитры </b> имеют поясняющий или дополняющий характер. <b>Субтитры </b> отображаются в виде текста появляющегося в соответствующий момент в нижней части экрана при просмотре видео. Одним из наиболее распространенных методов является применение <b>субтитров </b> в караоке. <b>Субтитры </b> просто необходимы для слабослышащих людей. Не секрет, что профессионализм дублеров иногда уступает профессионализму дублеров, а качество звука и перевода в дубляжах иногда оставляет желать лучшего, особенно в тех случаях когда дубляж покрывает полностью звуковую дорожку и большинство звуков(взрывы, звук двигателей автомобилей, смех людей) берется не из оригинальной звуковой дорожки, а из библиотеки звуков дублирующей группы. Поэтому для просмотра фильма с оригинальной звуковой дорожкой могут пригодиться <b>субтитры </b>. В оригинальной звуковой дорожке лучше передается атмосфера фильма и эмоции, мы слышим те интонации и те звуки, которые задумал режиссер фильма, а не директор дубляжа.</p> <p>Многим известен фильм режиссера Стэнли Кубрика «С широко закрытыми глазами(Eyes Wide Shut)», который в российском прокате шел без дубляжа и с <b>субтитрами </b>. Тем самым авторы фильма хотели добиться, чтобы зритель слышал именно мастерскую игру актеров, а не неизвестное качество дубляжа. <b>Субтитры </b> могут быть включены в видеоряд или наложены поверх изображения при просмотре фильма. <b>Субтитры </b>, которые наложены в момент кодирования видео называют встроенными, а если субтитры накладываются в реальном времени, то такие <b>субтитры </b> называются внешними. Внешние <b>субтитры </b> выглядят более качественно и при необходимости их можно отключить.</p> <p><b>Субтитры </b> могут быть представлены в виде отдельного файла с расширением соответствующем формату субтитров, либо включены в медиаконтейнер, например в MKV. В характеристиках каждого медиаплеера обязательно указываются форматы поддерживаемых <b>субтитров </b>. Существует множество форматов цифровых внешних <b>субтитров </b>, отображение которых возможно при просмотре фильмов на медиаплеерах. Именно о них мы расскажем ниже.</p> <p><b>SubRipper </b>(<b>SRT </b>) - это рабочий файл <b>субтитров </b> программы <b>SubRip </b>, которая является одной из самых популярных для извлечения субтитров из DVD. Данный формат является одним из самых распространенных и удобных для редактирования, отличается простотой и наглядностью, синхронизируется с видео на основе времени с точностью до микросекунд. Изначально не поддерживал элементов оформления текста, но в дальнейшем был расширен поддержкой цветов и начертаний символов (курсив, жирность текста).</p> <p><b>SAMI </b>(<b>Synchronized Accessible Media Interchange </b>, <b>SMI </b>) - это формат <b>субтитров </b> от Microsoft, основанный на SGML. Этот формат хорошо документирован и имеет сложную расширяемую структуру. Стандарт поддерживает изменение размера, цвета, гарнитуры и стиля шрифта, а также изменения положения на экране.</p> <p><b>SubViewer </b> и <b>Submagic </b>(<b>SUB </b>) - популярный в прошлом формат, предназначенный для проигрывания в программе Submagic. Ввиду распространения более новых форматов <b>субтитров </b> утрачивает свою актуальность. В файле <b>субтитров </b> могут быть указаны настройки шрифта.</p> <p><b>MicroDVD </b> (<b>MDV </b>, <b>SUB </b>, <b>TXT </b>) - это собственный формат плеера MicroDVD player. Он не имеет фиксированного расширения, обычно это txt, sub или mdv. В связи с тем, что MicroDVD Player долгое время оставался вне конкуренции среди плееров с поддержкой субтитров, а также благодаря подробной документации, поддержке изменяемого стиля, размера и положения шрифта, этот формат получил уважение среди пользователей. MicroDVD осуществляет синхронизацию по номеру кадра, в то время как большинство <b>субтитров </b> синхронизируются по времени. Поэтому при наложении таких <b>субтитров </b> на видео с измененной частотой кадров <b>субтитры </b> будут появляться не вовремя.</p> <p><b>SubStation Alpha </b> (<b>SSA </b>) - это рабочий файл <b>субтитров </b> программы SubStation Alpha, которая предназначена для подготовки, таймирования, и наложения <b>субтитров </b>. Здесь полностью поддерживается работа со всеми параметрами шрифта (цвет, размер, гарнитура и т.д.), размещение текста в любом месте экрана, комментарии. <b>SSA </b> позволяет применять сложные видеоэффекты в отношении символов (затенение, движение, повороты и т. д.). Множество полей определяет параметры каждой фразы, например специальное поле для определения произносящего данную фразу. Кроме текста можно вставлять картинки, звуки и даже маленькие видео фрагменты.</p> <p><b>Advanced SubStation Alpha </b>(<b>ASS </b>) - формат с неблагозвучным для знающих английский расширением является дальнейшим развитием SubStation Alpha. Расширенный формат содержит такие возможности, как использование векторной графики и подсветки текста в режиме караоке.</p> <p><b>IDX+SUB </b> - двоичный формат прорисованных графических <b>субтитров </b>, извлечённых из DVD.</p> <p><b>SUP </b> - двоичный формат графических <b>субтитров </b>, используемый в VOB-файлах DVD диска, а так же в Blue Ray дисках.</p> <p><b>Presentation Graphic Streams </b>(<b>PGS </b>) - сравнительно новый формат субтитров использующийся в Blue Ray дисках.</p> <p><b> Timed Text </b>(<b>TT </b>) - один из наиболее перспективных форматов <b>субтитров </b>, основанный на XML.</p> <p><b>Synchronized Multimedia Integration Language </b>(<b>SMIL </b>) - рекомендованный W3C язык разметки основанный на XML для описания мультимедийных презентаций так же получил распространение в применении к <b>субтитрам </b>. Правильное расширение файлов с субтитрами этого формата - *.smil, но иногда ошибочно делают расширение *.smi, которое соотвтетствует формату SAMI.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> </article> <div class="post-meta"> <div class="post-rating"> <div class="post-rating__title">Оценка статьи:</div> <div id="post-ratings-557" class="post-ratings" data-nonce="79f57c6f5f"><img id="rating_557_1" src="https://shr32.ru/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="1 Звезда" title="1 Звезда" onmouseover="current_rating(557, 1, '1 Звезда');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;" / loading=lazy loading=lazy><img id="rating_557_2" src="https://shr32.ru/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="2 Звезды" title="2 Звезды" onmouseover="current_rating(557, 2, '2 Звезды');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;" / loading=lazy loading=lazy><img id="rating_557_3" src="https://shr32.ru/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="3 Звезды" title="3 Звезды" onmouseover="current_rating(557, 3, '3 Звезды');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;" / loading=lazy loading=lazy><img id="rating_557_4" src="https://shr32.ru/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="4 Звезды" title="4 Звезды" onmouseover="current_rating(557, 4, '4 Звезды');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;" / loading=lazy loading=lazy><img id="rating_557_5" src="https://shr32.ru/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="5 Звезд" title="5 Звезд" onmouseover="current_rating(557, 5, '5 Звезд');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;" / loading=lazy loading=lazy> (Пока оценок нет)<br /><span class="post-ratings-text" id="ratings_557_text"></span></div> <div id="post-ratings-557-loading" class="post-ratings-loading"> <img src="https://shr32.ru/wp-content/plugins/wp-postratings/images/loading.gif" width="16" height="16" class="post-ratings-image" / loading=lazy loading=lazy> Загрузка...</div> </div> <div class="post-share"> <div class="post-share__title">Поделиться с друзьями:</div> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8" async="async"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter" data-counter=""></div> </div> </div> </div> <div class="yarpp-related"> <div class="yarpp-related__title">Статьи на похожую тему</div> <ul class="related"> <style> </style> <ul class="related-items"> <li><img src="/uploads/82864fe8e1ac0ecebf99f42982277e8d.jpg" width="150" height="95" / loading=lazy loading=lazy><a href="https://shr32.ru/en/about-teeth/podborki-iz-zhurnalov-buhgalteru-stavka-naloga-na-pribyl-nalog-na/">Income tax rate Income tax in the Russian Federation</a></li> <li><img src="/uploads/16baa1666827a5cb385620e295919250.jpg" width="150" height="95" / loading=lazy loading=lazy><a href="https://shr32.ru/en/prevention/sistema-menedzhmenta-kachestva-smk-chto-eto-takoe-i-dlya-chego-ona-nuzhna/">Theoretical and methodological foundations of the quality management system The quality management system consists of</a></li> <li><img src="/uploads/1f47fd4828838590929c03b2739f1bee.jpg" width="150" height="95" / loading=lazy loading=lazy><a href="https://shr32.ru/en/prevention/idei-dlya-biznesa-s-minimalnymi-vlozheniyami-samyi-dohodnyi-biznes/">The most profitable business in russia The most profitable and profitable business on the Internet</a></li> <li><img src="/uploads/5e1122db939e33228dc7fa9bb0679a40.jpg" width="150" height="95" / loading=lazy loading=lazy><a href="https://shr32.ru/en/teeth/luchshaya-literatura-kak-nachat-svoi-biznes-luchshie-knigi-pro-biznes-s/">The best books to read about doing business from scratch</a></li> </ul> </ul> </div> <aside class="comments-block"> <div id="disqus_thread"> </div> </aside> </main> </div> </div> <footer class="footer"> <div class="footer-copy">© 2021 All rights reserved</div> <nav class="footer-nav"> <ul class="footer-nav__items"> <li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://shr32.ru/en/sitemap.xml">map of site</a></li> </ul> </nav> </footer> <div class="modal-hidden"> <div class="search-modal"> <div class="modal_close arcticmodal-close">Close</div> <div class="search-title">Find on site</div> <div class="search-form"> <form method="get" action="/"> <input type="text" value="" name="s" placeholder="Site search" class="search-form__field"> <input type="submit" value="" class="search-form__button search-open"> </form> </div> <div class="search-example">For example: <span>types of drywall</span></div> </div> </div> <script type="text/javascript"> function dem_ready(e) { "use strict"; var t, n = ".democracy", i = e(n), o = ".dem-screen", a = ".dem-add-answer-txt", s = e(".dem-loader").first(), d = {}; i.length && (d.opts = i.first().data("opts"), d.ajaxurl = d.opts.ajax_url, d.answMaxHeight = d.opts.answs_max_height, d.speed = parseInt(d.opts.anim_speed), d.lineAnimSpeed = parseInt(d.opts.line_anim_speed), setTimeout(function() { var t = i.find(o).filter(":visible"), n = function() { t.each(function() { d.setHeight(e(this), 1) }) }; t.demInitActions(1), e(window).on("resize.demsetheight", n), e(window).load(n), d.maxAnswLimit(); var a = e(".dem-cache-screens"); a.length > 0 && a.demCacheInit() }, 10), e.fn.demInitActions = function(t) { return this.each(function() { var n = e(this), i = "data-dem-act"; n.find("[" + i + "]").each(function() { e(this).attr("href", ""), e(this).click(function(t) { t.preventDefault(), e(this).blur().demDoAction(e(this).attr(i)) }) }); var o = !!n.find("input[type=radio][data-dem-act=vote]").first().length; o && n.find(".dem-vote-button").hide(), d.setAnswsMaxHeight(n), d.lineAnimSpeed && n.find(".dem-fill").each(function() { var t = e(this); setTimeout(function() { t.animate({ width: t.data("width") }, d.lineAnimSpeed) }, d.speed, "linear") }), d.setHeight(n, t), n.find("form").submit(function(t) { t.preventDefault(); var n = e(this).find('input[name="dem_act"]').val(); n && e(this).demDoAction(e(this).find('input[name="dem_act"]').val()) }) }) }, e.fn.demSetLoader = function() { var e = this; return s.length ? e.closest(o).append(s.clone().css("display", "table")) : t = setTimeout(function() { d.demLoadingDots(e) }, 50), this }, e.fn.demUnsetLoader = function() { return s.length ? this.closest(o).find(".dem-loader").remove() : clearTimeout(t), this }, e.fn.demAddAnswer = function() { var t = this.first(), n = t.closest(o), i = n.find("[type=checkbox]").length > 0, s = e('<input type="text" class="' + a.replace(/\./, "") + '" value="">'); if (n.find(".dem-vote-button").show(), n.find("[type=radio]").each(function() { e(this).click(function() { t.fadeIn(300), e(a).remove() }), "radio" == e(this)[0].type && (this.checked = !1) }), t.hide().parent("li").append(s), s.hide().fadeIn(300).focus(), i) { var d = n.find(a); e('<span class="dem-add-answer-close">×</span>').insertBefore(d).css("line-height", d.outerHeight() + "px").click(function() { var t = e(this).parent("li"); t.find("input").remove(), t.find("a").fadeIn(300), e(this).remove() }) } return !1 }, e.fn.demCollectAnsw = function() { var t = this.closest("form"), n = t.find("[type=checkbox],[type=radio],[type=text]"), i = t.find(a).val(), o = [], s = n.filter("[type=checkbox]:checked"); if (s.length > 0) s.each(function() { o.push(e(this).val()) }); else { var d = n.filter("[type=radio]:checked"); d.length && o.push(d.val()) } return i && o.push(i), o = o.join("~"), o ? o : "" }, e.fn.demDoAction = function(t) { var i = this.first(), a = i.closest(n), s = { dem_pid: a.data("opts").pid, dem_act: t, action: "dem_ajax" }; return "undefined" == typeof s.dem_pid ? (console.log("Poll id is not defined!"), !1) : "vote" != t || (s.answer_ids = i.demCollectAnsw(), s.answer_ids) ? "delVoted" != t || confirm(i.data("confirm-text")) ? "newAnswer" == t ? (i.demAddAnswer(), !1) : (i.demSetLoader(), e.post(d.ajaxurl, s, function(e) { i.demUnsetLoader(), i.closest(o).html(e).demInitActions() }), !1) : !1 : (d.demShake(i), !1) }, e.fn.demCacheShowNotice = function(e) { var t = this.first(), n = t.find(".dem-youarevote").first(); return "blockForVisitor" == e && (t.find(".dem-revote-button").remove(), n = t.find(".dem-only-users").first()), t.prepend(n.show()), setTimeout(function() { n.slideUp("slow") }, 1e4), this }, d.cacheSetAnswrs = function(t, n) { var i = n.split(/,/); if (t.hasClass("voted")) { var o = t.find(".dem-answers"), a = o.data("voted-class"), s = o.data("voted-txt"); e.each(i, function(n, i) { t.find('[data-aid="' + i + '"]').addClass(a).attr("title", function() { return s + e(this).attr("title") }) }), t.find(".dem-vote-link").remove() } else { var d = t.find("[data-aid]"), r = t.find(".dem-voted-button"); e.each(i, function(e, t) { d.filter('[data-aid="' + t + '"]').find("input").prop("checked", "checked") }), d.find("input").prop("disabled", "disabled"), t.find(".dem-vote-button").remove(), r.length ? r.show() : (t.find('input[value="vote"]').remove(), t.find(".dem-revote-button-wrap").show()) } }, e.fn.demCacheInit = function() { return this.each(function() { var t = e(this), i = t.prev(n); if (i.length || (i = t.closest(n)), !i.length) return void console.log("Main dem div not found"); var a = i.find(o).first(), s = i.data("opts").pid, r = Cookies.get("demPoll_" + s), c = "notVote" == r ? !0 : !1, f = !("undefined" == typeof r || c), l = t.find(o + "-cache.vote").html(), h = t.find(o + "-cache.voted").html(); if (l) { var u = f && h; if (a.html((u ? h : l) + "").removeClass("vote voted").addClass(u ? "voted" : "vote"), f && d.cacheSetAnswrs(a, r), a.demInitActions(1), !c && !f && 1 == t.data("opt_logs")) { var m, p = function() { clearTimeout(m) }, v = function() { m = setTimeout(function() { if (!i.hasClass("checkAnswDone")) { i.addClass("checkAnswDone"); var t = i.find(".dem-link").first(); t.demSetLoader(), e.post(d.ajaxurl, { dem_pid: i.data("opts").pid, dem_act: "getVotedIds", action: "dem_ajax" }, function(e) { t.demUnsetLoader(), e && (a.html(h), d.cacheSetAnswrs(a, e), a.demInitActions(), a.demCacheShowNotice(e)) }) } }, 700) }; i.hover(v, p), i.click(v) } } }) }, d.detectRealHeight = function(e) { var t = e.clone().css({ height: "auto" }).insertBefore(e), n = "border-box" == t.css("box-sizing") ? parseInt(t.css("height")) : t.height(); return t.remove(), n }, d.setHeight = function(t, n) { var i = d.detectRealHeight(t); n ? t.css({ height: i }) : t.css({ opacity: 0 }).animate({ height: i }, d.speed, function() { e(this).animate({ opacity: 1 }, 1.5 * d.speed) }) }, d.setAnswsMaxHeight = function(t) { if ("-1" !== d.answMaxHeight && "0" !== d.answMaxHeight && d.answMaxHeight) { var n = t.find(".dem-vote, .dem-answers").first(), i = parseInt(d.answMaxHeight); n.css({ "max-height": "none", "overflow-y": "visible" }); var o = "border-box" == n.css("box-sizing") ? parseInt(n.css("height")) : n.height(), a = o - i; if (a > 100) { n.css("position", "relative"); var s, r = e('<span class="dem__collapser"><span class="arr"></span></span>').appendTo(n), c = function() { r.addClass("expanded").removeClass("collapsed") }, f = function() { r.addClass("collapsed").removeClass("expanded") }; t.data("expanded") ? c() : (f(), n.height(i).css("overflow-y", "hidden")), r.hover(function() { t.data("expanded") || (s = setTimeout(function() { r.trigger("click") }, 1e3)) }, function() { clearTimeout(s) }), r.click(function() { if (clearTimeout(s), t.data("expanded")) f(), t.data("expanded", !1), t.height("auto"), n.stop().css("overflow-y", "hidden").animate({ height: i }, d.speed, function() { d.setHeight(t, !0) }); else { c(); var e = d.detectRealHeight(n); e += 7, t.data("expanded", !0), t.height("auto"), n.stop().animate({ height: e }, d.speed, function() { d.setHeight(t, !0), n.css("overflow-y", "visible") }) } }) } } }, d.maxAnswLimit = function() { i.on("change", "[type=checkbox]", function() { var t = e(this).closest(n).data("opts").max_answs, i = e(this).closest(o).find("[type=checkbox]"), a = i.filter(":checked").length; a >= t ? i.filter(":not(:checked)").each(function() { e(this).prop("disabled", "disabled").closest("li").addClass("dem-disabled") }) : i.each(function() { e(this).removeProp("disabled").closest("li").removeClass("dem-disabled") }) }) }, d.demShake = function(e) { var t = e.css("position"); for (t && "static" !== t || e.css("position", "relative"), t = 1; 2 >= t; t++) e.animate({ left: -10 }, 50).animate({ left: 10 }, 100).animate({ left: 0 }, 50) }, d.demLoadingDots = function(e) { var n = e, i = n.is("input"), o = i ? n.val() : n.html(); "..." === o.substring(o.length - 3) ? i ? n[0].value = o.substring(0, o.length - 3) : n[0].innerHTML = o.substring(0, o.length - 3) : i ? n[0].value += "." : n[0].innerHTML += ".", t = setTimeout(function() { d.demLoadingDots(n) }, 200) }) }! function(e) { if ("function" == typeof define && define.amd) define(e); else if ("object" == typeof exports) module.exports = e(); else { var t = window.Cookies, n = window.Cookies = e(); n.noConflict = function() { return window.Cookies = t, n } } }(function() { function e() { for (var e = 0, t = {}; e < arguments.length; e++) { var n = arguments[e]; for (var i in n) t[i] = n[i] } return t } function t(n) { function i(t, o, a) { var s; if ("undefined" != typeof document) { if (arguments.length > 1) { if (a = e({ path: "/" }, i.defaults, a), "number" == typeof a.expires) { var d = new Date; d.setMilliseconds(d.getMilliseconds() + 864e5 * a.expires), a.expires = d } try { s = JSON.stringify(o), /^[\{ \[]/.test(s) && (o = s) } catch (r) {} return o = n.write ? n.write(o, t) : encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(String(t)), t = t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent), t = t.replace(/[\(\)]/g, escape), document.cookie = [t, "=", o, a.expires && "; expires=" + a.expires.toUTCString(), a.path && "; path=" + a.path, a.domain && "; domain=" + a.domain, a.secure ? "; secure" : ""].join("") } t || (s = {}); for (var c = document.cookie ? document.cookie.split("; ") : [], f = /(%[0-9A-Z]{ 2} )+/g, l = 0; l < c.length; l++) { var h = c[l].split("="), u = h[0].replace(f, decodeURIComponent), m = h.slice(1).join("="); '"' === m.charAt(0) && (m = m.slice(1, -1)); try { if (m = n.read ? n.read(m, u) : n(m, u) || m.replace(f, decodeURIComponent), this.json) try { m = JSON.parse(m) } catch (r) {} if (t === u) { s = m; break } t || (s[u] = m) } catch (r) {} } return s } } return i.set = i, i.get = function(e) { return i(e) }, i.getJSON = function() { return i.apply({ json: !0 }, [].slice.call(arguments)) }, i.defaults = {}, i.remove = function(t, n) { i(t, "", e(n, { expires: -1 })) }, i.withConverter = t, i } return t(function() {}) }); var demjquerywait = setInterval(function() { "undefined" != typeof jQuery && (clearInterval(demjquerywait), jQuery(document).ready(dem_ready)) }, 50); </script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=4.7.8'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll": "1" }; /* ]]> */ </script> <script type='text/javascript' src='https://shr32.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://shr32.ru/wp-content/plugins/wp-postratings/js/postratings-js.js?ver=1.84'></script> <script type='text/javascript' src='https://shr32.ru/wp-content/plugins/disqus-comment-system/media/js/disqus.js?ver=4.7.8'></script> <script type='text/javascript' src='https://shr32.ru/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.7.8'></script> </div> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>