สร้างภาพขนาดย่อในบางช่วงเวลาจากวิดีโอโดยไม่ต้องอ่านวิดีโอทั้งหมด [FFMPEG]


1

ปัญหาสั้น : ฉันต้องการถ่ายภาพหน้าจอบางภาพจาก URL วิดีโอในบางช่วงเวลา แต่ฉันไม่ต้องการอ่านวิดีโอทั้งหมด

สมมติว่าฉันมีวิดีโอที่เก็บไว้ใน URL บางรายการ (เช่นhttps://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4 ) ขนาดของวิดีโอมีขนาดใหญ่ แต่เราสามารถค้นหาวิดีโอได้

ตอนนี้ฉันต้องการถ่ายภาพหน้าจอ / ภาพขนาดย่อ 4 ภาพของวิดีโอ เช่นถ้าวิดีโอมีขนาด 100s ฉันต้องการถ่ายภาพหน้าจอที่ 20s, 40s, 60s และ 80s

การใช้บทช่วยสอนจากวิกิ: สร้างภาพขนาดย่อทุกๆ X วินาทีของวิดีโอที่ฉันทำได้

ffmpeg -i 'https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4' -vf fps=1/20 img%03d.jpg

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

for i in 20 to 80 step 20
    ffmpeg -noaccurate_seek -ss {i} -i 'https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4' -vframes 1 out-{i}.png

ดูเหมือนว่าจะทำงานได้ แต่ยังคงเรียกใช้ ffmpeg แต่ละรายการใช้เวลาสักครู่และแต่ละ ffmpeg ถอดรหัสส่วนหัวของ URL วิดีโอเดียวกันซึ่งดูเหมือนซ้ำซ้อน มีวิธีการใดในการโทร ffmpeg ครั้งเดียวจึงสามารถลบงานที่ซ้ำกันนี้ได้หรือไม่?

PS ไม่จำเป็นต้องมีคำตอบสำหรับการใช้ ffmpeg เท่านั้น นอกจากนี้เรายังสามารถใช้ mpv / mplayer หรือ vlc หรือเครื่องเล่น / ตัวแปลงอื่น ๆ ที่มีใน Linux

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