ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ, ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΊΡΠ°ΡΠΊΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΊΠ°Π΄Ρ. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ ΡΠ°ΡΡΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π²ΡΠΊΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ β Π°Π²ΡΠΎΡΡΠΊΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΡΠ·ΡΠΊΠΎΠΉ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π·Π²ΡΠΊΠΎΠ²Π°Ρ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ) ΡΠ°ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ° ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (streams). ΠΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΠ»ΠΈΠΊΠ° (Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½ΡΡ β ΡΠ°ΡΡΡΡ) ΡΠ²ΡΠ·Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π’Π΅ΡΠΌΠΈΠ½ Β«ΠΏΠΎΡΠΎΠΊΒ» ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΡ .
Π€ΠΎΡΠΌΠ°Ρ AVI (Audio Video Interleave) Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Microsoft Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠΎΠ². AVI-ΡΠ°ΠΉΠ» ΠΊΡΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π²ΡΠΊΠΎΠ²ΡΡ Π΄ΠΎΡΠΎΠΆΠ΅ΠΊ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ AVI-ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½ΡΠΆΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ? ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΡΠΎΠ² ΠΈ Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°? Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½, Π½ΠΎ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΡΠ°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ ΠΈΠ· Π½ΠΈΡ β ΡΠΆΠ°ΡΠΈΠ΅. ΠΡΠ»ΠΈ ΠΊΠ°Π΄ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ° Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π±Π΅Π· ΡΠΆΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² BMP-ΡΠ°ΠΉΠ»Π°Ρ ), ΡΠΎ Π΄Π°ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΎΠ»ΠΈΠΊ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 1-ΠΌΠΈΠ½ΡΡΠ½ΡΠΉ ΡΠΎΠ»ΠΈΠΊ ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ 320Γ200 ΠΈ ΡΠ°ΡΡΠΎΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π° 30 ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π·Π°ΠΉΠΌΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΡΠ²ΡΡΠ΅ 100 ΠΠ±Π°ΠΉΡ.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΆΠ°ΡΠΈΠ΅. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ? Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΆΠ°ΡΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΎΡΠ΅Π» ΡΡΠ°Π·Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ.
ΠΠΎΡΡΠΎΠΌΡ Π² AVI-ΡΠ°ΠΉΠ»Π°Ρ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΆΠ°ΡΠΈΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π±Π΅Π· ΡΠ°Π·Π²ΠΈΡΠΎΠ³ΠΎ API ΡΡΠ΅Π½ΠΈΠ΅ AVI-ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. Π ΡΡΠ°ΡΡΡΡ, Π² Windows ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ API Video For Windows, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ.
Π€ΠΎΡΠΌΠ°ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»ΠΎΠ² (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ AVI) ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π²Π° ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ°Π΄ΡΠΎΠ²; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°Π΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π° Π² Π²ΠΈΠ΄Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΠ°Π΄ΡΡ.
ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, ΡΠΎ ΡΠΈΠ³ΡΡΠ° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡ ΠΊΠ°Π΄ΡΠ° ΠΊ ΠΊΠ°Π΄ΡΡ, Π½ΠΎ ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ (ΠΊΠΎΠΌΠ½Π°ΡΠ°), ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ° ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΠ°Π΄ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ° Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΠΊΠ°Π΄ΡΠ°ΠΌΠΈ (key frames). ΠΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΊΠ°Π΄ΡΠΎΠ², Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΎ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π½Π°ΠΌΠΈ, ΡΡΡΠ΅ΠΊΡΠ°Ρ Β«ΡΠ°ΡΡΠ²ΠΎΡΠ΅Π½ΠΈΡΒ» ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ΅ΠΌΠΎΡΠ½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅ΡΡ. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½Ρ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ°; Π±Π΅Π· Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΡΠ΅ΡΡΡΡ ΡΠΌΡΡΠ». ΠΠ΅ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΊΠ°Π΄Ρ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ, Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ΅Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°Π΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΊΡΡΡΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ Video For Windows API, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠ΅ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Ρ Video For Windows.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅Π½ΠΈΡ AVI-ΡΠ°ΠΉΠ»ΠΎΠ² Windows ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Video For Windows (VFW) API. ΠΡΠΎΡ API Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π΅ΠΌ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ² ΠΈΠ· ΡΠΎΠ»ΠΈΠΊΠ°.
VFW Π½Π΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΆΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ AVI-Π΄Π°Π½Π½ΡΡ . ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ VFW Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΆΠ°ΡΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, VFW ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠΎΠΌΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΆΠ°ΡΠΈΡ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ VFW API ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
VFW APIΠΠΌΠ΅Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ VFW API Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±ΡΠΊΠ² AVI. ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠΆΠ°ΡΠΈΡ) Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ IC. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ VFW ΡΠ½Π°Π±ΠΆΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ². ΠΠ»ΡΠ°Π²ΠΈΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ VFW ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π±Π». 8.1.
Π’Π°Π±Π»ΠΈΡΠ° 8.1. Π€ΡΠ½ΠΊΡΠΈΠΈ VFW
AVIBuildFilter()
AVICLearClipboard()
AVIFileAddRef()
AVIFileCreateStream()
AVIFileEndRecord()
AVIFileExit()
AVIFileGetStream()
AVIFileInfo()
AVIFileInit()
AVIFileOpen()
AVIFileReadData()
AVIFileRelease()
AVIFileWriteData()
AVIGetFromClipboard()
AVIMakeCompressedStream()
AVIMakeFileFromStream()
AVIMakeStreamFromClipboard()
AVIPutFileOnClipboard()
AVISave()
AVISaveOptions()
AVISaveOptionsFree()
AVISaveV()
AVIStreamAddRef()
AVIStreamBeginStreaming()
AVIStreamCreate()
AVIStreamEndStreaming()
AVIStreamCreate()
AVIStreamEndStreaming()
AVIStreamFindSample()
AVIStreamGetFrame()
AVIStreamGetFrameClose()
AVIStreamGetFrameOpen()
AVIStreamInfo()
AVIStreamLength()
AVIStreamOpenFromFile()
AVIStreamRead()
AVIStreamReadData()
AVIStreamReadFormat()
AVIStreamRelease()
AVIStreamSampleToTime()
AVIStreamSetFormat()
AVIStreamStart()
AVIStreamTimeToSample()
AVIStreamWrite()
AVIStreamWriteData()
CreateEditableStream()
EditStreamClone()
EditStreamCopy()
EditStreamCut()
EditStreamPaste()
EditStreamSetInfo()
EditStreamSetName()
ICClose()
ICCompress()
ICCompressorChoose()
ICCompressorFree()
ICDecompress()
ICDecompressEx()
ICDecompressExBegin()
ICDecompressExQuery()
ICDraw()
ICDrawBegin()
ICDrawSuggestFormat()
ICGetInfo()
ICGetDisplayFormat()
ICImageCompress()
ICImageDecompress()
ICInfo()
ICInstall()
ICLocate()
ICOpen()
ICOpenFunction()
ICRemove()
ICSendMessage()
ICSeqCompressFrame()
ICCompressFrameEnd()
ICCompressFrameStart()
ICGetStatusProc()
MyStatusProc()
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎΠ»ΠΈΠΊΠΎΠ² Π½ΡΠΆΠ½Π° Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ VFW, Π½ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ, Π²Π°ΠΌ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π‘ΠΠΠΠ’ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ VFW Π² ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Video For Windows, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» vfw.h ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ vfw32.lib Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ°.
ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΡΠ°Π±Π». 8.1 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ VFW ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ AVIFileInit(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΉ ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ.
ΠΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ VFW ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ AVIStreamOpenFromFile(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΡ AVI-ΡΠ°ΠΉΠ»Π° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎ Π½Π΅ΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ VFW ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌΡ AVIStreamOpenFromFile(), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ AVIStreamReadFormat() ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π΄ΡΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π³Π»ΡΠ±ΠΈΠ½Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ; Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ BITMAPINFOHEADER (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΡΡΠΊΡΡΡΠ° BITMAPINFOHEADER ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΉ β ΠΌΡ ΡΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Ρ Π½Π΅ΠΉ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ BMP-ΡΠ°ΠΉΠ»ΠΎΠ²). Π― ΡΠ½ΠΎΠ²Π° ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, Π²Π·ΡΡΠΎΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Windows wingdi.h:
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;