FFmpeg ตัดวิดีโอเฟรม / แมวดำ


0

ตกลงดังนั้นงานของฉันคือ:

  1. ตัดวิดีโอขึ้นเป็นส่วน N
    • ffmpeg -i in.mpg -ss 10 -t 10 -codec copy part1.mpg
    • ffmpeg -i in.mpg -ss 30 -t 10 -codec copy part2.mpg
    • ...
  2. แมวส่วนเหล่านี้เข้าด้วยกัน
    • cat part1.mpg part2.mpg ... & gt; temp.mpg
    • ไฟล์นี้ทำงานได้ดี แต่ช่วงเวลา ฯลฯ เกิดความผิดพลาดเนื่องจากค่า PTS ไม่ถูกต้อง
  3. เรียกใช้ผ่าน FFmpeg
    • ffmpeg -i temp.mpg -codec คัดลอก out.mpg
    • ไฟล์นี้ยังทำงานได้ดี แต่ในช่วงระยะเวลาการตัดที่แน่นอนตอนนี้มีพื้นที่สีดำ PTS ได้รับการแก้ไขแล้ว แต่เป็นการบัญชีสำหรับเฟรมที่ถูกลบด้วย

ฉันจะแก้ไขค่า PTS ได้อย่างไร

แก้ไข: ฉันถูกบังคับให้ใช้ FFmpeg เวอร์ชันเก่ากว่า (ดังนั้นจึงไม่มีการใช้ตัวกรองเช่นการตัดแต่งหรือการเชื่อมต่อแบบ dematux)


ฉันคิดว่าทุกครั้งที่คุณใช้คำสั่งเพื่อแยกวิดีโอคุณควรใช้ setpts filter เช่น: ffmpeg -i in.mpg -ss 10 -t 10 vf "setpts = PTS-STARTPTS" -codec copy part1.mpg ทำงานได้ แต่การใช้ cat สำหรับวิดีโอไม่ใช่ความคิดที่ดี
ptQa

ฉันจะลองดู แมวเป็นตัวเลือกเดียวของฉันโชคไม่ดี
Knossos

ขอบคุณดูเหมือนว่าจะช่วย คุณสามารถตั้งความคิดเห็นของคุณเป็นคำตอบเพื่อที่ฉันจะยอมรับได้หรือไม่
Knossos

คำตอบ:


3

ทุกครั้งที่คุณใช้คำสั่งเพื่อแยกวิดีโอคุณควรใช้ setpts ตัวกรองเช่น:

ffmpeg -i input.mpg -ss 10 -t 10 -vf "setpts=PTS-STARTPTS" -c copy part1.mpg

อาจเป็นไปได้ แต่ใช้ cat สำหรับวิดีโอไม่ใช่ความคิดที่ดีจริงๆ

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