ułóż dwa filmy o różnych szerokościach


2

Mam dwa filmy o różnych szerokościach. Chcę układać jeden na drugim, zachowując odpowiednie proporcje. Górne wideo to 1920x1080, a dolne wideo to 3240x1080. Próbowałem:

ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex '[1][0]scale2ref[2nd][ref];[ref][2nd]vstack' -map [vid] -c:v libx264 -crf 23 -preset veryfast output.mp4

Ale otrzymuję: „Dane wyjściowe z etykietą„ vid ”nie istnieją na żadnym zdefiniowanym wykresie filtru lub były już używane gdzie indziej.” Nie jestem pewien, co robię źle tutaj ...

Odpowiedzi:


2

Posługiwać się

ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex '[1][0]scale2ref=iw:ow/mdar[2nd][ref];[ref][2nd]vstack[vid]' -map [vid] -c:v libx264 -crf 23 -preset veryfast output.mp4

Pad wyjściowy vstack nie został oznaczony, więc mapa nie będzie się do niczego odnosić. W zależności od powłoki może być konieczne podanie wartości mapy.


To rzeczywiście nie rzuca błędu (dzięki!), Ale wynik skalował dolne wideo, tak że wysokość jest rozciągnięta, aby pasowała do górnego wideo. Chciałbym, aby dolne wideo miało taki sam format obrazu, jak na początku. Czy istnieje prosta modyfikacja, aby to zadziałało?
pts2

Użyj edytowanego cmd z najnowszą wersją ffmpeg
Gyan

W przypadku, gdy pomoże to w przyszłości, chciałem również dodać dźwięk z górnego wideo (wideo1.mp4) i umieścić go w połączonym wyjściu.mp4 (dolne wideo video2.mp4 nie ma dźwięku). Ten kod działał, aby wykonać to wszystko: ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex '[1] [0] scale2ref = iw: ow / mdar [2nd] [ref]; [ref] [2nd] vstack [vid]; anullsrc [silent]; [0: a] [silent] amerge = input = 2 [a] '-map [vid] -map [a] -c: v libx264 -crf 23 -preset bardzo szybki wynik.mp4
pts2

Możesz pominąć filtry audio i po prostu zrób-map 0:a
Gyan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.