Newsgroup: it.comp.software.divx
Titolo: Mencoder e sottotitoli

Ciao a tutti!
Ho qualche problema coi sottotitoli di mencoder. :-)
Sto encodando un DVD in 16:9 e vorrei aggiungere i sottotitoli.
Visto che uso il crop, se scrivo solo -slang it vedo i sottotitoli
sull'immagine del film e non sono molto leggibili.
Cercando su internet e leggendo le man pages di mencoder ho aggiunto il
filtro: 
   expand =0:-75:0:0:1
per creare una zona nera di 75 pixel sotto il film.
Aggiungendo le opzioni:
   -subalign 2 -subpos 100
vedo i sottotitoli comodamente nella mia nuova zona nera.
Il problema che riscontro è il seguente:
Se guardo il film con mplayer e le opzioni sopra citate va tutto bene, ma
quando creo il file avi i sottotitoli si sovrappongono. Se viene
visualizzata una riga lunga, se la successiva è più corta restano a video
le parti della riga precedente che non sono state ricoperte dalla nuova.
In più l'ultima riga visualizzata resta lì finché non ne viene visualizza
un'altra.
Qualcuno mi può aiutare?
Perché si comporta così?
Perché solo durante l'encoding e non anche in visualizzazione?
Ciao e grazie
Sakya

 Perché solo durante l'encoding e non anche in visualizzazione?
da quanto scrivi sembra che ci sia un bug...
ho cercato di riprodurlo ma non ci sono riuscito...
ho creato questo file di sottotitoli, salvato come "sub.srt"
---------------------------------
1
00:00:01,000 --> 00:00:02,000
sottotitolo lunghissimissimo
2
00:00:03,000 --> 00:00:05,000
molto corto
---------------------------------
poi ho lanciato il comando:
mplayer -vf expand=0:-75:0:0:1 avi_test_divx512x382.avi -sub sub.srt 
-subalign 2 -subpos 100
e funziona tutto molto bene (come anche a te);
poi ho fatto questa codifica:
mencoder -vf expand=0:-75:0:0:1 avi_test_divx512x382.avi -sub sub.srt
-subalign 2 -subpos 100 -oac copy -ovc lavc -lavcopts vqscale=2:vcodec=mpeg4
-o z.avi
ho ottenuto il file z.avi che fa abbastanza schifo, c'e' una riga verde
in cima e ci sono artefatti verdi...
pero' non ha i problemi che dici tu: i sottotitoli sono venuti bene:
compaiono quando devono comparire e spariscono quando devono sparire,
e non si sovrappongono...
poi ho fatto questa codifica:
mencoder -vf expand=0:-75:0:0:1 avi_test_divx512x382.avi -sub sub.srt
-subalign 2 -subpos 100 -oac copy -ovc xvid -xvidencopts fixed_quant=2
-o z.avi
e la codifica fallisce, con questo errore:
videocodec: XviD (512x457 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=512x457, sampled=512x457
xvid: Fixed Quant Rate Control -- quantizer=2/1=2.00
xvid: xvidcore returned a 'General fault' error
FATAL: Cannot initialize video driver.
Exiting...
allora ho capito! il numero di righe deve essere almeno pari
(se non addirttura multiplo di 16), quindi ho ripetuto la codifica
con xvid sostituendo con "-vf expand=0:-74:0:0:1" (74 invece di 75)
ed e' venuto ottimamente, poi ho ripetuto con lavc ed e' venuto
ottimamente anche quello...
per il momento, l'unico consiglio che posso darti e' di fare
in modo che la risoluzione del filmato finale sia pari;
comunque, non credo che questo risolvera' il tuo problema;
in mancanza di ulteriori indizi, se non riesco a riprodurre
tale bug, non posso esserti d'aiuto

 ottimamente anche quello...
Adesso provo a variare i valori di scale e expand.
Ciaoooo
Sakya

Frank Sinapsi wrote:
Ho provato a variare i valori di scale, crop e expand a valori pari, ma non
è cambiato niente. 
Ti riporto i comandi completi che ho usato per estrarre l'audio prima
(frameno.avi) ed il video poi. :-)
Estrazione audio:
mencoder -dvd-device /dev/dvd -ovc frameno -oac mp3lame -lameopts
br=128:q=9:aq=5:abr:mode=1 -o /home/paolo/tmp/frameno.avi -aid 128 -af
resample=44100:1:2,volume=10:1 -ss 01:00:00 -endpos 00:00:30 dvd://1
Encoding Video:
mencoder -vf crop=704:416:10:78,scale=640:272,expand=0:-74:0:0:1
-dvd-device /dev/dvd -sws 2 -lavcopts
vcodec=mpeg4:vqmin=2:vqmax=31:vbitrate=1000:mbd=1:v4mv:lumi_mask=0.07:dark_mask=0.2:scplx_mask=0.1:tcplx_mask=0.1:naq:vpass=1
-slang it -spuaa 4 -subpos 100 -subalign 2 -o /home/paolo/tmp/gbDVDenc.avi
-oac copy -ovc lavc -of avi -ffourcc xvid -ss 01:00:00 -endpos 00:00:30
dvd://1
Ciaooo
Sakya



 dvd://1
ho provato la tua linea di comando e a me funziona... :-)
per la precisione, ho usato il DVD originale del film "Il cuoco, il
ladro sua moglie e l'amante" di Peter Greenaway, e impartito questo
comando:
mencoder -vf crop=704:416:10:78,scale=640:272,expand=0:-74:0:0:1 -sws 2
-lavcopts vcodec=mpeg4:vqmin=2:vqmax=31:vbitrate=1000:mbd=1:v4mv:
lumi_mask=0.07:dark_mask=0.2:scplx_mask=0.1:tcplx_mask=0.1:naq:vpass=1
-slang it -spuaa 4 -subpos 100 -subalign 2 -ovc lavc -of avi -ffourcc xvid
-ss 01:00:00 -endpos 00:00:30 dvd://11 -nosound
ho fatto qualche cambiamento, ma non dovrebbe influire sul risultato:
- ho messo "-nosound"
- ho messo dvd://11, perche' il film e' il titolo 11
il risultato e' un file "test.avi" di 30 secondi con i sottotitoli in
italiano che compaiono e spariscono al momento giusto sulla striscia
nera inferiore aggiunta dal filtro "expand"...
ha funzionato il crop, lo scale, l'expand... ha funzionato tutto a
dovere...
sai che penso?
potrebbe essere che dipenda dallo specifico sottotitolo del tuo dvd;
nei post precedenti non avevo capito che tipo di sottotitoli tu
stessi usando (pensavo che fossero in formato testuale);
il supporto ai sottotitoli dvd, in mplayer, non e' fatto
granche' bene; il problema e' che la specifica di tale
formato (SPU, "sub picture unit" di mpeg2) non e' molto
chiara (e soprattutto la documentazione non e' disponibile
ne' a chi ha scritto quel supporto, ne' tantomeno a me), e
a causa di cio' puo' capitare che alcuni sottotitoli abbiano
feature "strane" (tipo: un sottotitolo viene prima mostrato
con una palette trasparente, poi viene modificata la palette
e questo crea un effetto visivo particolare...)
pero' lo stesso problema dovresti averlo anche con mplayer,
impartendo le stesse opzioni (eccetto quelle specifiche di
encoding), invece tu avevi scritto che mplayer funzionava...
boh, provero' con un altro DVD... a te lo fa solo con quello
o con tutti?
comunque, vorrei farti alcune domande:
perche' usi l'opzione "-ffourcc xvid" ? il codec che usi non
e' XviD, e' lavc...
perche' usi le opzioni *_mask di lavc? hai riscontrato dei
miglioramenti? come hai deciso quei valori?

 o con tutti?
hai ragione: ho provato con un altro DVD e ho ottenuto lo stesso
tuo errore.
pero' a me il problema lo da' anche se tolgo il filtro "scale"...
pare che, solo durante la codifica, non riesca a cancellare le
scritte solo sulla striscia aggiunta da "expand" (se una parte
delle scritte va a finire nel quadro, quella parte viene
cancellata, e solo quella).
e' un bug. va segnalato...

 miglioramenti? come hai deciso quei valori?
Quei valori li ho trovati (più o meno simili) in più di un tutorial letto su
internet. Ho visto che li usavano, ho letto le man pages di mencoder per
vedere a cosa servivano ed ho pensato che male non avrebbero fatto di
certo. :-)
Non ho fatto test specifici per vedere che miglioramento apportano quei
valori, ma dalla documentazione mi sembrano valori che dovrebbero dare un
leggero miglioramento senza perdita di qualità.
Ciaooo
Sakya

 e' un bug. va segnalato...
Fatto! :-)
Ciaoooo
Sakya

 certo. :-)
sono i parametri che abilitano la "quantizzazione adattiva", in modo che
per un singolo frame possano essere usati diversi passi di quantizzazione,
a seconda dei livelli di luminosita' delle varie parti (e di come imposti
i valori); credo che nel divx commerciale si chiami "modello psicovisivo".
mai usati.