ฉันเป็นนักพัฒนา PHP ต่ำที่ได้รับมอบหมายให้ดึงข้อมูลพื้นฐานเกี่ยวกับไฟล์วิดีโอกว่าพันไฟล์ ผมเคยมีโชคบางอย่างโดยใช้ ffmpeg สกัดvideo bitrate
, video width
, video height
, duration
และaspect ratio
จากพวกเขา แต่มีอัตราส่วนของข้อผิดพลาดประมาณ 5% นี้ยังคงทิ้งฉันกับจำนวนมหาศาลของไฟล์ที่ผมไม่ทราบวิธีการจัดการกับ วิดีโอเล่นได้ แต่ข้อมูลจำนวนมหาศาลที่ ffmpeg ส่งกลับมาทำให้ฉันงงงันกับวิธีการแยกวิเคราะห์ XML ที่คืนกลับมาเพื่อค้นหาสิ่งที่ฉันต้องการด้วยเงื่อนไขทั้งหมดที่ฉันต้องเผชิญ (ไฟล์ดังกล่าวเป็นคอลเลกชันจาก 15 ปีที่ผ่านมาหรือบางส่วนมีการเข้ารหัสใหม่บางส่วนถูกแปลงเมื่อหลายปีก่อน)
ฉันพบว่าการใช้ต่อไปนี้ffprobe
เพื่อรับช่วงเวลาและหวังว่าคนที่นี่ที่เข้าใจความซับซ้อนของการใช้ ffmpeg & ffprobe จะใจดีพอที่จะช่วยฉันในการค้นหาค่าอื่น ๆ ที่ฉันต้องการในวิธีที่ตรงไปตรงมามากกว่า รหัสบ้าฉันพบว่าตัวเองกำลังจะปีนขึ้นไปบนผลลัพธ์ที่สมบูรณ์ของ ffmpeg
ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0"
ขอบคุณมากล่วงหน้า
ชี้แจง:
ฉันควรเพิ่มที่ด้านล่าง cmd ฉันสามารถ "ดู" สิ่งที่ฉันต้องการ แต่ฉันไม่เข้าใจวิธีการแยกสิ่งที่ฉันต้องการเช่นการดึงบิตเรตของวิดีโอและการปราบปราม / ละเว้นบิตเรต AUDIO หรือการกำหนดที่ 2 ระยะเวลาในการใช้งานที่แตกต่างกัน (ระยะเวลาเสียง / วิดีโอ?)
C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4
duration=1712.000000
bit_rate=64000
width=320
height=240
duration=1711.946113
bit_rate=359827
duration=1712.000000
bit_rate=N/A
duration=1712.000000
bit_rate=N/A