ไฟล์ FLV คืออะไร??
FLV (Flash Video) เป็นรูปแบบไฟล์คอนเทนเนอร์ที่มีนามสกุล .flv FLV ใช้เพื่อส่งเนื้อหาเสียง/วิดีโอทางอินเทอร์เน็ตโดยใช้ Adobe Flash Player หรือ Adobe Air ข้อมูลในไฟล์ FLV จะถูกเข้ารหัสในลักษณะเดียวกับไฟล์ SWF การสนับสนุนโดยตรงถูกเพิ่มเข้ามาใน Flash Player 7 ในปี 2546 ระบบ Adobe สร้าง F4V ในปี 2550 เนื่องจากข้อจำกัดของ FLV
การเข้ารหัส
ไฟล์ FLV มีบิตสตรีมวิดีโอของ Sorenson Spark ซึ่งเป็นตัวแปรที่เป็นกรรมสิทธิ์ของมาตรฐานวิดีโอ H.263 เป็นรูปแบบการบีบอัดที่จำเป็นสำหรับ Flash Player 6 และ 7 Flash Player เวอร์ชัน 8 รองรับบิตสตรีมวิดีโอ On2 TrueMotion VP6 เป็นรูปแบบการบีบอัดที่แนะนำสำหรับ Flash Player 8 และสูงกว่า FLV รองรับไฟล์เสียงในรูปแบบ MP3, Nellymoser Asao Codec และตัวแปลงสัญญาณ Speex แบบโอเพ่นซอร์ส นอกจากนี้ยังรองรับเสียงที่ไม่มีการบีบอัดหรือเสียงรูปแบบ ADPCM AAC (HE-AAC/AAC SBR, AAC Main Profile และ AAC-LC) ได้รับการสนับสนุนโดย Flash Player 9 เวอร์ชันล่าสุด
โครงสร้าง
ไฟล์ FLV ประกอบด้วยส่วนหัวและแพ็คเก็ต ไฟล์ FLV เริ่มต้นด้วยส่วนหัว ส่วนหัวมีฟิลด์ต่อไปนี้
- ลายเซ็น: ค่าของมันคือ FLV
- เวอร์ชัน: ค่าเริ่มต้นคือ 1 ใช้ได้เฉพาะ 0x01 เท่านั้น
- ค่าสถานะ: 0x04 ใช้สำหรับเสียง และ 0x01 ใช้สำหรับวิดีโอ ดังนั้น 0x05 จึงใช้สำหรับทั้งเสียงและวิดีโอ
- ขนาดส่วนหัว: ค่าเริ่มต้นคือ 9 ใช้เพื่อข้ามส่วนหัวที่ขยายใหม่กว่า
หลังจากส่วนหัวมาแพ็กเก็ต ไฟล์ FLV แบ่งออกเป็นหลายแพ็กเก็ตที่เรียกว่าแท็ก FLV ที่มีส่วนหัว 15 ไบต์ แพ็กเก็ตประกอบด้วยข้อมูลเมตาสำหรับเสียง วิดีโอ สคริปต์ ข้อมูลการเข้ารหัส และเพย์โหลด แพ็กเก็ต FLV มีฟิลด์ต่อไปนี้
- สงวนไว้: สงวนไว้สำหรับ FMS และควรเป็น 0
- ตัวกรอง: ระบุว่าแพ็กเก็ตถูกกรองหรือไม่
- 0: No preprocessing required. This is used for unencrypted files.
- 1: Preprocessing required. This is used for encrypted files
- ประเภทแพ็คเก็ต: กำหนดประเภทของเนื้อหาในแพ็คเก็ต
- 8: Audio
- 9: Video
- 18: Script Data
- Data Size: หมายถึงความยาวของข้อความ
- Timestamp Lower: เก็บการประทับเวลาในหน่วยมิลลิวินาทีที่ใช้ข้อมูลแท็ก มันถูกตั้งค่าเป็น NULL สำหรับแพ็กเก็ตแรก
- Timestamp Upper: ส่วนขยายเพื่อสร้างค่า uint32_be
- Stream ID: ตั้งค่าเป็น NULL สำหรับสตรีมแรก
- ข้อมูลเพย์โหลด: นี่คือข้อมูลตามประเภทแพ็คเก็ต