ทำไมวิดีโอจาก ffmpeg ไม่แสดงใน QuickTime, iMovie หรือดูตัวอย่างแบบย่อ


20

ฉันใช้ffmpegสำหรับการแปลงวิดีโอเป็นครั้งคราวและเมื่อเร็ว ๆ นี้พบว่าวิดีโอ H.264 (libx264) ที่สร้างโดย ffmpeg ไม่ทำงานใน iMovie หรือ QuickTime (หรือพวกเขาจะเล่นหรือแสดงตัวอย่างใน Finder ด้วย คุณลักษณะการดูด่วน)

หากฉันสร้างวิดีโอโดยใช้แอปพลิเคชัน OS X ซึ่งใช้ ffmpeg (เช่นMP4toolsหรืออะแดปเตอร์ ) ภายในวิดีโอจะทำงานได้ดี แต่ไม่ใช่เมื่อฉันพยายามใช้ ffmpeg โดยตรงเช่นเพื่อแปลงวิดีโอ:

# ffmpeg -i input.avi output.mp4

หรือเพื่อรวมภาพบางส่วนเข้ากับวิดีโอ:

# ffmpeg -f image2 -pattern_type sequence image-%04d.png output.mp4

iMovie เพิ่งนำเข้าวิดีโอเป็นสีดำ / ว่างเปล่าแสดงตัวอย่างอย่างรวดเร็วเพียงแสดงข้อมูลไฟล์ (แต่ไม่มีตัวอย่างวิดีโอ) และ Quicktime บอกว่าไม่สามารถเล่นได้:

ไม่สามารถเปิดเอกสาร

เกิดอะไรขึ้น?!

คำตอบ:


31

ในระยะสั้นคุณ (มัก) ต้องรวมอาร์กิวเมนต์-pix_fmt yuv420pเมื่อใช้ ffmpeg เพื่อสร้างเนื้อหา H.264 สำหรับซอฟต์แวร์ / อุปกรณ์ Apple และตัวถอดรหัสอื่น ๆ ที่ไม่รองรับ yuv444p

# ffmpeg -i input.avi -pix_fmt yuv420p output.mp4

นี้ไม่ได้กล่าวถึงในการส่งออกเมื่อใช้ค่าเริ่มต้น แต่สามารถพบได้ในของพวกเขาเข้ารหัส / H.264 คู่มือ

มันกลับกลายเป็นว่า ffmpeg ได้เลือกรูปแบบพิกเซลเริ่มต้นของ yuv444p สำหรับการเข้ารหัส libx264 (ภายใต้สถานการณ์บาง) ซึ่งไม่ได้ทำงานร่วมกับซอฟต์แวร์ของ Apple ฮาร์ดแวร์ / H.264 ถอดรหัส (และอาจจะไม่มากอย่างแพร่หลายเข้ากันได้ในทั่วไป? ) น่าเสียดายที่นี่ดูเหมือนจะไม่เปลี่ยนแปลงและไม่มีคำเตือนเกี่ยวกับเรื่องนี้ดังนั้นสิ่งที่คุณต้องรู้หากใช้ ffmpeg เพื่อสร้างไฟล์ H.264

เท่าที่ฉันสามารถบอกได้ว่าถ้าแปลงวิดีโอที่ใช้ yuv420p อยู่แล้วมันจะรักษาไว้ แต่ถ้าแปลงจากสิ่งที่แปลกใหม่ไปอีกเล็กน้อย (เช่นรูปภาพหรือ GIF หรืออะไรก็ตาม) รูปแบบพิกเซลจะต้องระบุสำหรับความเข้ากันได้ทั่วไปของ Apple


1
ไม่ช่วยใน iMovie รุ่นปัจจุบัน (Yosemite) ความคิดอื่น ๆ ?
Milan Babuškov

1
คุณสามารถโพสต์การส่งออกของffprobe -select_streams v -show_streams output.mp4?
drfrogsplat

+1 แม้แต่วิดีโอ yuv420p ก็ไม่เล่นใน High Sierra เช่นกัน
trisweb

ไม่ใช่แค่ Apple แต่บางครั้งโปรแกรมเล่นสื่อ Windows ก็ไม่สามารถเล่นผลลัพธ์ได้หากคุณไม่ได้ระบุตัวเลือกนั้น และถ้าคุณลองเล่นกับผู้เล่นคนอื่น ๆ มันจะเป็นหน้าจอสีเทาที่มีสิ่งประดิษฐ์แสดงบนวิดีโอ
Shayan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.