Newsgroup: it.comp.software.divx
Titolo: Unire avi doppio audio con Avidemux

Forse è una banalità, ma non ci riesco.
Ho caricato il primo pezzo, poi ho fatto "append" del secondo.
Audio=copy
Video=copy
Format=AVI
Save
Ma il risultato ha solo la prima traccia
Posso salvare in avi dual audio, ma devo scegliere la seconda da fonte
esterna.
Sapete dirmi come fare, o consigliarmi un'applicazione Linux equivalente che
lo faccia?
Grazie
FRA

 che lo faccia?
per unire piu' AVI (anche con piu' tracce audio) sotto Linux io uso
sempre la piccola utility "avimerge" del pacchetto "transcode".
Esempio di utilizzo:
avimerge -o intero.avi -i parte1.avi parte2.avi
-- 
Home page di Frank: 
http://fsinapsi.altervista.org
Home page di Giubbe e FAQ: 
http://giubbe.altervista.org

 avimerge -o intero.avi -i parte1.avi parte2.avi
Funziona, ti ringrazio.
Purtroppo i file tagliati e poi riuniti spesso hanno una decina di
fotogrammi ripetuti, nel punto dell'unione, tra 2 keyframe identici.
Con cosa posso tagliarli, senza perdere la seconda traccia?
Con Avidemux avrei fatto tutto in una sola passata, ma se non riesco a farlo
funzionare... :-\
Ciao
FRA

 fotogrammi ripetuti, nel punto dell'unione, tra 2 keyframe identici.
se, prima di fare l'unione, ti posizioni con Avidemux sull'ultimo
keyframe della prima parte e tagli via da quel frame fino alla fine,
e risalvi in direct stream copy, il risultato conserva tutte le
tracce audio?
Se questo funziona, non hai che da unire con avimerge la prima parte
privata della parte finale (con Avidemux), alla seconda parte cosi'
com'e'


 tracce audio?
Non ho trovato dove dare "direct stream copy". Ho solo impostato "copy" sia
ad audio che a video, come avevo fatto prima, e come prima mi ha salvato
solo la prima traccia.
Non è che ti stai confondendo con VirtualDubMod?
Quello funziona bene, ma lo ho trovato solo per Windows.

 solo la prima traccia.
si', intendevo quello.
E' che non lo uso mai e non sapevo di questo limite...
Penso che per questo scopo si possa usare "avisplit", sempre dal
pacchetto transcode.
Potresti procedere piu' o meno cosi':
1) ti annoti il "timestamp" del frame precedente all'ultimo keyframe
   della prima parte;
2) usi "avisplit" per ricreare la prima parte del filmato, privata
   dell'ultimo segmento (quello che inizia dall'ultimo keyframe);
3) usi "avimerge" per unire il filmato ottenuto al punto 2) alla
   seconda parte del film.
Esempio.
Supponiamo che la posizione dell'ultimo keyframe della prima parte
sia 82348 e che il framerate sia 25 fps.
Il timestamp che ci serve e' "00:54:53.91"
Quindi useremo il comando:
avisplit -i parte1.avi -o nuovo -t 00:00:00.00-00:54:53.91
Se tutto va bene, questo comando produrra' il file nuovo-0000
che conterra' i primi 82348 frames della prima parte (e le due
relative tracce audio).
Resta adesso il punto 3) che e' il piu' facile...


Dopo numerosi tentativi ho capito che, essendo il keyframe da cui eliminare
i frame in eccesso 00:48:21.680 (680 sono i millisecondi indicati da
Avidemux) l'input corretto da dare a avisplit era
00:48:21.5
dove 5 indica un numero di frame, a dispetto di quanto scritto sia nel man
che nell'help sintetico (là si parla di millisecondi)
Quello che non ho ancora capito è: che tipo di conversione devo fare?
Il risultato ora è perfetto, ma se lo dovessi rifare, dovrei fare almeno un
tentativo a vuoto per sapere come impostare avisplit.
Saluti
FRA

 tentativo a vuoto per sapere come impostare avisplit.
se ho capito bene, bisognerebbe calcolare il numero di frame che
corrisponde alla sola parte "00:48:21", poi si aggiunge il punto seguito
dalla differenza tra il frame desiderato e quello.
Domani lo guardero' meglio e faro' qualche prova...


 Domani lo guardero' meglio e faro' qualche prova...
Mi sembra che la formula sia (ms/40)-12
dove ms sono i millisecondi
40 la durata in millisecondi di un frame
12 un bel numerello da inserire nella formula :-)
A parte queste disavventure, transcode sembra essere un bel pacchetto.
Adesso ci vorrebbe un bel frontend fatto bene...
Ciao
FRA

On 20-Feb-07 Francesco Messina wrote:



> Adesso ci vorrebbe un bel frontend fatto bene...
a dire il vero non ho idea se ne esista uno, cerchero'...
Per il momento sarebbe gia' utile sapere velocemente il timestamp da
mettere nell'opzione -t di avisplit per togliere l'ultimo segmento
(dall'ultimo keyframe in poi).
Il mio programma mostra gia' l'indice dell'ultimo keyframe degli AVI,
cosi':
Key frames:1912 (0; 250; 500; 750; 1000; ... 182348)


 Key frames:1912 (0; 250; 500; 750; 1000; ... 182348)
Non ho provato a mettere un numero "secco" di frame in avisplit, ma temo che
non funzioni.

 che non funzioni.
avrei pensato lo stesso, ma facendo una veloce prova, sembra invece
che funzioni :-)
Ricapitolando, si potrebbe procedere in questo modo:
1) si individua l'indice dell'ultimo keyframe, chiamiamolo k;
2) si calcola n = k-1;
3) si usa il comando "avisplit -i ... -o ... -t 0-n"
   (n e' il numero calcolato al punto 2))
4) si unisce con "avimerge"
Il punto 1) puo' essere individuato con Avidemux, oppure alla voce
"Key frames" del rapporto generato dal mio programma; esempio:
Key frames: 1912 (0; 250; 500; 750; 1000; ... 182348)
In questo caso, k=182348, quindi bisognera' usare il comando:
avisplit -i parte1.avi -o nuovo -t 0-182347
Se scopri che il metodo non funziona, avvertimi :-)


 Se scopri che il metodo non funziona, avvertimi :-)
Fra un paio di giorni, probabilmente, avrò un caso analogo. Ti farò sapere

 diretto?
il numero e' riportato nel campo nell'angolo in basso a sinistra.
Se non ce l'hai, forse hai una versione differente dalla mia (2.3.0)


 il numero e' riportato nel campo nell'angolo in basso a sinistra.
No, ho la stessa versione, è che dormo anche di giorno. Era pure bene in
vista.
Adesso devo fare la stessa operazione di ieri. Ora ho un filmato che in
avidemux, andando passo-passo, fa 3 passi avanti e uno indietro. I frame
sembrano nell'ordine 1, 4, 3, 6, 5, 8, 7, 10, ecc. Se faccio il play in
avidemux, l'audio è perfetto, ma il video sembra abbia il Parkinson
Se uso Videolan, Mplayer o Kaffeine, si vede invece senza problemi. Questo
come lo affronto?
Allego in fondo l'output del tuo programma.
Ho provato alcumi dei frontend di cui parlavamo ieri.
Quelli che ho indicato io sembrano tutti specificamente orientati alla
produzione di DVD o VCD, mentre gtranscode non si occupa di taglia e cuci,
ma fa solo quello che il nome suggerisce. Nessuno mostra i fotogrammi.
Sai se qualcuno stia tentando un porting dei vari VirtualDub? Tra l'altro mi
sembra che siano già in GPL
-----------------------------------
[ Info sul file ]
Nome: TG1.avi
Data: 21/02/2007 20:23:38
Dimensione: 735,049,728 bytes
[ Info generiche ]
Durata: 00:41:06 (2465.84 s)
Tipo di contenitore: AVI OpenDML
Streams totali: 3
Tipo stream n. 0: video
Tipo stream n. 1: audio
Tipo stream n. 2: audio
Audio streams: 2
ISFT: VirtualDubMod 1.5.10.1 (build 2366/release)
JUNK: VirtualDubMod build 2366/release
[ Traccia video ]
FourCC: divx/DX50
Risoluzione: 672 x 368
Frame aspect ratio: 42:23 = 1.826086 (~1.85:1)
Pixel aspect ratio: 1:1 = 1
Display aspect ratio: 42:23 = 1.826086 (~1.85:1)
Framerate: 25 fps
Frames totali: 61646
Stream size: 543,173,547 bytes
Bitrate: 1762.234522 kbps
Qf: 0.285040
Key frames: 348 (0; 300; 536; 537; 566; ... 61346)
Null frames: 0
Min key int: 1
Max key int: 300
Key int medio: 177.143678
Ritardo: 0 ms
[ Traccia audio n. 1 ]
Audio tag: 0x2000 (AC3)
Bitrate: 448 kbps CBR
Canali: 6
Frequenza: 48000 Hz
Chunks: 61635
Stream size: 138,087,040 bytes
Ritardo: 0 ms
[ Traccia audio n. 2 ]
Audio tag: 0x55 (MP3)
Bitrate: 160 kbps CBR
Canali: 2
Frequenza: 48000 Hz
Chunks: 61634
Stream size: 49,316,640 bytes
Ritardo: 0 ms
[ Info sulla codifica MPEG4 ]
User data: DivX503b1314p
QPel: no
GMC: no
Interlaced: no
Aspect ratio: Square pixels
Quant type: H.263
Rapporto generato da AVInaptic (9-02-2007) in data 21 feb 2007, h 21:44:57

 Questo come lo affronto?
Ho avuto fortuna: era stato tagliato bene.
Un avimerge diretto ed č andato a posto.

 mi sembra che siano già in GPL
il problema dei vari VirtualDub e' che, sebbene open source, il grosso
del programma e' legato (imprigionato) a specifiche API di Windows (ad
esempio, per il video usa VFW). Da una parte questa e' una buona cosa
perche' persegue l'obiettivo di "modularita'"; il grande vantaggio, ad
esempio, e' che installando nuovi moduli vfw, il programma puo' gestire
nuovi tipi di filmati. Lo svantaggio e' che perde totalmente la
portabilita' su altri sistemi che non usano quelle API: in un certo
senso aderire alle specifiche API di Windows e' una specie di "trappola"
che lega un programma in modo esclusivo a quel sistema operativo...
