Andare al contenuto principale
SubtitleMatrix

Convertire MicroDVD in ASS

Oppure incollare il testo dei sottotitoli

Opzioni

La frequenza dei fotogrammi in cui sono contati i tempi. Nelle pagine di formato è quella che serve a MicroDVD, perché memorizza i tempi come numeri di fotogramma. Nelle pagine della frequenza dei fotogrammi è la cadenza con cui è stato temporizzato il file — la versione per cui sono stati creati i sottotitoli — e il secondo riquadro della pagina accetta la frequenza del video con cui verranno usati. 23,976, 24, 25, 29,97, 30, 50, 59,94 e 60 sono quelle comuni. Sbagliarla sposta l’intera timeline, e nelle pagine della frequenza dei fotogrammi la sposta di un rapporto anziché di un importo fisso.

Cosa cambia questa conversione

2 elementi vengono scartati o richiedono una decisione

  • Frequenza dei fotogrammi

    la sorgente memorizza i tempi come numeri di fotogramma — ogni timestamp dipende dalla frequenza dei fotogrammi fornita

  • Precisione

    la precisione della temporizzazione — l’orologio dell’uscita è più grossolano, quindi ogni timestamp è arrotondato al 10 ms più vicino

Questo elenco deriva dalla matrice delle capacità di questi due formati, non dal particolare file caricato. Un file specifico può perdere di più se usa caratteristiche che il formato consente ma la matrice non modella.

MicroDVD memorizza un sottotitolo come coppia di numeri di fotogramma e il testo che sta fra loro: il file dice «dal fotogramma 100 al 150», non «da 1,2 secondi a 1,8». Per scrivere un ASS quei numeri vanno riportati a orari, e per farlo serve la frequenza dei fotogrammi con cui i sottotitoli sono stati scritti.

L’ordine di priorità è esplicito. Vince il campo in alto sulla pagina; se resta vuoto vale la frequenza dichiarata nella prima riga del file, e se il file non dichiara nulla si assumono 25 fps. Un `.sub` che dichiara 25 non è però una prova che il video girasse a 25: molti file in circolazione sono stati scritti da strumenti che davano per scontato il PAL.

L’ASS scrive i tempi al centesimo (`0:00:04.13`), quindi ogni timecode viene arrotondato ai 10 ms più vicini: 00:00:04,126 esce come 4,13 secondi, e nessun cue si sposta di più di 5 ms. Si perdono frequenza dei fotogrammi e precisione. La barra verticale del testo diventa `\N`, e più file si elaborano in coda con un solo ZIP in uscita. Tutto avviene nel browser.

Esempi

Un file MicroDVD tipico, convertito in ASS

Ingresso

{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.

Uscita

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,The quick brown fox jumps over the lazy dog.
Dialogue: 0,0:00:08.00,0:00:10.40,Default,,0,0,0,,Faster than\Nthe last one.

In questa conversione si perdono la frequenza dei fotogrammi e la precisione. Tutto il resto resta identico, riga per riga.

La stessa conversione su un input difficile

Ingresso

{1}{1}23.976
{0100}{0150}Leading zeros in the frame numbers.
[INFORMATION]
{300}{340}An unrecognized line above was kept in place.
{400}{450}Trailing spaces are kept.   

Uscita

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,Leading zeros in the frame numbers.
Dialogue: 0,0:00:12.00,0:00:13.60,Default,,0,0,0,,An unrecognized line above was kept in place.
Dialogue: 0,0:00:16.00,0:00:18.00,Default,,0,0,0,,Trailing spaces are kept.   

È il tipo di danno che i file reali hanno davvero: fini di riga misti, spazi vaganti, campi vuoti. Confrontandolo con l’esempio ordinato qui sopra si vede che cosa il parser perdona.

Domande frequenti

Quale frequenza dei fotogrammi viene usata per leggere MicroDVD prima di scrivere ASS?

Conta prima il campo in alto sulla pagina: qualunque valore contenga, è quello che trasforma i fotogrammi in orari per l’output ASS. Se lo si lascia vuoto vale la frequenza dichiarata nella prima riga del file, e in mancanza di dichiarazione si assumono 25 fps. Conviene controllare comunque: molti `.sub` in circolazione presuppongono il PAL, quindi un 25 dichiarato non è una prova.

Perché i timecode si sono spostati passando da MicroDVD ad ASS?

L’ASS scrive il tempo come `0:00:04.13` e MicroDVD conta i fotogrammi, quindi ogni timecode viene arrotondato ai 10 ms più vicini: 00:00:04,126 esce come 4,13 secondi. Nulla viene allungato o riordinato e nessun cue si muove di più di 5 ms, ma se si allineano questi sottotitoli a un altro file è l’unico punto in cui la conversione smette di essere esatta.

Che aspetto ha l’output quando MicroDVD diventa ASS?

Ha l’aspetto dell’ASS: nessun numero di cue, ogni sottotitolo è una riga `Dialogue:` nella sezione `[Events]`, con un campo di livello dove l’SRT tiene il numero. Ogni cue MicroDVD diventa un cue ASS, nello stesso ordine e con lo stesso testo.

Come esce in ASS un cue MicroDVD su due righe?

Come due righe separate da `\N`, il modo in cui l’ASS scrive un a capo forzato. L’accoppiamento resta: le due righe MicroDVD appartengono ancora a un solo sottotitolo nell’output ASS, e il lettore le mostra insieme.

I cue MicroDVD mantengono l’ordine nell’output ASS?

Sì, e lungo la strada vengono ordinati per tempo di inizio: prima i più antichi, come si aspetta ogni formato di questo sito e come li leggono i lettori. Se il file MicroDVD elencava i cue fuori sequenza, l’ASS li rimette in ordine: è un cambiamento nella struttura del file, non nel contenuto, ed è voluto.

Posso riconvertire l’ASS in MicroDVD?

Sì, e ha un elenco suo: convertire ASS in MicroDVD perde formattazione, posizionamento, karaoke, frequenza dei fotogrammi e contenuti specifici del formato. Quell’elenco è diverso da quello qui sopra perché i due formati conservano cose diverse.

L’output ASS conserva la codifica del file MicroDVD?

No: l’output è UTF-8, con fine riga Unix e senza BOM, qualunque codifica usasse il file MicroDVD. Un file in UTF-16 o in una codifica a byte singolo di Windows viene decodificato in ingresso, e il pannello del risultato lo segnala; ciò che esce è sempre lo stesso ASS in UTF-8.

Strumenti correlati