FLV คือ Flash Video ซึ่งเป็นรูปแบบที่ Flash Player ของ Adobe ใช้แสดงวิดีโอบนเว็บเบราว์เซอร์ เดิมถูกสร้างโดยบริษัท Macromedia ผู้พัฒนา Flash และถูกถ่ายโอนไปให้ Adobe เมื่อ Adobe ซื้อกิจการ Macromedia ในปี 2005 เป็นเวลาราวหนึ่งทศวรรษที่วิดีโอบนออนไลน์ทำงานด้วยวิธีนี้: วิดีโอคลิปที่คุณดูในเบราว์เซอร์ช่วงนั้นมีโอกาสสูงมากว่าจะถูกส่งมาในรูปแบบ FLV Adobe ยุติการสนับสนุน Flash Player ในวันสุดท้ายของปี 2020 และเบราว์เซอร์ต่างก็เอามันออกไป ทำให้ไม่มีอะไรเล่น FLV ในหน้าเว็บได้อีกต่อไป แต่ไฟล์เหล่านี้ไม่ได้หายไปไหน ยังอยู่ในโฟลเดอร์ดาวน์โหลดและคลังเก็บ และยังสามารถเล่นด้วยโปรแกรมเล่นมีเดียบนเดสก์ท็อปได้อยู่
โครงสร้างของไฟล์ FLV เป็นอย่างไร
FLV มีโครงสร้างที่เรียบง่ายมาก เพราะออกแบบมาเพื่อสตรีมมากกว่าจัดเก็บ ส่วนหัวสั้น ๆ ใช้ระบุไฟล์และบอกว่าไฟล์นั้นมีเสียง วิดีโอ หรือทั้งสองอย่าง หลังจากนั้นไฟล์จะเป็นเพียงสายของแท็ก แต่ละแท็กคือแพ็กเก็ตเล็ก ๆ ที่มีประเภท เวลา (timestamp) และข้อมูล (payload) แท็กเสียง แท็กวิดีโอ และแท็กสคริปต์จะถูกสลับกันไปตามลำดับเวลา และโปรแกรมเล่นก็แค่อ่านตามลำดับ ไม่มีดัชนีกลาง จึงทำให้การเลื่อนหา (seeking) ภายในไฟล์ FLV มักจะทำได้ไม่สะดวก
คอนเทนเนอร์นี้ไม่ได้บีบอัดอะไรด้วยตัวเอง FLV ยุคแรกใช้ Sorenson Spark สำหรับวิดีโอ ต่อมาใช้โค้ดेक On2 VP6 และเมื่อ Flash Player รองรับ ก็สามารถใช้วิดีโอ H.264 กับเสียง AAC ซึ่งทั้งหมดเป็นแบบสูญเสียข้อมูล (lossy) ในที่สุด Adobe ก็เปิดตัว F4V เป็นตัวแทน ซึ่งสร้างบนโครงสร้าง MP4 แบบเดียวกับที่ใช้งานทั่วไป
ไฟล์ FLV มีเมทาดาทาอะไรบ้าง
เมทาดาทาของ FLV แทบทั้งหมดจะอยู่ในแท็กสคริปต์เพียงแท็กเดียวใกล้จุดเริ่มต้นของไฟล์ โดยมักใช้ชื่อ onMetaData ภายในจะเป็นรายการของชื่อและค่า ซึ่งเขียนในรูปแบบข้อมูลที่ Flash ใช้สื่อสารกับสคริปต์ และโปรแกรมเล่นจะอ่านก่อนเริ่มเล่นเพื่อเตรียมตัว ค่าเมทาดาทาที่มักพบมากที่สุด ได้แก่:
- ระยะเวลา ความกว้างและความสูงของวิดีโอ และอัตราเฟรม;
- อัตราบิตของวิดีโอและอัตราบิตของเสียง และตัวระบุแบบตัวเลขสำหรับโค้เดกของวิดีโอและเสียง;
- อัตราสุ่มตัวอย่างเสียง (audio sample rate) ขนาดตัวอย่าง (sample size) และว่าเสียงเป็นสเตอริโอหรือไม่;
- ขนาดไฟล์ และแฟล็กที่ระบุว่าไฟล์สามารถเลื่อนไปดูจนถึงท้ายไฟล์ได้หรือไม่;
- รายการตำแหน่ง keyframe และเวลา ซึ่งเป็นสิ่งที่ทำให้การเลื่อนหาเป็นไปได้เลยตั้งแต่แรก;
- ชื่อของโปรแกรมที่ใช้เขียนหรือฝังเมทาดาทาเข้าไป เพราะมีโปรแกรมแยกเฉพาะที่มีไว้เพื่อเพิ่มข้อมูลบล็อกนี้ให้ไฟล์ที่ไม่มี
ไฟล์บางไฟล์ยังมีแท็กสคริปต์ที่สองซึ่งบรรจุแพ็กเก็ต XMP รูปแบบข้อความเชิงโครงสร้างที่ Adobe ใช้ในผลิตภัณฑ์ต่าง ๆ ของตน และแพ็กเก็ตนี้อาจบรรจุชื่อเรื่อง ผู้สร้าง คำอธิบาย และข้อความลิขสิทธิ์ที่มนุษย์พิมพ์ขึ้น
ในทางกลับกัน FLV ไม่มีแนวคิดเรื่องเมทาดาทากล้องถ่ายรูปเลย ไม่มีบล็อก EXIF ไม่มีข้อมูลยี่ห้อหรือรุ่นกล้อง ไม่มีข้อมูลเลนส์หรือการตั้งค่ารับแสง และไม่มีกล่องข้อมูล GPS ตำแหน่งที่ตั้งไม่ใช่สิ่งที่ไฟล์ Flash Video ถูกออกแบบมาให้บันทึก ร่องรอยที่มามีเพียงชื่อของโปรแกรมที่เขียนไฟล์ และข้อมูลใด ๆ ที่อยู่ในแพ็กเก็ต XMP เท่านั้น
ยังมีช่องว่างที่พบบ่อยอีกจุดหนึ่งที่ควรรู้ไว้ ระยะเวลาและขนาดไฟล์จะถูกเขียนเมื่อรู้ขนาดไฟล์ทั้งหมดแล้ว ทำให้การอัดจากสตรีมสดมักไม่มีข้อมูลเหล่านี้หรือถูกตั้งเป็นศูนย์ นั่นจึงเป็นเหตุผลว่าทำไมโปรแกรมเล่นบางตัวจึงแสดงไฟล์ FLV โดยไม่มีแถบเวลา และไม่ยอมข้ามไปข้างหน้า เพราะข้อมูลที่โปรแกรมเล่นต้องใช้ไม่เคยถูกบันทึกไว้
ทุกวันนี้ควรจัดการกับไฟล์ FLV อย่างไร
ให้มองว่า FLV เป็นรูปแบบสำหรับเก็บถาวร ไม่ใช่รูปแบบสำหรับใช้งานต่อเนื่อง ไม่ควรสร้างไฟล์ใหม่ในรูปแบบนี้อีก เพราะแพลตฟอร์มที่มันเคยทำงานด้วยได้เลิกใช้งานไปแล้ว
MP4 คือรูปแบบที่มาทดแทนในทุกด้าน: เล่นได้ทั้งในเบราว์เซอร์และบนสมาร์ทโฟน เลื่อนหาได้ดี และบรรจุเมทาดาทาได้หลากหลายกว่า วิธีที่คุณแปลงจึงสำคัญ ไฟล์ FLV ที่มีวิดีโอ H.264 และเสียง AAC อยู่แล้ว มักสามารถ remux ไปเป็น MP4 ได้โดยตรง ซึ่งเป็นเพียงการเขียนตัวห่อใหม่และคงภาพเดิมทุกบิต ส่วนไฟล์เก่าที่ใช้ Sorenson Spark หรือ VP6 ต้องเข้ารหัสใหม่ ทำให้มีการบีบอัดแบบสูญเสียข้อมูลรอบที่สอง ดังนั้นหากวิดีโอนั้นสำคัญ ควรเก็บไฟล์ต้นฉบับไว้คู่กับไฟล์ที่แปลงแล้ว