รวมวิดีโอคลิปสองคลิปเข้าด้วยกันโดยวางไว้ใกล้กัน


38

ฉันมีสองคลิปวิดีโอ ทั้งสองคือ 640x480 และ 10 นาทีสุดท้าย หนึ่งประกอบด้วยเสียงพื้นหลังส่วนอีกคนหนึ่งเป็นนักแสดงร้องเพลง ฉันต้องการสร้างวิดีโอคลิปความยาว 10 นาทีขนาด 1280x480 (อีกนัยหนึ่งฉันต้องการวางวิดีโอไว้ถัดจากกันและเล่นพร้อมกันโดยผสมเสียงจากคลิปทั้งสอง) ฉันพยายามที่จะคิดออกว่าจะทำอย่างไรกับ ffmpeg / avidemux แต่จนถึงตอนนี้ฉันก็ว่างเปล่า พวกเขาทั้งหมดอ้างถึงการต่อข้อมูลเมื่อฉันค้นหาการรวม

คำแนะนำใด ๆ

คำตอบ:


44
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

วิธีนี้จะเพิ่มขนาดของ input1.mp4 เป็นสองเท่าโดยการเติมด้านขวาด้วยสีดำขนาดเดียวกับวิดีโอต้นฉบับแล้ววาง input2.mp4 ที่ด้านบนของพื้นที่สีดำนั้นด้วยตัวกรองซ้อนทับ

ที่มา: https://superuser.com/questions/153160/join-videos-split-screen


อะไร-map [vid]ทำอย่างไร
0xcaff

@caffinatedmonkey [vid]เป็นสิ่งที่เรียกว่าLinkLabelซึ่งเป็นป้ายการเชื่อมโยงการส่งออกที่กำหนดไว้ในกราฟตัวกรอง (เส้นข้างต้นด้วย filter_complex) ที่ มันแมปเอาท์พุทจากกราฟตัวกรองที่ซับซ้อนไปยังไฟล์ที่ส่งออก
Jan

Unrecognized option 'crf'ฉันได้รับ เกิดข้อผิดพลาดในการแยกรายการอาร์กิวเมนต์: ไม่พบตัวเลือก ถ้าผมเอาcrแล้วunrecognized option 'preset'
อาร์เอส

รับno such filter
user1767754


21

สามารถทำได้ด้วยตัวกรองเพียงสองตัวและเสียงจากอินพุตทั้งสองก็จะรวมอยู่ด้วย

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จะวางแต่ละวิดีโอแบบเคียงข้างกัน
  • ผู้ประกอบการจะรวมเสียงจากอินพุตทั้งสองเป็นสตรีมออดิโอแบบหลายช่องสัญญาณเดียวและ-ac 2จะทำให้เป็นสเตอริโอ หากไม่มีตัวเลือกนี้สตรีมเสียงอาจลงท้ายด้วย 4 ช่องสัญญาณหากอินพุตทั้งคู่เป็นสเตอริโอ

สวัสดีฉันสามารถซ้อนทับวิดีโอหนึ่งไปยังวิดีโออื่นได้หรือไม่
Nisarg

@Nisarg ใช้ตัวกรองการซ้อนทับ
llogan

ฉันต้องการวิดีโอบนโปร่งใสเล็กน้อยเพื่อให้สามารถเห็นสิ่งที่เกิดขึ้นในพื้นหลังคุณช่วยฉันได้ไหม
Nisarg

สวัสดีครับคุณช่วยดูแลเรื่องนี้ออกไปได้ไหม
Nisarg

1
ฉันทำเสียงหายด้วยคำตอบที่ยอมรับได้ อันนี้ทำงานได้อย่างสมบูรณ์
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

เพิ่มวิดีโอด้านข้างสองข้างและยังเพิ่มภาพซ้อนทับที่แสดงบน Padding วีดีโอกับคุณสามารถเปลี่ยนภาพพื้นหลัง[BgPaddingImage.jpg]ที่นี่กำหนดเส้นทางภาพ BG ของคุณ

แสดงวิดีโอนี้ใต้สร้างจากคำสั่งด้านบน

ป้อนคำอธิบายรูปภาพที่นี่


1
นี่คือภาษาอะไร? คุณจะเรียกใช้มันได้อย่างไร
muru

@muru ลองดูตอนนี้มันเป็นคำสั่ง FFMPEG หรือไม่? :)
Sanjay Hadiya
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.