Newsgroup: it.comp.software.divx
Titolo: verifica compatibilita' sottotitoli SRT

Dato che in passato ho avuto problemi di lettura di
sottotitoli SRT con lettori da tavolo, e dato che il
formato SRT e' in semplice testo, molto facile da
analizzare e manipolare, ho deciso di scrivere un
analizzatore di SRT per controllare se un dato file
sia compatibile o meno con i miei lettori da tavolo.
L'ho incorporato nel mio programma AVInaptic, di cui
ho appena messo una versione che comprende questa
nuova parte.
Vediamo come funziona.
Quando si apre un file SRT con AVInaptic, adesso si
ottiene un rapporto simile a questo:
---------------------------------------------
[ Info sul file ]
Nome: 01-movie.1.srt
Data: 6/12/2006 19:01:14
Dimensione: 89,386 bytes
[ Info generiche ]
Tipo di file: Sottotitoli SRT
[ Info sulla compatibilità ]
Numero entries: 960
Terminazione linea: ms-dos
Tags usati: nessuno
Entries vuote: 0
Max righe per entry: 2
Max lunghezza entry: 38
Indici consecutivi: OK
Timestamps per entry: OK
Timestamps globali: OK
---------------------------------------------
Spiego il significato dei campi, uno per uno.
Numero entries: questo dovrebbe essere ovvio...
Terminazione linea: il valore di questo campo puo'
essere: "ms-dos", "unix" oppure "mac". Per quanto ne
so io, la stragrande maggioranza dei lettori SA in
circolazione legge solo file SRT con terminazione
ms-dos, quindi questo e' il primo valore da
controllare e su cui intervenire, prima di
masterizzare i sottotitoli...
Tags usati: qui viene riportato l'elenco dei tags
usati in questi sottotitoli. I miei lettori non
supportano i tags e li mostra pari pari sullo
schermo, quindi preferisco rimuoverli del tutto
quando mi imbatto in sottotitoli che ne fanno uso.
Se nel rapporto viene specificato "nessuno", si
puo' stare tranquilli, che non ci sono tag.
Entries vuote: questo dovrebbe sempre essere 0.
Puo' essere 1, se l'unica entry vuota e' l'ultima.
Max righe per entry: e' il numero massimo di righe
che compaiono in una singola entry. Non ho mai
provato, ma suppongo che ogni lettore abbia un
limite che non va superato...
Max lunghezza entry: anche questo dovrebbe essere
ovvio: e' il massimo numero di caratteri di una
singola linea di testo da mostrare. Anche questa
non puo' essere lunga a piacere. Non ho mai
provato, ma a occhio direi che i lettori dovrebbero
arrivare a visualizzare una lunghezza massima di
circa 50 caratteri...
Indici consecutivi: questo campo mostra se i numeri
progressivi che indicano le entries in un file SRT
sono corretti. Ad esempio, un SRT potrebbe essere
stato editato (o generato da un programma scassato)
e potrebbe essere privo di una entry; in tal caso
la sequenza degli indici risulta sbagliata, e i
lettori potrebbero comportarsi in modo strambo (o
non visualizzare del tutto quei sottotitoli).
Timestamps per entry: questo campo indica la coerenza
dei timestamps all'interno di ogni singola entry.
Questo campo deve essere "OK", altrimenti il mio
lettore non visualizza quel sottotitolo.
Timestamps globali: questo campo indica la coerenza
dei timestamps tra ogni entry e la precedente (e
successiva). Anche questo campo deve essere "OK",
altrimenti il mio lettore non visualizza quel
sottotitolo.
Nelle future versioni di AVInaptic, forse aggiungero'
una parte che permetta di risistemare i sottotitoli
in base alle proprie necessita' (e ovviamente
risalvarli). Se avete idee su come dovrebbe funzionare
per essere piu' utile possibile, fatemi sapere.
-- 
Home page: 
http://fsinapsi.altervista.org

 per essere piu' utile possibile, fatemi sapere.
- Un pulsante per eliminare i tag <i>,</i>,<b>,</b>
che il mio lettore non digerisce :-P
- Una funzione che limita il numero di caratteri in una riga (creando + 
righe nel caso tale limite venga superato)
-- 
Willy
* /Il mio sito/: 
http://willygroup.altervista.org
* Faq di /it-alt.comp.software.mozilla/: 
http://snipurl.com/mozfaq
* /Contatti/: 
http://snipurl.com/contatti

 per essere piu' utile possibile, fatemi sapere.
A volte ci sono entry con solo lo stesso numero e basta
caricare i sottotitoli con Subtitle Workshop e semplicemente salvarli
e il sottotitolo viene rinumerato. Il problema è
se invece l'entry o un gruppo di entry è una copia completa
della precedente... ma penso che andiamo troppo sul difficile.
Importante sarebbe indicare sempre il numero della riga
dove il programma riscontra un errore o presunto tale.
E un altro tipo di errore che ho riscontrato e che capita
quando i sottotitoli sono stati passati in srt da altri tipi di formati
è la sintassi di  -->
tempo spazio  --> spazio tempo
in certi casi viene tolto lo spazio
e devo fare un trova e sostituisci con un
editor.
Grazie di tutto.
Sarebbe il programma più utile
che mai avrei potuto desiderare.
-- 
by Isaac (The Original)
Qu...@excite.it
 - Non usare per messaggi privati
Fidolook 2002 (SL) 6.0.2800.94 - 3/3/2005 11:18:26 

 righe nel caso tale limite venga superato)
Subtitle Workshop ha diverse opzioni per questi casi. 
Ma mi creano dei problemi e ho rinunciato.
Ho dei limiti evidentemente.


 righe nel caso tale limite venga superato)
queste le mettero' senz'altro


 dove il programma riscontra un errore o presunto tale.
come accennavo sopra, molti errori sintattici spariscono durante
il parsing; ad esempio, come dici anche tu, potrebbe succedere che
i due timestamps non siano separati da " --> ", ma da "-->" (mancano
gli spazi prima e/o dopo la freccia), e questo potrebbe succedere per
un migliaio di entries... Dato che tenere traccia di tutti gli
errori sarebbe molto pesante, preferirei limitarmi a segnalare se
sono stati rilevati o meno... Almeno per quel tipo di errori che
sparisce durante il parsing e che sicuramente non saranno presenti
nel nuovo file salvato...
Pensavo di fare nel seguente modo:
durante il parsing dei sottotitoli, avinaptic crea un database SQL
temporaneo in cui infila tutte le entries con i timestamps (questi
sono rappresentati con semplici numeri interi, che esprimono i
millisecondi).
Poi voglio scrivere un sotto-programma con una nuova finestra, che
permettera' di fare delle operazioni sui sottotitoli (non sul file
SRT, che non verra' piu' considerato, ma sul database SQL): quindi
potrai chiedergli di eliminare i tag, di traslare i timestamps
(in anticipo o in ritardo, di una quantita' di millesimi a piacere,
per sistemare un'asincronia costante) o, piu' in generale, di
applicare una trasformazione lineare ai timestamps (per sistemare
un'asincronia progressiva); di spezzare su piu' righe quelle che
superano una soglia impostabile dall'utente; e forse anche di
applicare una "supervisione lessicale" (riciclando quella che
avevo gia' scritto per il programma "VobsubOCR"); 
da questa nuova finestra, una volta apportate le modifiche
desiderate, sara' possibile salvare i sottotitoli presenti nel
database su un nuovo file SRT.
Potrebbe andare?


 Potrebbe andare?
Che dirti... sulla carta sembra perfetto
Per le righe da spezzare dovresti avere sottomano
Subtitle Workshop per avere un'idea di cosa fare guardando le sue opzioni.
Io quando mi sono provato con questo programma ho sempre avuto problemi.
Non ottenevo mai un risultato soddisfacente e ho lasciato
perdere. E ovviamente niente terza riga.
Per l'anticipo e il ritardo del timing nella maggioranza dei
casi per quel che mi rigurda l'errore di traduzioni fatte per sottotitoli
di una versione diversa dell'episodio mi ha sempre costretto
a fare le correzioni per gruppi di entry in numero definito
dai tagli delle interruzioni pubblicitarie. Più la serie ha avuto successo
più interruzioni pubblicitarie più tagli più lavoro da fare per
aggiustare il sottotitolo.
Grazie di nuovo
PS:
E per la nuova implementazione di Avinaptic
del riconoscimento dei file.
Adesso per un pò non posso riprovare a rischiare il reset
e può essere dipeso anche da altro...
Hai idea di cosa può succedere se ad Avinaptic si da in pasto
un avi da 350 mega che in realtà è un file rar con password ?
Magari in seguito apro un thread se ricombino un casino...


 mio legge solo il corsivo.
I miei due nessun tag.
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
È grande essere grande ma è più grande essere umano. - Will Rogers

 Magari in seguito apro un thread se ricombino un casino...
quando puoi, riprova ad aprire quello stesso falso avi da 350 MB
e se si blocca nuovamente fammi sapere...
Comunque, se si dovesse bloccare, ci sara' sicuramente un modo
in Windows per uccidere il processo...
Avinaptic non considera mai, in nessun caso, le estensioni dei
nomi dei file (come se non esistessero).
Il funzionamento di base e' questo: apre il file e lo passa
a vari parser (uno per l'AVI, uno per MKV, uno per ASF, uno
per i sottotitoli SRT, ecc): il primo che lo riconosce se lo
prende e ne effettua l'analisi sintattica. Se non lo prende
nessuno, viene passato a "libmagic", che tipicamente analizza
pochi byte del file (di sicuro non si mette a leggere tutto
un file di 350 MB, ma solo i primissimi) ed emette un
responso. A volte il responso puo' non essere corretto perche'
esistono molte ambiguita' nei "magic numbers" (ad esempio,
c'e' un formato di "icone" che inizia con lo stesso startcode
degli stream MPEG, quindi puo' accadere che un'icona venga
descritta erroneamente come "sequenza MPEG").
Quindi, se gli passi un RAR con estensione ".avi", dato che
il parser AVI non lo riconosce come tale, alla fine dovrebbe
arrivare a "libmagic" che dovrebbe dirti che si tratta di un
RAR. Se non e' cosi', segnalamelo in modo che possa cercare
di capire dov'e' l'errore
Ciao


 I miei due nessun tag.
anche i miei due, anche i due di mio fratello e anche tutti quelli che
ho visto.
In pratica, compare sullo schermo anche il tag, come se facesse parte
del testo normale, quindi se ce ne sono tanti, diventa una bella
seccatura...
Per questo problema avevo gia' fatto un semplice programmino che
strippava via tutti i tag, ma ora ho deciso di farne uno piu'
completo


 strippava via tutti i tag, ma ora ho deciso di farne uno piu' completo
A me farebbe davvero comodo. Quando prendo i sottotitoli e poi li
aggiusto per me tolgo tutti i tag, sistemo i tempi e mio piacimento e a
volte preferisco proprio riscrivere alcune righe.
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
La moglie bella ti fa far la sentinella. - Proverbio popolare

 in Windows per uccidere il processo...
Non era dipeso da avinaptic. Riconosce perfettamente
che l'Avi è un file Rar. Ero e sono al limite nell'uso del PC.
E' una situazione che mi si è ricreata dopo un paio di giorni
di un utilizzo normale del PC con in funzione contemporaneamente
mIRC eMule e Bitttorrent. Non l'avevo mai fatto.
Due li regge. Tre piano piano mi rallenta tutto
e dopo qualche giono qualsiasi programma apra mi si pianta
tutto e mi ci vuole un quarto d'ora per l'apertura di una finestra.
Compresa quella del task manager per killare il processo...
