2013-07-02 13 views
5

Próbuję połączyć razem dwa filmy, oba mają przejrzystości, używając poleceniaFFmpeg - Scalanie wideo z przezroczystością

ffmpeg.exe -i person2.mov -vf „[w] = skali 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 [right]; [left] [right] overlay = main_w/3: 0, fade = out: 300: 30: alpha = 1 [out] "-b: v 768k Output_people.mov

W ten sposób otrzymuję następujący wynik:

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

Jak widać, było możliwe, aby dwa filmy były ułożone jeden na drugim. Ale wtedy, kiedy próbuję połączyć to wideo (Output_people.mov) z innym wideo, to nie ma takiej samej przezroczystości. Czy można zachować przejrzystość wyniku?

Edit 1:

To wyjście uzyskać: https://www.dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log

I przez „nie ma tego samego transparecy” miałem na myśli, że tło jest czarne zamiast być przejrzyste, tak jeśli umieściłem jeden film jeden na drugim, ten z tyłu jest pokryty czarną częścią z przodu.

Edytuj 2: Dodawanie -vcodec qtrle do kodu działa. Dzięki mark4o!

+0

Proszę pokazać pełne dane wyjściowe konsoli ffmpeg. Co masz na myśli mówiąc: "kiedy próbuję scalić to wideo (Output_people.mov) z innym filmem, nie ma takiej samej przezroczystości"? – LordNeckbeard

+0

"Gdy próbuję scalić to wideo (Output_people.mov) z innym filmem, nie ma tej samej przezroczystości", miałem na myśli, że nie ma przezroczystości, zamiast tego dostaję tylko czarne tło. – user1829136

+0

Powinieneś również pokazać komendę i kompletne wyjście konsoli dla "scalania" 'Output_people.mov' (możesz pominąć' -report'). – LordNeckbeard

Odpowiedz

7

Nie określono kodeka wideo dla danych wyjściowych, więc używa on domyślnego kodeka wideo dla plików .mov, który jest koderem H.264 (koder libx264). Jednak H.264 nie obsługuje kanału alfa. Jeśli chcesz uzyskać przezroczystość wyjściowego wideo, musisz określić wyjściowy kodek wideo obsługujący kanał alfa, taki jak ten używany do wprowadzania danych, tj. QuickTime Animation RLE (qtrle). Aby to zrobić, dodaj opcję -c:v qtrle przed nazwą pliku wyjściowego. Inny kodek obsługujący kanał alfa, który może być przechowywany w plikach .mov to png.

Możesz sprawdzić listę enkoderów obsługiwanych przez ffmpeg z ffmpeg -encoders. Polecenie takie jak ffmpeg -h encoder=qtrle wyświetli informacje specyficzne dla tego kodera, w tym obsługiwane formaty pikseli. Format pikseli, który zawiera ciąg argb, rgba, abgr, bgra, gbra lub yuva ma kanał alfa.

Powiązane problemy