Bitrate divx e dimensioni finali

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Bitrate divx e dimensioni finali

Messaggio da wakkokid »

Salve.
Sto creando uno script che mi converta un dvd in divx usando mencoder (più per imparare che per vera utilità) e trovo qualche difficoltà a trovare il corretto bitrate per ottenere un file di una determinata dimensione.

Io ho fatto questo ragionamento.
Supponiamo che l'utente immetta 128 come bitrate audio (in Kbit/s)
e voglia un file di 690 MByte, su un film che dura 65 minuti ("asterix il gallico" :-P)

65 minuti = 3900 secondi
lo spazio occupato dall'audio è 128 * 3900 = 499200 Kbit
lo spazio disponibile nel file finale è 690 * 1024 * 8 = 5652480 Kbit
lo spazio disponibile per il video è dunque 5652480 - 499200 = 5153280 Kbit
Dunque il bitrate da scegliere è 5153280 / 3900 = 1321 Kbit/s.

Sto dicendo delle castronerie?
Ho provato con un bitrate calculator e ottengo lo stesso risultato

*EPPURE*

Quando vado a codificare con mencoder il file risulta di 820 MB (ho provato a codificarlo due volte, temendo un qualche errore di battitura). Ho provato anche con dimensioni (e film) diversi, ma il file in output risulta invariabilmente più grande della dimensione prevista, di circa un 20%.
Dove sbaglio?

Buonasera, Wakko Kid

Avatar utente
V
Linux 2.x
Linux 2.x
Messaggi: 313
Iscritto il: gio 23 mar 2006, 10:54

Messaggio da V »

Kbit o Kbyte?

1 Kbit = 1000 bit
1 kbyte = 1024 bit

Potrebbe essere dovuto a questo, o al tipo di file contenitore che viene usato.........

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Messaggio da wakkokid »

Se non sbaglio:
8 Kbit = 1 Kbyte.

Come dire:con l' ADSL a 4 Mbit, scarichi a ( 4/8 ) Mbyte al secondo che sono i 500 KByte a cui scarichiamo in genere.

comunque, l'errore nel sostituire 1024 a 100 nei calcoli in questione è ~2,4%, non 20%... Dunque penso il problema sia altrove. comunque adesso provo a sostuire nello script e vdeo cosa succede.

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Messaggio da wakkokid »

Il problema è altrove.
Il calcolo del bitrate è giusto:
infatti dopo il primo passaggio di codifica dell'audio, mencoder mi da (nell'output assieme al resto) queste righe:

Recommended video bitrate for 650MB CD: 1397
Recommended video bitrate for 700MB CD: 1505
Recommended video bitrate for 800MB CD: 1721
Recommended video bitrate for 2 x 650MB CD: 2800
Recommended video bitrate for 2 x 700MB CD: 3016
Recommended video bitrate for 2 x 800MB CD: 3448

che corrisponde al bitrate del solo video per ottenere un filmato della dimensione prevista.
Cioè: se imposto il bitrate relativo al cd da 700, ottengo un video da
(1505 Kbit/s * 3900 sec) / 8 / 1024 = 716 MB.

Al quale però andrebbe aggiunta la dimensione dell'audio: 128 *3900 / 8 / 1024= 61 MB
cioè dimensioni totali di 777 MB.
In realtà se uso quel bitrate, ottendo un file di gran lunga più grosso: 910 MB

Non ho più idea di quale sia il problema, l'unica cosa sicura è che il bitrate che imposto è corretto (lo ho calcolato, me lo conferma il bitratecalculator, me lo conferma mencoder). Però all'atto pratico il divx è più grande del dovuto.

Ora, proverò a aggiornare mencoder e poi le librerie, ma dubuto che sia colpa di bug (googlando non ho trovato nessuno col mio problema)

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

hai provato senza audio? Il bitrate che imposti è sempre costante e fai una sola passata? non è che divx fa lui una media e alza e abbassa il bitrate in base alla comprimibilità della scena? Boh, non ne ho la più pallida idea.

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Messaggio da wakkokid »

Non ho provato senza audio, è una buona idea, provo subito!.

Il bitrate che imposto è variabile, e faccio due passate, quindi è il divx che fa una media (e anche mp3 con l'audio)... però sotto windows con software appositi mi viene giusto, con mencoder sbaglio qualcosa: qui i comandi che ho usato:

per rippare il dvd:
mencoder -ovc copy -oac copy -aid 128 -dvd-device /dev/hdd dvd://1 -o dvdrippato.vob

per comprimere l'audio:
mencoder -ovc frameno -o frameno.avi -oac mp3lame -lameopts abr:br=128 -aid 128 dvdrippato.vob

per la prima passata video:
mencoder -o /dev/null -oac copy -ovc lavc -vop scale=640:480,crop=640:480:0:0 -lavcopts vcodec=mpeg4:vbitrate=1321:vhq:vqmin=2:vqmax=31:vpass=1 -sws 2 dvdrippato.vob

per la seconda passata:
mencoder -o asterix.avi -oac copy -ovc lavc -vop scale=640:480,crop=640:480:0:0 -lavcopts vcodec=mpeg4:vbitrate=1321:vhq:vqmin=2:vqmax=31:vpass=2 -sws 2 dvdrippato.vob

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Messaggio da wakkokid »

la colpa è dell'audio che con i comandi sopra scritti non viene codificato. ho risolto elimando il primo comando e spostando il paramentro -oac eccetera negli ultimi due.

Grazie a ancora a entrambi.

Rispondi