Score:1

การใช้ ffmpeg เพื่อตัดวิดีโอในหลายจุด

ธง cn

ฉันมีวิดีโอที่เป็นเกมฟุตบอล ผมขอตัดเวลานะครับ ก่อนเกม, ในช่วงพักครึ่ง และในที่สุดก็จบเกม

ความยาวคลิปทั้งหมด 1ชม.51น หรือ 111ม

ตามหลักการแล้วการตัดและเวลามีดังนี้:

+------------+------------+----------------+
| เวลาเริ่มต้น | เวลาสิ้นสุด | ระยะเวลาของคลิป |
+------------+------------+----------------+
| 1:30 | 47:30 | 47:30 |
| 53:00 | 100:00 | 47 |
+------------+------------+----------------+

อย่างไรก็ตามวิดีโอของฉันจบลงที่

ffmpeg -ss 00:01:30 -i Tripod_Camera.mp4 -t 00:47:30 -ss 00:53:00 -t 00:47:00 -c คัดลอก VideoClip.mp4
24601 avatar
in flag
คุณได้พิจารณาใช้เครื่องมือเช่น `LosslessCut` เพื่อทำงานนี้หรือไม่? ดู[ข้อมูลอ้างอิงนี้](https://www.maketecheasier.com/extract-clips-video-losslesscut/?utm_source=newsletter&utm_medium=email&utm_campaign=07092020)
vanadium avatar
cn flag
@ 24601 ffmpeg สามารถทำได้อย่างสมบูรณ์แบบ และคำสั่งที่ให้มานั้นทำได้อย่างไม่มีการสูญเสีย เป็นเรื่องของการค้นหาตัวเลือกคำสั่งที่ถูกต้องเพื่อทำในครั้งเดียว
cn flag
@vanadium คุณถูกต้อง ฉันไม่รู้ว่าเมื่อไหร่หรืออย่างไร! :/
llogan avatar
jp flag
คุณต้องการการตัดที่แม่นยำแค่ไหน? เนื่องจากหากยอมรับการตัดเฉพาะคีย์เฟรมได้ คุณก็สามารถทำได้โดยไม่ต้องเข้ารหัสใหม่ โปรดดูที่ [กำลังตรวจสอบช่วงเวลาคีย์เฟรม?](https://stackoverflow.com/a/18088156/) เพื่อดูความถี่คีย์เฟรม
cn flag
ไม่จำเป็นต้องแน่นเลยจริงๆ เมื่อพิจารณาว่าฉันได้จัดสรรเวลาไว้มากในด้านใดด้านหนึ่ง ยิ่งไปกว่านั้น ฉันไม่สามารถหาวิธีส่ง `2 cuts` ได้เหมือนที่เคยเป็นกับคำสั่ง FFMPEG เดียว
andrew.46 avatar
in flag
ทิศทางที่นี่: https://superuser.com/questions/681885/how-can-i-remove-multiple-segments-from-a-video-using-ffmpeg
Score:2
ธง jp
  1. ทำ อินพุต. txt มีการประทับเวลา (เป็นวินาที) เพื่อตัด:

    ไฟล์ 'input.mp4'
    จุดที่ 90
    พิกัด 2850
    ไฟล์ 'input.mp4'
    อินพอยท์ 3180
    งบ 6000
    
  2. วิ่ง เอฟเอ็มเพก เพื่อเชื่อมกับ concat demuxer:

    ffmpeg -f concat -i input.txt -c คัดลอก output.mp4
    
  • นี่จะ สำเนาสตรีมดังนั้นจึงไม่มีการเข้ารหัสซ้ำ หมายความว่ากระบวนการทั้งหมดจะรวดเร็วและคงคุณภาพไว้ อย่างไรก็ตาม จะมีการตัดต่อคีย์เฟรม ดังนั้นจึงอาจไม่แม่นยำเพียงพอ หากต้องการความแม่นยำมากขึ้น คุณจะต้องใช้วิธีการที่ช้าลงมาก เช่น การใช้ตัวกรอง (a)trim, (a)setpts และ concat ซึ่งต้องมีการเข้ารหัสใหม่

  • หากคุณได้รับ A/V desync แล้ว รับการประทับเวลาของคีย์เฟรมให้ใช้การประทับเวลาคีย์เฟรมเป็นของคุณ จุดแต่เพิ่ม 0.001 ให้กับแต่ละรายการ จุด ประทับเวลาใน อินพุต. txt.

cn flag
ขอบคุณ :D มันทำงานได้อย่างสมบูรณ์แบบ! ต้องถามว่าต้องเป็นไฟล์ไหม? หรือฉันสามารถทำได้โดยตรงในเทอร์มินัล
llogan avatar
jp flag
@JamieHutber ชนิดของ ดู[FFmpeg Wiki: Concatenate](http://trac.ffmpeg.org/wiki/Concatenate)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา