Menggabungkan dua klip video menjadi satu, menempatkannya di samping satu sama lain


38

Saya punya dua klip video. Keduanya 640x480 dan 10 menit terakhir. Satu berisi audio latar belakang, yang lain aktor bernyanyi. Saya ingin membuat satu klip video 10 menit berukuran 1280x480 (dengan kata lain, saya ingin menempatkan video di samping satu sama lain dan memutarnya secara bersamaan, mencampur audio dari kedua klip). Saya sudah mencoba mencari tahu bagaimana melakukan ini dengan ffmpeg / avidemux, tetapi sejauh ini saya kosong. Mereka semua mengacu pada penggabungan ketika saya mencari penggabungan.

Ada rekomendasi?

Jawaban:


45
ffmpeg \
  -i input1.mp4 \
  -i input2.mp4 \
  -filter_complex '[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' \
  -map [vid] \
  -c:v libx264 \
  -crf 23 \
  -preset veryfast \
  output.mp4

Ini pada dasarnya menggandakan ukuran input1.mp4 dengan melapisi sisi kanan dengan hitam ukuran yang sama dengan video asli, dan kemudian menempatkan input2.mp4 di atas area hitam itu dengan filter overlay.

Sumber: https://superuser.com/questions/153160/join-videos-split-screen


Apa yang -map [vid]harus dilakukan
0xcaff

@caffinatedmonkey [vid]adalah apa yang disebut linklabel , yang merupakan label tautan keluaran yang ditentukan dalam grafik filter (baris di atas dengan filter_complex). Ini memetakan output dari grafik filter kompleks ke file output.
Jan

Saya mendapatkan Unrecognized option 'crf'. Galat saat memecah daftar argumen: Opsi tidak ditemukan. Jika saya menghapus crkemudianunrecognized option 'preset'
RS

Mendapatkanno such filter
user1767754

25

Sejujurnya, menggunakan jawaban yang diterima menghasilkan banyak frame yang hilang untuk saya.

Namun, menggunakan hstackfilter_complex menghasilkan output yang sempurna:

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4

22

Ini dapat dilakukan hanya dengan dua filter dan audio dari kedua input juga akan disertakan.

ffmpeg -i left.mp4 -i right.mp4 -filter_complex \
"[0:v][1:v]hstack=inputs=2[v]; \
 [0:a][1:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 output.mp4
  • hstack akan menempatkan setiap video berdampingan.
  • amerge akan menggabungkan audio dari kedua input menjadi satu, aliran audio multichannel, dan -ac 2akan membuatnya stereo; tanpa opsi ini stream audio dapat berakhir sebagai 4 saluran jika kedua input stereo.

Halo, dapatkah saya overlay satu video ke video lain?
Nisarg

@Nisarg Gunakan filter hamparan .
llogan

Saya ingin video atas sedikit transparan sehingga orang dapat melihat apa yang terjadi di latar belakang, Bisakah Anda membantu saya dengan itu?
Nisarg

Hello Sir, Bisakah Anda peduli untuk melihat ini keluar.
Nisarg

1
Saya kehilangan audio dengan jawaban yang diterima. Yang ini bekerja dengan sempurna.
Matt Hough

2
ffmpeg -y -ss 0 -t 5 -i inputVideo1.mp4 -ss 0 -t 5 -i inputVideo2.mp4 -i BgPaddingImage.jpg -filter_complex nullsrc=size=720*720[base];[base][2:v]overlay=1,format=yuv420p[base1];[0:v]setpts=PTS-STARTPTS,scale=345*700[upperleft];[1:v]setpts=PTS-STARTPTS,scale=345*700[upperright];[base1][upperleft]overlay=shortest=1:x=10:y=10[tmp1];[tmp1][upperright]overlay=shortest=1:x=366:y=10 -c:a copy -strict experimental -ss 0 -t 5 -preset ultrafast -an output.mp4

Tambahkan Dua Video Berdampingan dan Juga Tambahkan Gambar OverLay Yang Tunjukkan Pada Video Padding Dengan Anda dapat mengubah Background Gambar di [BgPaddingImage.jpg]sini mengatur jalur gambar bg Anda.

Tunjukkan di bawah ini Video yang dibuatnya dari atas perintah

masukkan deskripsi gambar di sini


1
Bahasa apa ini? Bagaimana Anda menjalankannya?
muru

@muru Periksa sekarang Perintah FFMPEG nya ?? :)
Sanjay Hadiya
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.