ฉันมีไฟล์ mp4 คุณภาพสูงสองไฟล์ซึ่งเป็นสองส่วนในรายการเดียวกัน
ฉันต้องการรวมพวกเขาเข้าด้วยกันเป็น 1 ไฟล์และฉันมักจะใช้ VirtualDub เพื่อรวมไฟล์ของฉัน ... แต่ดูเหมือนจะไม่สนับสนุน mp4
มีตัวเลือกใดบ้าง (โดยเฉพาะอย่างยิ่งที่ไม่ต้องเข้ารหัสซ้ำ)
ฉันมีไฟล์ mp4 คุณภาพสูงสองไฟล์ซึ่งเป็นสองส่วนในรายการเดียวกัน
ฉันต้องการรวมพวกเขาเข้าด้วยกันเป็น 1 ไฟล์และฉันมักจะใช้ VirtualDub เพื่อรวมไฟล์ของฉัน ... แต่ดูเหมือนจะไม่สนับสนุน mp4
มีตัวเลือกใดบ้าง (โดยเฉพาะอย่างยิ่งที่ไม่ต้องเข้ารหัสซ้ำ)
คำตอบ:
ฉันมักจะใช้ VirtualDub เพื่อรวมไฟล์ของฉัน แต่ดูเหมือนจะไม่รองรับ mp4 มีทางเลือกอะไรบ้าง?
Avidemux มันเหมือนกับ VirtualDub เท่านั้นที่รองรับฟอร์แมทเพิ่มเติมและตัวแปลงสัญญาณและฟิลเตอร์ในตัว ฉันมักจะใช้มันในการตั้งค่า; มันเข้าร่วมไฟล์ AVC + AAC.MP4 (โดยไม่ต้องบันทึกใหม่) ที่ดีสำหรับฉัน
หากต้องการเข้าร่วมพวกเขาใน AviDemux:
ตามฟอรัม AViDemux กระบวนการเข้าร่วมนี้เป็นแบบไม่สูญเสีย ( http://www.avidemux.org/smf/index.php?topic=9467.0 )
คุณสามารถทำได้ด้วย ffmpeg:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
สิ่งนี้ไม่ได้เข้ารหัสอะไรอีกเลยวางไว้ในคอนเทนเนอร์สตรีมการขนส่งใหม่ซึ่งทำให้พวกเขาเชื่อมต่อได้ง่ายขึ้นจากนั้นเชื่อมต่อพวกเขากลับเป็น MP4 หาก output.mp4 มีอยู่แล้วคำสั่งจะล้มเหลว รุ่นข้างต้นใช้ชื่อ pipes ถ้าคุณอยู่ในระบบที่ไม่รองรับไฟล์ที่คุณต้องใช้ไฟล์ระดับกลาง (เช่น windows):
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4
avconv
แทนที่จะทำffmpeg
อย่างไร ฉันสามารถทำสองขั้นตอนแรกให้สำเร็จ แต่สุดท้ายไม่รู้จักตัวเลือก-absf
avconv
สำหรับffmpeg
ในคำสั่งดังกล่าวและมันจะทำงาน
concat demuxer ถูกเพิ่มใน ffmpeg 1.1 หาก ffmpeg เวอร์ชั่นเก่าของคุณรับไบนารีคงที่ใหม่ล่าสุดจากที่นี่: http://www.ffmpeg.org/download.html
สร้างไฟล์ที่mylist.txt
มีไฟล์ทั้งหมดที่คุณต้องการเชื่อมต่อในรูปแบบต่อไปนี้ (บรรทัดที่ขึ้นต้นด้วยเส้นประจะถูกละเว้น):
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'
โปรดทราบว่าสิ่งเหล่านี้อาจเป็นเส้นทางแบบสัมพันธ์หรือแบบสัมบูรณ์ จากนั้นคุณสามารถเข้ารหัสไฟล์ด้วย:
ffmpeg -f concat -i mylist.txt -c copy output
เป็นไปได้ที่จะสร้างไฟล์รายการนี้ด้วย bash for loop หรือใช้ printf หนึ่งในสิ่งต่อไปนี้จะสร้างไฟล์รายการที่มีทุก * .wav ในไดเร็กทอรีการทำงาน:
for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done
printf "file '%s'\n" ./*.wav > mylist.txt
ที่มา: ffmpeg wiki
YAMBพร้อมกับMP4BOXเป็นตัวเลือกที่ดี
ดาวน์โหลดและแตกไฟล์ (ไม่จำเป็นต้องติดตั้งและใช้ร่วมกันประมาณ 5MB) ใน YAMB เลือกการตั้งค่าและตั้งค่าเส้นทางโฟลเดอร์ของ MP4box
ในการเข้าร่วมไฟล์ mp4 เลือกการแก้ไข> คลิกเพื่อเข้าร่วมที่รองรับ ...
SUPER © (ตัวย่อเอนโค้ดเดอร์ Universal Player & Renderer) นำเสนอกระบวนการส่งออกเพิ่มเติมต่อไปนี้:
ไฟล์มัลติมีเดียอินพุตที่สนับสนุนใด ๆ สามารถดำเนินการได้:
o Join Format-Identical Files.
o Mux Video & Audio Streams.
o DeMux Extract Streams.
แน่นอน MP4 เป็นรูปแบบที่รองรับ
SUPER ©เป็นฟรีแวร์
ลองใช้คอนเทนเนอร์วิดีโอ Matroska
ประการแรกคุณต้องmkvtoolnix ดาวน์โหลดและติดตั้งจากนั้นคุณจะต้องเริ่มต้น mkvmerge GUI (ยกเว้นว่าคุณชอบเครื่องมือบรรทัดคำสั่งซึ่งใช้ได้กับฉัน - แม้ว่าคุณอาจต้องการดูที่ส่วนการเชื่อมโยงไฟล์ของเอกสาร mkvmerge )
เพิ่มไฟล์แรกของคุณโดยคลิก "เพิ่ม" จากนั้นคลิกที่ "ผนวก" และเปิดไฟล์ที่สองของคุณ ตั้งไฟล์ที่ส่งออกกด "เริ่ม muxing" ที่ด้านล่างและไป!
หากคอนเทนเนอร์ไม่เหมาะสมกับความต้องการของคุณคุณสามารถเข้ารหัสใหม่หรือลองแปลงเป็นรูปแบบอื่น ... แม้ว่า MKV จะเป็นคอนเทนเนอร์ที่น่ารักมาก!
หากคุณสามารถเล่นได้ในระบบของคุณ / ติดตั้งตัวแปลงสัญญาณ Windows Movie Maker อาจเป็นวิธีที่เร็วที่สุด (และฟรี) ในการเข้าร่วมสองไฟล์ จากนั้นคุณสามารถใช้ Virtualdub เพื่อแปลงเป็นรูปแบบอื่น