พจนานุกรม

ชื่อฟอร์แมตคืออะไร?

ชื่อรูปแบบจะแสดงว่ามีเดียไฟล์ใช้รูปแบบคอนเทนเนอร์ใด เช่น MP4 หรือ WAV ส่วนชื่อรูปแบบฉบับเต็มจะแสดงรูปแบบเดียวกันในลักษณะเป็นข้อความที่อ่านได้ง่ายกว่า

format-name

ชื่อฟอร์แมตคือชื่อแบบย่อของฟอร์แมตคอนเทนเนอร์ของไฟล์มีเดีย ซึ่งบอกคุณว่าโปรแกรม FFmpeg เรียกฟอร์แมตของไฟล์คุณว่าอะไร คอนเทนเนอร์คือรูปแบบไฟล์ที่บรรจุสตรีมเสียงหรือวิดีโอหนึ่งรายการหรือมากกว่า และข้อมูลเมทาดาทา เพื่อให้เล่นพร้อมกันได้

Format Long Name คือช่องข้อมูลที่สองที่อธิบายฟอร์แมตเดียวกันด้วยคำที่เข้าใจง่ายกว่า โปรแกรม ffprobe ของ FFmpeg รายงานช่องข้อมูลทั้ง 2 ช่องเป็น format_name และ format_long_name

ลักษณะของค่าเป็นอย่างไร

FFmpeg อ่านไฟล์แต่ละชนิดด้วยส่วนหนึ่งที่เรียกว่า demuxer ชื่อฟอร์แมตคือชื่อแบบย่อของ demuxer นั้น และชื่อแบบยาวคือคำอธิบาย หนึ่ง demuxer สามารถอ่านฟอร์แมตที่เกี่ยวข้องกันได้หลายชนิด ดังนั้นชื่อฟอร์แมตจึงอาจเป็นรายการที่คั่นด้วยจุลภาค

คู่ค่าต่อไปนี้มาจากซอร์สโค้ดของ FFmpeg โดยชื่อฟอร์แมตอยู่ก่อน:

  • mov,mp4,m4a,3gp,3g2,mj2 และ QuickTime / MOV สำหรับไฟล์ MP4, MOV และ M4A
  • matroska,webm และ Matroska / WebM สำหรับไฟล์ MKV และ WebM
  • mp3 และ MP2/3 (MPEG audio layer 2/3) สำหรับไฟล์เสียง MP3
  • wav และ WAV / WAVE (Waveform Audio) สำหรับไฟล์เสียง WAV
  • mpeg และ MPEG-PS (MPEG-2 Program Stream) สำหรับสตรีมโปรแกรม MPEG-2 ซึ่งอาจลงท้ายด้วย .mpg
  • png_pipe และ piped png sequence สำหรับภาพ PNG

FFmpeg บางรุ่นตัดชื่อแบบยาวออกไป ชื่อแบบยาวจึงอาจแสดงเป็น unknown หรือไม่มีข้อมูล

แหล่งที่มาของค่า

ไฟล์ไม่ได้เก็บชื่อฟอร์แมตของตัวเองไว้ FFmpeg จะอ่านส่วนต้นของไฟล์และให้คะแนนกับแต่ละฟอร์แมตที่รู้จัก จากนั้นจะเลือกฟอร์แมตที่มีคะแนนสูงสุด และช่องข้อมูล probe score จะแสดงค่านั้น

นามสกุลไฟล์ มีความสำคัญก็ต่อเมื่อการทดสอบนี้ให้คำตอบที่ไม่น่าเชื่อถือ หรือเมื่อฟอร์แมตนั้นไม่มีการทดสอบ เอกสารของ FFmpeg เตือนว่าการเดาฟอร์แมตจากนามสกุลไฟล์นั้นเชื่อถือได้ไม่เพียงพอ

ทำไมไฟล์ MP4 จึงอาจแสดงเป็น QuickTime

ไฟล์ MP4 จะแสดงชื่อฟอร์แมตเป็น mov,mp4,m4a,3gp,3g2,mj2 และชื่อแบบยาวเป็น QuickTime / MOV ซึ่งเป็นเรื่องปกติและไม่ได้หมายความว่าไฟล์นั้นเป็นไฟล์ MOV FFmpeg ใช้ demuxer ตัวเดียวสำหรับฟอร์แมตที่เกี่ยวข้องกัน 6 ชนิด ดังนั้นค่าชุดเดียวกันจึงปรากฏในไฟล์ MOV, MP4, M4A, 3GP, 3G2 และ MJ2

ฟอร์แมตเหล่านี้เกี่ยวข้องกันเพราะ MP4 มีต้นกำเนิดจาก ISO base media file format และฟอร์แมตนั้นมีต้นกำเนิดจาก QuickTime file format MP4 และ QuickTime จึงมีความเกี่ยวข้องกัน แต่ยังมีความแตกต่างอยู่ จึงไม่สามารถใช้แทนกันได้เสมอไป

ไฟล์เหล่านี้ยังอาจมีแท็ก major_brand อยู่ด้วย FFmpeg จะมองค่าที่เป็น qt ว่าเป็นไฟล์ QuickTime และค่าที่เหลือว่าเป็นไฟล์ ISO base media

ไฟล์ใดที่มีรายการนี้อยู่

ชื่อฟอร์แมตจะปรากฏในไฟล์ที่ FFmpeg เปิดเป็นมีเดียได้ ได้แก่ วิดีโอ เสียง และไฟล์รูปภาพอีกหลายฟอร์แมต หาก ffprobe ไม่สามารถจําแนกไฟล์ว่าเป็นไฟล์มัลติมีเดียได้ จะส่งคืนข้อผิดพลาดและไม่มีชื่อฟอร์แมต ในกรณีนี้ให้ดูที่ช่องข้อมูล ชนิดไฟล์ แทน

FFmpeg ยังตั้งชื่อฟอร์แมตให้กับไฟล์ที่ไม่มีคอนเทนเนอร์แบบทั่วไป ตัวอย่างเช่นไฟล์ MP3 เป็นสตรีมของเฟรมเสียง ซึ่งมักจะมีแท็ก ID3

เหตุใดจึงสำคัญต่อไฟล์ของคุณ

คะแนนที่สูงจะมีความสำคัญมากกว่าชื่อไฟล์ ดังนั้นชื่อฟอร์แมตจึงมักแสดงคอนเทนเนอร์ที่ไฟล์ใช้งานจริง หากชื่อไฟล์ลงท้ายด้วย .mp3 แต่ชื่อฟอร์แมตคือ wav แสดงว่าไฟล์เริ่มต้นด้วยส่วนหัวแบบ WAV ชื่อไฟล์จึงไม่สอดคล้องกับเนื้อหา

ชื่อฟอร์แมตไม่ได้บอกคุณเสมอไปว่าไฟล์ใช้ codec ใดบ้าง Codec Long Name จะอธิบายว่าสตรีมหนึ่งภายในคอนเทนเนอร์ถูกเข้ารหัสอย่างไร ดังนั้นแต่ละสตรีมจะมีข้อมูลนี้ของตัวเอง

ตัวอย่างเช่น ไฟล์ MP4 สามารถบรรจุวิดีโอแบบ AVC (H.264), AV1 หรือ VP9 และเสียงแบบ AAC, FLAC หรือ Opus ดังนั้นชื่อฟอร์แมตเดียวกันจึงอาจปรากฏในไฟล์ที่ใช้ codec ต่างกันได้

คีย์เมตา