2013-07-02 17 views
5

sto cercando di unire due video insieme, entrambi hanno la trasparenza, utilizzando il comandoFFmpeg - Unire video con trasparenza

ffmpeg.exe -i person2.mov -vf "[in] scala = IW/2: ih/2, fade = out: 300: 30: alpha = 1, pad = 2 * iw: ih [left]; movie = person2.mov, scale = iw/2: ih/2, fade = out: 300: 30 : alpha = 1 [destra]; [sinistro] [destra] overlay = main_w/3: 0, dissolvenza = out: 300: 30: alpha = 1 [out]" -b: v 768k Output_people.mov

Così facendo ottengo il seguente risultato:

http://i263.photobucket.com/albums/ii122/Fernando461/Untitled.png

Come potete vedere, è stato possibile mettere i due video uno sopra l'altro. Ma poi, quando provo a unire questo video (Output_people.mov) con un altro video, non ha la stessa trasparenza. È possibile mantenere la trasparenza nel risultato?

Edit 1:

Questa è l'uscita ottengo: https://www.dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log

E per "non ha lo stesso transparecy" Mi ha fatto sì che lo sfondo è nero invece di essere trasparenti, in modo da se metto un video uno sopra l'altro, quello nella parte posteriore è coperto da una parte nera di quella nella parte anteriore.

Modifica 2: Aggiunta di qcodec in -vcodec al codice lavorato. Grazie mark4o!

+0

Mostrare l'uscita della console ffmpeg completa. Cosa intendi con "quando tento di unire questo video (Output_people.mov) con un altro video, non ha la stessa trasparenza"? – LordNeckbeard

+0

Per "quando provo a unire questo video (Output_people.mov) con un altro video, non ha la stessa trasparenza", intendevo dire che non c'è trasparenza, invece ho solo uno sfondo nero. – user1829136

+0

Dovresti anche mostrare il tuo comando e l'output completo della console per quando "unisci" Output_people.mov' (puoi omettere '-report'). – LordNeckbeard

risposta

7

Non è stato specificato un codec video per l'output, quindi sta utilizzando il codec video predefinito per i file .mov che è H.264 (codificatore libx264). Tuttavia H.264 non supporta un canale alfa. Se si desidera la trasparenza nel video di output, sarà necessario specificare un codec video di output che supporti un canale alfa, come quello utilizzato per il proprio input, ad esempio QuickTime Animation RLE (qtrle). Per fare ciò, aggiungi l'opzione -c:v qtrle prima del nome del file di output. Un altro codec che supporta un canale alfa e può essere memorizzato nei file .mov è png.

È possibile controllare l'elenco degli encoder supportati dal proprio ffmpeg con ffmpeg -encoders. Un comando come ffmpeg -h encoder=qtrle elencherà le informazioni specifiche per quell'encoder, inclusi i formati di pixel supportati. Un formato pixel che include la stringa argb, rgba, abgr, bgra, gbra o yuva ha un canale alfa.