Newsgroup: it.comp.software.divx
Titolo: Convertire il solo audio in un .avi

Ciao a tutti, ho un file .avi (audio e video) che mi da' problemi su di 
un player stand alone (non si sente l'audio).
F.Sinapsi mi aveva consigliato di convertire l'audio con avidemux ma mi 
da' un messaggio di errore.
Ho appena installato avidemux (Windows XP sp2) e non ho configurato 
niente (non so, magari bisogna dirgli dove stanno i codec per codificare 
col Lame....), non l'ho mai usato prima.
Ecco il file stdout (se non è sufficiente posso indicare altri log per 
scovare il problema...) che trovo nella directory di avidemux: 
http://mrzac.altervista.org/NG/stdout.txt
Ecco gli errori che mi da' nelle finestre di dialogo:
"Encoder initialization failed
Not activated."
"Error initializing audio filters."
Quello che voglio fare è covertire da audio wma a mp3 e risalvare l'avi 
così modificato.
  ciao e grazie ancitipatamente per le risposte.

 
...dimenticavo la procedura seguita:
aperto il file .avi,
lasciato Video->Copy
impostato Audio->Lame
configurato la codifica audio (lasciato tutto com'è)
salvato il file quindi appare subito l'errore...
Cosa può essere?


-- 
Saluti, Kap - 
www.lordkap.it
 - AVINaptic: 
http://fsinapsi.altervista.org
FAQ del newsgroup: 
http://giubbe.altervista.org
Nulla di ciò che è veramente utile si può insegnare. - Oscar Wilde

 così modificato.
per prima cosa controllerei se mplayer lo riproduce (audio e video entrambi
riprodotti bene), dato che di default anche mplayer userebbe ffWMA per la
decodifica audio.
Se tutto ok, puoi usare mencoder, cosi':
mencoder -mc 0 -noodml input.avi -o output.avi -ovc copy -oac mp3lame
-lameopts cbr:br=128:mode=1
Il file che ottieni (output.avi) avra' l'audio ricodificato in mp3
(joint stereo) a 128 kbps CBR.
-- 
Home page di Frank: 
http://fsinapsi.altervista.org
Home page di Giubbe e FAQ: 
http://giubbe.altervista.org


Perfetto, grazie! Ora, se volessi invece che a 128k encodare con 
un'ottima qualità pur mantenendo il formato mp3 che dovrei modificare 
nella stringa? Diciamo di encodare a 192 con un livello molto alto di 
accuratezza (quella che in avidemux puoi regolare da 1 a 9, diciamo che 
la vorrei regolare a 7-8 tanto per dare un'idea...). Un player stand 
alone lo regge un simile audio in mp3 no?
  ciao e grazie per il supporto!
-- 
Un ottimo forum sui player DVD/divx/xvid/mpeg4: 
http://www.quellicheilpc.com/forum

 alone lo regge un simile audio in mp3 no?
-lameopts cbr:br=192:mode=1:aq=1
per quanto riguarda il parametro "aq":
------------------------------------
aq=<0-9>
   algorithmic quality (0 - best/slowest, 9 - worst/fastest)
------------------------------------
se vuoi codificare a VBR, puoi specificare qualcosa del tipo:
-lameopts abr:mode=1:aq=1:br=???
dove al posto di ??? ci metti il bitrate medio che vorresti ottenere
("abr" e' piu' indicato per evitare picchi di bitrate potenzialmente
fastidiosi per i lettori hardware)


 
E' tutto OK (lo riproduce audio/video perfettamente) ma quando lancio 
mencoder ottengo:
MEncoder 1.0pre8-4.1.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) Processor (Family: 6, Model: 4, Stepping: 2)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.
93 audio & 211 video codecs
success: format: 0  data: 0x0 - 0x1000
Win32 LoadLibrary failed to load: avisynth.dll, 
/usr/lib/win32/avisynth.dll, /usr/local/lib/win32/avisynth.dll
Seek failed
============ Sorry, this file format is not recognized/supported 
=============
=== If this file is an AVI, ASF or MPEG stream, please contact the 
author! ===
Cannot open demuxer.
Exiting...
-----------------FINE MESSAGGIO MENCODER---------------
Qualcuno ha idea di come posso fare ora?

 Qualcuno ha idea di come posso fare ora?
o stai usando una versione di mencoder sballata, o hai sbagliato
qualcosa, perche' mencoder e mplayer sono praticamente lo stesso
programma, nel senso che il codice che apre il filmato, lo analizza
e ne riconosce il tipo, e' esattamente lo stesso.
Come prima cosa, mi assicurerei che il file "input.avi" e' un AVI
corretto: dallo in pasto ad avinaptic, e controlla che la voce
"Tipo di contenitore" sia "AVI" oppure "AVI OpenDML".
Se e' un AVI corretto, allora e' praticamente impossibile che
mencoder ti risponda come sopra, quindi prova a ripetere il
comando:
mencoder -mc 0 -noodml input.avi -o output.avi -ovc copy -oac mp3lame
-lameopts cbr:br=128:mode=1
Se ti dice che non riconosce il formato del file, allora quel
mencoder che stai usando e' sballato: buttalo e scarica una versione
buona


 
Era l'ultima versione stabile plf disponibile sul repository. L'avevo
appena installata dopo un aggiornamento del sistema con urpmi.


 appena installata dopo un aggiornamento del sistema con urpmi.
uso mencoder da oltre 4 anni e su molte centinaia di AVI non mi e'
capitato nemmeno una volta che non lo riconoscesse come tale...
Se vuoi collaborare al debugging, mandami un pezzo di tale AVI
(i primi 2-3 mega) in modo che possa analizzarlo per capire perche'
non lo riconosce. Poi cerchero' di correggerlo e mandare una patch
sulla mailing list di sviluppo.
Per creare i primi 2 mega del file, in linux si puo' fare cosi':
dd if=mio_file.avi of=inizio.avi bs=1M count=2
il file "inizio.avi" cosi' ottenuto sara' lungo 2 MB, in modo che
possa inviarmelo a questo indirizzo email (basta che togli "levami"
dall'indirizzo).
Se mencoder non lo riconosce, e' una scoperta notevole :-)



Lo farň appena possibile, grazie per il supporto! ;)


 
Allora, ho trovato un errore nel mio procedimento (gli dicevo la 
directory ma non specificavo il nome del file :) , sono un principiante 
di Linux), ecco cosa ottengo dandogli il percorso e il nome del file 
corretti:
---------INIZIO OUTPUT MENCODER---------------
MEncoder 1.0pre8-4.1.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) Processor (Family: 6, Model: 4, Stepping: 2)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.
93 audio & 211 video codecs
success: format: 0  data: 0x0 - 0xc029800
AVI file format detected.
VIDEO:  [MP43]  320x240  24bpp  30.558 fps  702.0 kbps (85.7 kbyte/s)
[V] filefmt:3  fourcc:0x3334504D  size:320x240  fps:30.56  ftime:=0.0327
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 22050 Hz, 2 ch, s16le, 20.2 kbit/2.86% (ratio: 2519->88200)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))
==========================================================================
videocodec: framecopy (320x240 24bpp fourcc=3334504d)
Cannot set LAME options, check bitrate/samplerate, some very low bitrates
(<32) need lower samplerates (i.e. -srate 8000).
If everything else fails, try a preset.
Exiting...
------------FINE OUTPUT-----------------------
Ora immagino che tutto sia piů chiaro e il problema di facile 
risoluzione (immagino ci sia da cambiare la frequenza di campionamento).
Tu come la vedi? Basta cambiare la stringa di lancio di mencoder? Se si 
come per ottenere un ottimo risultato compatibile comunque con i player 
stand alone?
  ciao e grazie per il supporto! ;)


 risoluzione (immagino ci sia da cambiare la frequenza di campionamento).
il campionamento dell'audio da cui parti e' 22050 Hz, quindi non c'e'
da fare alcun resample. Dovrebbe bastare l'opzione che gia' ti avevo dato,
cioe' "-lameopts cbr:br=128:mode=1". Tu quale hai dato? Suppongo "br=192"
che in questo caso (22050 Hz) non va bene...
Inoltre vedo che il WMA e' codificato a bitrate veramente basso
(20 kbps)... ma lo senti bene o un po' metallico?
I 128 kbps che ti ho consigliato sono anche troppi, di sicuro 192 non
vanno bene, a meno che non aggiungi un'opzione del tipo
"-af resample=44100", ma ti conviene evitare il resample e mettere
un bitrate tipo 96 o 64, cioe': "-lameopts cbr:br=96:mode=1"


 
Ho usato 128 e ha lavorato, ora lo proverò sul player da tavolo.
Ecco l'output di mencoder:
stringa usata per il lato audio"-lameopts cbr:br=128:mode=1:aq=9"
MEncoder 1.0pre8-4.1.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) Processor (Family: 6, Model: 4, Stepping: 2)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.
93 audio & 211 video codecs
success: format: 0  data: 0x0 - 0xc029800
AVI file format detected.
VIDEO:  [MP43]  320x240  24bpp  30.558 fps  702.0 kbps (85.7 kbyte/s)
[V] filefmt:3  fourcc:0x3334504D  size:320x240  fps:30.56  ftime:=0.0327
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 22050 Hz, 2 ch, s16le, 20.2 kbit/2.86% (ratio: 2519->88200)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))
==========================================================================
videocodec: framecopy (320x240 24bpp fourcc=3334504d)
MP3 audio selected.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not 
writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not 
writing vprp header.
Pos:2200.5s  67243f (100%) 515.55fps Trem:   0min 216mb  A-V:0.000 [702:127]
CBR audio: 16000 bytes/sec, 418 bytes/block
Writing index...
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not 
writing vprp header.
Video stream:  702.053 kbit/s  (87756 B/s)  size: 193110694 bytes 
2200.526 secs  67243 frames
Audio stream:  128.000 kbit/s  (15999 B/s)  size: 35201358 bytes 
2200.085 secs
	grazie!


 
Ad una prima rapida visione con KMplayer sembra che spostandosi verso la 
fine del filmato (all'inizio del filmato non sono in grado di valutarlo) 
l'audio sia leggermente anticipato (1 o 2 decimi di secondo) cosa che 
non avviene con il filmato originale.


 non avviene con il filmato originale.
il filmato AVI da cui parti presenta alcuni problemini di suo: il primo
e' che contiene "null frames" (che solitamente rendono difficili
successivi remuxing), ad ogni modo puoi provare a ricodificare
togliendo l'opzione "-mc 0" che ti avevo consigliato, ma in quel caso
dovresti ricodificare anche il video... (io metto sempre "-mc 0"
perche', quando non si codifica il video, solitamente fa danni).
Il secondo (e credo dipenda pricnipalmente da quello) e' che il tizio
che lo ha muxato deve essersi impegnato a sincronizzare audio e video
usando un programma che ha adottato un "trucco sporco", cioe' ha
modificato il bitrate nell'header della traccia audio: per saperlo ti
basta guardare il report di avinaptic, il bitrate della traccia era un
numero spurio (20 e qualche decimale kbps CBR) mentre, se analizzi il
file WMA sara' probabilmente CBR ma non certo quel valore (sara' un
valore intero vicino a quello).
Questi trucchetti per sincronizzare audio e video in un AVI
rendono molto difficile una ricodifica mantenendo la sincronia.
In questi casi, quando l'asincronia e' abbastanza evidente, io
decomprimo preventivamente l'audio salvandolo in WAV, calcolo il
rapporto tra bitrate effettivo e bitrate taroccato, e
ricampiono il WAV in modo che si allunghi (o si accorci) della
giusta misura (giusta ai fini del sincronismo con il video).
Ad esempio, se la traccia WAV e' decomp.wav a 44100 Hz e il
rapporto in questione e' 1.031, calcolo 44100*1.031=45467
quindi impartisco questo comando:
sox -r 45467 decomp.wav -r 44100 nuovo.wav resample
la prima opzione "-r 45467" ha l'effetto di far credere a sox
che il wav abbia un samplerate di 45467 (mentre invece ne ha 44100)
mentre il secondo serve per fare il resample.
In questo modo, nuovo.wav viene accorciato della lunghezza giusta.
Comunque, tutto sta a vedere se ne vale la pena, altrimenti lascio
perdere.
Ma sei sicuro che il tuo lettore da tavolo non legga l'audio WMA?
Avro' testato almeno una decina di lettori (personalmente ne ho
avuti 4, e ne ho tuttora 3 funzionanti) e tutti leggono il WMA...
Anche i miei due lettorini di MP3 (quelli che sembrano chiavette
USB) leggono anche i file WMA...


 stringa usata per il lato audio"-lameopts cbr:br=128:mode=1:aq=9"
perche' hai messo aq=9?
Ti ricordo che ti avevo consigliato aq=1
(9 e' la qualita' peggiore)


 
Dichiara di leggerlo (non so se in formato file audio singolo o anche
accoppiato ad un video) ma questo filmato me lo riproduce senza audio.
Non so se in passato gli ho dato in pasto altri filmati con wma, se si 
me li ha riprodotti correttamente con l'audio...


Distrazione :(
Cmq non ho ancora masterizzato, sono ancora in tempo a ricodificarlo.
Per quanto riguarda l'audio non perfettamente sincronizzato credo che me 
lo terrň cosě: il difetto č minimo e non disturba la visione.
Grazie del supporto!


 lo terrň cosě: il difetto č minimo e non disturba la visione.
cerca di capire se l'asincronia e' costante o progressiva.
Il rimedio a cui avevo accennato nel precedente post riguarda solo
la progressiva (perche' ho immaginato che sia cosi' in questo
caso).
Se pero' e' costante, si rimette a posto in un attimo: mandi
in riproduzione con mplayer e premi i tasti '+' e '-' finche'
non e' sincrono. A quel punto prendi quel valore (e' un multiplo
di 100 millisecondi, positivo o negativo a seconda se l'audio
va anticipato o ritardato) e lo imposti sull'AVI con avinaptic
(Modifica->Imposta_ritardi, selezioni "anticipo" o "ritardo"
inserisci la quantita', e confermi).
Un'altra possibilita' e' guardare se dal tempo a cui risale la
tua versione di mencoder (un annetto fa, a giudicare dalla versione
e dal "(C)2000-2006") ad adesso sono stati apportati miglioramenti
relativi alla sincronia A/V in casi di remuxing/ricodifica di
questo tipo...
Infine, puoi vedere se riesci a ottenere di meglio con gli altri
programmi (VDubMod, avidemux ecc)


 
Ho rifatto il lavoro con avidemux (sotto WinXP sp2) settando a 0 il
livello dell'algoritmo del LAME. Ci ha messo 3 ore e mezza contro i due
minuti di Mencoder: che sia tutto dovuto all'algoritmo regolato sullo 0
anzichč sul 9 come avevo invece settato in Mencoder?


 anzichč sul 9 come avevo invece settato in Mencoder?
3 ore e mezza per ricodificare soltanto 36 minuti di audio mi sembrano
davvero eccessive, per qualsiasi pc.
Sei sicuro che non hai ricodificato anche il video?



Il video era CERTAMENTE settato su "COPY" (ho toccato solo la 
configurazione di video e audio del file, le opzioni del programma 
diverse da queste non le ho toccate).
Sembra eccessivo anche a me, per quello chiedevo. Però non so quanto sia 
estremo l'aumento di calcolo necessario per codificare l'audio con la 
qualità settata a 0 anzichè a 9 (ricordo che in passato ai tempi dei k6 
200 mhz e pentium mmx 200 esistevano encoder molto esigenti e precisi 
che per fare una canzone in mp3 ci mettevano una cinquantina di minuti 
viceversa con altri, tipo audiocatalyst se non ricordo male, ci volevano 
2-3 minuti. Il tutto a discapito dell'accuratezza del calcolo in fase di 
codifica)...
C'è da dire che su Linux il PC non faceva altro mentre su Win stava 
lavoricchiando Azureus (client bittorrent) ma non credo che basti a 
giustificare una simile lentezza...
La CPU è un 800 Mhz (AMD Thunderbird).


 qualità settata a 0 anzichè a 9
comunque non valeva la pena per ricodificare un audio che parte gia' da
20 kbps (per codificare entrambi i canali) :-)
Ma poi com'e' andata a finire? Il risultato di avidemux e' venuto 
tutto sincrono?



Me lo sono guardato nella versione di mencoder, la versione di avidemux 
č analoga (forse l'audio č un po' migliore, certamente quando salto da 
un punto all'altro con un player da PC non mi fa un rumore stridulo 
metallico alla ripartenza) a quella ottenuta con mencoder.
Ciao e grazie per l'aiuto!!
-- 
(freedom for Burma)

 metallico alla ripartenza) a quella ottenuta con mencoder.
ora che mi ci fai pensare, anche a me succede di sentire rumori striduli
quando salto da un punto all'altro di un filmato (con i lettori
stand-alone non mi e' mai capitato... per quanto siano limitati, almeno
questa seccatura sono riusciti a evitarla).
A volte sento rumori striduli anche quando salto da un punto all'altro
di un mp3 (non dentro un filmato), ma dipende dal player: con alcuni
non succede mai...
Nel caso di un filmato AVI, la differenza che hai riscontrato potrebbe
essere spiegabile dal tipo di muxing: mencoder muxa i CBR "spezzando"
i frame tra i chunks (si vede dalla voce "chunks-aligned" del rapporto
avinaptic), mentre altri muxer non spezzano i frames... E forse per
un player puo' fare la differenza, perche', quando salti da un punto
all'altro, si ritrovano all'inizio esatto di frame... Comunque,
basterebbe modificare leggermente i decoders per evitare l'emissione
di tali rumoracci...
