ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะรวมไฟล์วิดีโอโดยใช้cat
คำสั่ง? ฉันหมายถึงไฟล์ผลลัพธ์จะเล่นอย่างราบรื่นหรือไม่
ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะรวมไฟล์วิดีโอโดยใช้cat
คำสั่ง? ฉันหมายถึงไฟล์ผลลัพธ์จะเล่นอย่างราบรื่นหรือไม่
คำตอบ:
ใช่มันเป็นไปได้ แต่ไม่ใช่ทุกรูปแบบที่รองรับ
คอนเทนเนอร์มัลติมีเดียจำนวนเล็กน้อย (MPEG-1, MPEG-2 PS, DV) อนุญาตให้เข้าร่วมไฟล์วิดีโอโดยทำการต่อไฟล์เข้าด้วยกันเท่านั้น
เมื่อแปลงเป็นรูปแบบ RAW คุณก็มีโอกาสสูงที่ไฟล์จะสามารถต่อกันได้
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
แต่การใช้cat
วิธีนี้จะสร้างไฟล์ระดับกลางซึ่งไม่จำเป็น นี่เป็นวิธีที่ดีกว่าในการหลีกเลี่ยงการสร้างไฟล์กลาง:
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
มีไฟล์สื่อสองชนิด
สตรีม
ไม่ใช่สตรีม
ความแตกต่างที่สำคัญคือวิธีที่ทั้งสองรูปแบบไฟล์ฝังข้อมูลเมตา ด้วยรูปแบบที่ไม่สามารถสตรีมเมตาดาต้า - ซี ("ส่วนหัว") จะถูกจัดเก็บในตำแหน่งที่ระบุในไฟล์ซึ่งโดยปกติจะเป็นจุดเริ่มต้นซึ่งบางครั้งก็เป็นจุดสิ้นสุด คุณไม่สามารถต่อไฟล์เหล่านี้เข้าด้วยกันได้เนื่องจาก meta-data จากไฟล์หนึ่งไฟล์จะอยู่ในตำแหน่งที่ไม่ได้มาตรฐานและจะถูกละเว้น
OTOH รูปแบบที่สามารถสตรีมได้ต้องสามารถจัดการกับผู้ฟังที่จะเริ่มเล่นไฟล์ "อยู่ตรงกลาง" ดังนั้นรูปแบบเหล่านี้จะส่งเมตาดาต้าไปเรื่อย ๆ และยังอนุญาตให้อัปเดตภายในไฟล์ / สตรีม รูปแบบเหล่านี้สามารถตัดแบ่งได้อย่างง่ายดาย
ดังที่BЈовићกล่าวโดยทั่วไปแต่ละไฟล์มีส่วนหัวของตนเอง ลองด้วยตัวอย่างนี้จากUbuntu How To's :
mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi
ไม่เป็นไปไม่ได้เพราะทุกไฟล์วิดีโอมีส่วนหัว ในการรวมวิดีโอคุณต้องใช้เครื่องมือ (เช่นffmpegหรือmencoder )