เป็นไปได้หรือไม่ที่จะรวมไฟล์วิดีโอโดยใช้ `cat '


18

ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะรวมไฟล์วิดีโอโดยใช้catคำสั่ง? ฉันหมายถึงไฟล์ผลลัพธ์จะเล่นอย่างราบรื่นหรือไม่


1
คุณเคยลองไหม
นาย Lister

3
จริง ๆ แล้วฉันทำ แต่อย่างใดผลลัพธ์ไม่ได้มีไฟล์ที่สองแม้ว่าขนาดไฟล์จะเป็นผลรวมของทั้งสอง
Hamed Momeni

คำตอบ:


21

ใช่มันเป็นไปได้ แต่ไม่ใช่ทุกรูปแบบที่รองรับ

ffmpeg คำถามที่พบบ่อย :

คอนเทนเนอร์มัลติมีเดียจำนวนเล็กน้อย (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

1
คุณยังไม่ได้สร้างไฟล์ระดับกลางในรุ่นที่สองใช่ไหม
John Gowers

6

มีไฟล์สื่อสองชนิด

  • สตรีม

  • ไม่ใช่สตรีม

ความแตกต่างที่สำคัญคือวิธีที่ทั้งสองรูปแบบไฟล์ฝังข้อมูลเมตา ด้วยรูปแบบที่ไม่สามารถสตรีมเมตาดาต้า - ซี ("ส่วนหัว") จะถูกจัดเก็บในตำแหน่งที่ระบุในไฟล์ซึ่งโดยปกติจะเป็นจุดเริ่มต้นซึ่งบางครั้งก็เป็นจุดสิ้นสุด คุณไม่สามารถต่อไฟล์เหล่านี้เข้าด้วยกันได้เนื่องจาก meta-data จากไฟล์หนึ่งไฟล์จะอยู่ในตำแหน่งที่ไม่ได้มาตรฐานและจะถูกละเว้น

OTOH รูปแบบที่สามารถสตรีมได้ต้องสามารถจัดการกับผู้ฟังที่จะเริ่มเล่นไฟล์ "อยู่ตรงกลาง" ดังนั้นรูปแบบเหล่านี้จะส่งเมตาดาต้าไปเรื่อย ๆ และยังอนุญาตให้อัปเดตภายในไฟล์ / สตรีม รูปแบบเหล่านี้สามารถตัดแบ่งได้อย่างง่ายดาย


ตัวอย่างเช่น ogg: stackoverflow.com/questions/27980960/…
BlackShift

1

ดังที่BЈовићกล่าวโดยทั่วไปแต่ละไฟล์มีส่วนหัวของตนเอง ลองด้วยตัวอย่างนี้จากUbuntu How To's :

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 

0

ไม่เป็นไปไม่ได้เพราะทุกไฟล์วิดีโอมีส่วนหัว ในการรวมวิดีโอคุณต้องใช้เครื่องมือ (เช่นffmpegหรือmencoder )


9
ไม่ค่อยถูกต้องนัก มีรูปแบบวิดีโอที่ไม่มีส่วนหัวเช่น rawvideo หรือ yuv4mpegpipe ซึ่งให้ข้อมูลดิบ นั่นเป็นสาเหตุที่คุณต้องระบุขนาดเฟรมเมื่ออ่านรูปแบบเหล่านั้นเนื่องจากขนาดไม่เป็นที่รู้จักเนื่องจากส่วนหัวที่ขาดหายไป
Marco

2
ทำไมฉันถึงทำไฟล์ DV ได้สำเร็จ?
Pithikos

1
@Pithikos ไม่มีความคิด บางทีคุณอาจใช้เวทย์มนตร์ :)
BЈовић
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.