ααΆααΆααααΆα 2019 α αΎαααΆααΆαααααααΆαααααΎααααααα
α
α·αααααΎ GIFs (
ααΎαααΉααα·αααααΌαααΆα GIFs αααααΆαααααααααααΎααα !
ααααα·αααΎααααα ααααα’αααααΊααΎααααΈαααααΎαααααΏααααα»αααα ααααα αααα’αααααααΌααααα αΆαα GIFs! ααα»ααααααΎα’ααααααααΎαααΌαααΆαααΆαα αααΆαααααααααΆ? α ααααΎαααΊααΈααα’αΌα α αΎααααα»αααααΈααΆαα αααΎα α’αααααΉαααα½αααΆααα»αααΆαααΆαααααααααΎα αα·ααααααααα αααα α 50-90%! αα αααα»αααΈαα·α α’αααΈαααΆαα αααΎαααΆααα»ααααααααα· αα·ααα»ααα·ααααα·ααααααΆα αα αααα’ααααααα½α GIF ααΆαα½αααΈααα’αΌ ααΆαα αααΎαα’αααααΉααα·αα’αΆα ααααΎααα»ααα·ααααα·ααΆαα½αα‘αΎαα
α α»αααΆαα½α GIFs ααΆααα’αα!
ααΆααααΆαααα’ ααΆααααα½α GIFs ααΆαα½αααΈααα’αΌααΊααΆααΏαααααααΆαα αααα»αααα»ααααΆαααααΆαααααΈαααα ααΌα ααααα§αααααα αΆαααΆα αααΆααα’ααααααΌαααΆαααααΎααααΆαααα½α α αΎαα αα αααα»αααΆααααααΆαααα αααα»αααΉααα·ααααααΎααααα‘αΎααα·ααα ααα»ααααααΉααααααα’αααααααααΆααααααΆαααααΆααααααα·α ααα»αααααα ααΌα ααααβαααβααΆβα ααα»α βααααΆααα
- αα GIF α αΎααααααααααΆαα ααΆααΈααα’αΌ
- α’αα·αααΌαααΈααα’αΌαααααααΎ H.264 α¬ VP9, ββββi.e. ααααα½αααΆα αΎαααα ααααΆαα αααα»ααα»α MP4 α¬ WebM
- αααα½α
<img>
ααΆαα½α GIF αααααΆαα αααΆαα ααΎ<video>
ααΆαα½α roller - ααΎαααΆαααααααααααααααααααα·αααααααΆαααα‘αα αα·αααααα·ααα»ααααααΆαααααααα GIF
ααΆααΆααααΆα 2019
ααΆααΆααααΆα 2019 α₯α‘αΌααααα αααααααΆαααΎααα αα»α α αΎαααΎαααααΌαααΆαααΆααα αα αΌαααααααααααα ααΎαααΆααααααΎαααΌαα·αααΈα αααααααΌαααΆαααΆαααααααΆαααΌααααΌααΆααα ααααααααααα·ααΈαα»αααααΆααα’αα αα·αα§ααααααααααααααΈααα’αΌα
- H.264 - ααααΆααααα»αααααΆα 2003 αα·αααααΎααααΆαααααΆαααΌααααΌααΆααααα»αααΆααααα αα α»αααααααααα
- VP9 - ααΆααααα αΆααααα½ααα
αααα»αααααΆα 2013 αα·ααααααα
ααΆαααΌαααΆααααααα’ααΆααααα αΆααααααΎααα 50% ααΎαααααααααα
ααΉα H.264 αααααΈααΆ
ααΌα ααααα½αααααααααα ααΈααα αα·ααααβαααααβαααΆαβαα·αβαααβααβααΆαβαααβααααΆααΌαβαααβααα
α
αααΆα: αααααΈααΆ H.265 ααΊααΆαααααααααΆαααα H.264 αα·αααΆααααααααΆαααααα½αααααααααΆαα½α VP9 ααααα αααα»ααα·αα
αΆαααα»αααΆαααααΆαααααΆαααΆαααααααααα·ααΈαα»ααααα·αααα’ ααΌα
αααααΆααααα αΆααα
ααΎααααα
ααΌαα
αΆαααΆ ααααα
ααααααΎαααΊααααα½α GIFs αααααα
ααα αααΌα
αααα»ααααα’αΆα
ααααΎαα
ααΆα ααΎααααΈαααααΎαααααΏαααααΆααααα»αα ααΆααΉαααααΆαααΆααΏαα
ααααααα
ααααΆα 2019 ααααα·αααΎααΎααα·αααΆααααααααΆαααααΈαααααΆααααΆααααα αΆααααΈααα’αΌαα
αααα»αααααΆααα’αΆαα»αααααααΎαα ααα»ααααααΆααΆαα αΎαααααΌαααΆαααα α
ααΆ AV1 α ααΆαα½α AV1 α’αααα’αΆα
ααααΎααΆα
AV1 ααΊαα ααααΆααααααααα’αααααΆααααΈααααΆα 2019!
αα ααΎαα»αααααΌαααααΎαα»
ααααΈααααααΆαααΆαααααααααΆααααΆααα·ααΌαααΈααα’αΌ AV1 ααααΌαααΆααααααααα
αααααααααα»
αα ααΎααααΆαα αααΌα
αα αα α»ααααααααααα·αααΆαααΆαααΆαααααααααααΉααααααΆααααααΆαα αααΌααααααΆαααααααα§ααααααα·ααΌαααααααα α’αααα’αΆα ααααΎααΆααα·ααΌααααααα·ααΈ αααααΈααΆααΆααΉαααΆαα±ααααΆαααααΎααααΆαααααααΎαα‘αΎααααααα SOCs α αααααααΌααααααΆααααααΆααα·ααΌααααααααΉα AV1 ααΉααααα αΆααα ααααΆα 2020α
α αΎααααααΆααααα’αααα’αΆαα’αααααααΊααΌα ααΆ "ααΌα ααααααααα·αααΎααΌααααααα ααααα·αααΆααααααΆα±ααααΆαααααΉαααααΌαααα ααα»α’αααΈααΆαααΆααααΎ AV1?"
AV1 ααΊααΆααΌαα·αααααΈαα½ααα α αΎαααΎααα ααΎαααααΌαααααΆαααααααααα½αααααααΆα ααΌαβαα·αβα’αααΈβα’αααααβαααβααΆβααΆ Β«αααβα’αααβααααΎβααα αΌα α αααΌαβααα»αααβααΉαβααΎαβααΆαΒ»α ααΆαααΆααααααΎαα»αααααΌαααααΉααααααΎαααααΏαααα ααααααααααΆαααααααα·ααααα½αα ααα½αα α αΎαααΌαα·αα αΆααα’αΆα ααααΌαααΆαααααΎααΆααααΆααΈαααΌαααα½ααα αααααα AV1 αα·αααααΌαααΆαααΆαααααα ααΎα§αααααααααα α ααα»αααααα ααααααα’αααααααΎααααΆααααααΌααα α§ααααααααααΆαααΆαααΆαααα AV1 α’αααΈαααΉααα½α ααΆααα ααΎααααΈαααααα ααΆαααΌαα ααα»α ααα ααΎαααααΌααααααΎαααααΆαααΈααα’αΌααΌα ααΆααααα αΆαααΆαααααα αααααΉαα’αα»ααααΆαα±αααααααα·ααΈαα»αααααααΎαααΎαααααααααααααα½ααααα α·ααα β AV1 - >> VP9 - >> H.264. ααΆααΆααααααΎαααΆαα ααααα·αααΎα’αααααααΎααΆαα§αααααα αΆααααααΆαα α¬αααααα·ααΈαα»αααααααα·αααΆααααααΈααα’αΌααΆααααααα (ααααα·αααααααααΆααααΆαα½α H264)αααααΆααααααΆααααΉαααΎα GIF
<video style="display:block; margin: 0 auto;" autoplay loop muted playsinline poster="RollingCredits.jpg">
<source src="media/RollingCredits.av1.mp4" type="video/mp4">
<source src="media/RollingCredits.vp9.webm" type="video/webm">
<source src="media/RollingCredits.x264.mp4" type="video/mp4">
<img src="media/RollingCredits.gif">
</video>
ααΆααααααΎα AV1
ααΆααααααΎαααΈααα’αΌαααα»α AV1 ααΊααΆααααα½αα
# Linux or Mac
## ΠΡΠΎΡ
ΠΎΠ΄ 1
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 /dev/null &&
## ΠΡΠΎΡ
ΠΎΠ΄ 2
ffmpeg -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4
# Windows
## ΠΡΠΎΡ
ΠΎΠ΄ 1
ffmpeg.exe -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 NUL && ^
## ΠΡΠΎΡ
ΠΎΠ΄ 2
ffmpeg.exe -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4
αααααΊααΆααΆααα·ααΆααααααΆαααΆααααααα
-i - ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ».
-pix_fmt - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°Ρ 4:2:0 Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ²Π΅ΡΠ½ΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΡΠΎΡΠΌΠ°ΡΠΎΠ², Π½ΠΎ 4:2:0 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ.
-c:v - ΠΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄Π΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ - AV1.<br />
-b:v β Π‘ΡΠ΅Π΄Π½ΠΈΠΉ Π±ΠΈΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ.
-filter:v scale - Π€ΠΈΠ»ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±Π° ffmpeg ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ X:-1 ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ffmpeg ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΈΡΠΈΠ½Ρ Π΄ΠΎ X, ΡΠΎΡ
ΡΠ°Π½ΠΈΠ² ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½.
-strict experimental - ΠΠ°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Ρ.ΠΊ. AV1 Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄Π΅ΠΊ.
-cpu-used - Π£ΠΆΠ°ΡΠ½ΠΎ Π½Π°Π·Π²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΎΠ²Π½Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π²ΠΈΠ΄Π΅ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0-4. Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΉΠΌΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°.
-tile-columns - ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΠ΅Π΄ΠΎΠ². ΠΠΎΠ²ΠΎΡΠΈΡ AV1 ΡΠ°Π·Π±ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π¦ΠΠ£.
-row-mt β Π’ΠΎΠΆΠ΅, ΡΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π½ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅ Π½Π° ΡΡΡΠΎΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.
-threads - ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΄ΠΎΠ².
-pass - ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
-f - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅. Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΠΌΠ°Ρ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Ρ.Π΅. MP4 Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
-movflags faststart - ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ Π±ΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ
Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΡΠ°ΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ΡΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π°.
ααΆααααααΎα GIFs
ααΎααααΈαααααΎα GIF αααα»αααΆαααααΎααΆααααααααΆααΆααααααα ααΎααααΈααΆαααααααααα α αααα»αααΆαααααΎααΆαααααααΆα GIF αα 720px wide αα·α 12 fps αααα½αα±ααααΈααα’αΌ 24 fps ααΎαα
./ffmpeg -i /mnt/c/Users/kasing/Desktop/ToS.mov -ss 00:08:08 -t 12
-filter_complex "[0:v] fps=12,scale=720:-1" -y scene2.gif
ααααααααααα
ααΎααααα αααααΎαααΆαα’αΆααα½ααααα ααααα? ααΌαααααΆααααΆ AV1 ααΊααΆαααααΎαααααααΉαααααΌααααααΆαααααααααααααααΎαα αααα»αααΆαααααΈααα’αΌ Tears Of Steel αααα₯ααα·ααααααααααΆααα
ααΈααα
α
αααΆα 1: ααααα·αααΎα―αααΆαααΆαααααααα·ααααα»ααααααΆααα’ααααα ααΆα’αΆα
ααααααααααΎαα
αα
α»ααααααααΆααααααα·ααΈαα»αααααααα’αααα αααα»αααΉαααααΆααααααα·ααΈαα»ααααααααΆαααΌαααααΆαααΎ Chromium ααΌα
ααΆ Chrome, Vivaldi, Brave α¬ Opera α αααααΊααΆααααααΆαα
α»αααααααααα»αααααΈααΈααΆαααΆαααα AV1
α
αααΆα 2: αααααΆαα Firefox 66 αα
ααΎ Linux α’αααααΉαααααΌααααααααα media.av1.enabled
α
αΌααα
αααα»αα’αααααα true
Π² about:config
α
αααΆα 3: αααα»αααΆααααααα
α
α·ααααα·ααα½ααααα
αΌα GIFs ααααααΆααΆαααααα αααααΆαααα αααααααααΆ αα·αα
ααα½ααα·αααααααααααΆααααΌαααΆαααΎααααΈαααα»ααααααααα! (αααβααΉαβααΆβααΏαβα α½αα
α·αααβαααααβαααααβαααβαα·ααΆαβα’αααΈβααΆαβααΆααβαααααβα
ααα½αβαα·ααααααβααΎβααααα :))α ααα»ααααα’αααα’αΆα
ααΎα GIFs α
α»αααααααα
ααΈααα
αααααα
αααΆαααααα’αααααααααα Habr αα·αβα’αα»ααααΆαβα±ααβα’αααβααΎαβααΆαβαααβαααβαααααβαααααααα·βαα·αβααααα·ααα»αβα―αααΆαβαα ααΌα
ααααβα’αααβα’αΆα
βααΆαβαααααβααβαα»αααΆαβααα»αααααα α’αααα’αΆα
ααΎαααΎαααΆ "ααΌαααΆαααΆαα
αααΆ" ααΉαααΎααα
ααΌα
ααΆαααααΆαααααααααΆαα
αα»αααΈ 1 @ 200 Kbps
ααΆαα αααΆααΆα αααΎααα ααΈααα αααααΆαααΆααααΎαααΆαα·ααααα α’ααααΆαααΈαααΆαα α’αααα’αΆα ααΎαααΎαααααΆααααΆααΎ H.264 α’αΆαααααααα»ααααΆαα α’ααααΆαααΈαααα ααΆαααα’αΆα ααΎαααΎαααααΆααα VP9 ααααΎα’ααααααΆαααΆααααααΎαα‘αΎαααααα·α ααα»ααααααΆααααα ααα’αΆα ααΎαααΎαα AV1 αααααααΆαα αααΆαα αααααΎαααΌαααΆαα αααΆααααΆαα
H.264
VP9
AV1
αα»αααΈ 2 @ 200 Kbps
ααΆαααΆαα·ααΆ CGI ααα’αααααααΆα αααΎααα ααΈαααα ααααααβαα·αβαα»αβααΈβααΎαβαα»αβαα ααα»ααααβααΆβαα½αβ AV1 ααΎαβαα βααα’βααΆαα
H.264
VP9
AV1
αα»αααΈ 3 @ 100 Kbps
αα αααα»ααα»αααα ααΎαααααααα’ααααΆαααΈαα α»αααααααΉα 100 Kbps α αΎαααααααααΊααααα AV1 αααααΆααΆαααΆα’αααααΉαααΆααααααααα½α αααααΈααΆααΆαα’ααααΆαααΈαααΆαααααα!
H.264
VP9
AV1
Cherry αα ααΎαα
ααΎααααΈαααα ααα’αααααααααααααΆαα’αΆααααααααΆα ααα½α bandwidth ααααΌαααΆααααααΆαα»αααΎαααααααααα ααΉα GIF - ααα αααα»αααααΈααα’αΌααΆααα’ααααΊαααααααΆα... 1.62 ααααΆαα!! ααααΌαα αΎαα 1,708,032 αα! αααααΆααααΆααααααααα αααααΊααΆααα αααΈααα’αΌ GIF αα·α AV1 αααααΆαααα»αααΈαα½αα
GIF
AV1
αα»αααΈα‘
11.7 ααααΆαα
0.33 ααααΆαα
αα»αααΈα‘
7.27 ααααΆαα
0.18 ααααΆαα
αα»αααΈα‘
5.62 ααααΆαα
0.088 ααααΆαα
ααααΆααβααβαα½αβα±ααβααααΆααβααα’αΎα! ααααα?
α αααΆα: ααα αα―αααΆααααα VP9 αα·α H264 αα·αααααΌαααΆααααααα±αααα ααααααα½αααΆαα·ααα»αααΈ AV1 αααααΆαααΆαααααΎααααΆααα’ααααΆαααΈαααΌα ααααΆα ααΆβααΉαβαα·αβα αΆαααΆα αβααααΌαβααααααβαα½αβααβααΈαβααααααβαααβαααβααΆαβααα αβααΌα βααααΆβαααβαα ααΎααααΈβαααααΆααβααΆβααΌαα·αβααΆαααααβααα·αβααΆαβαα»αααΆαβααα’βααΆα GIF αα βααα αβα―αααΆαβααΌα βααΆαβα αααΎαα
ααααα: www.habr.com