ืื 2019 ืืืืืข ืืืื ืฉื ืืืื ืขื GIFs (
ืื ื ืฆืืจื ืงืืืฆื GIF ืืื ืฉืื ืื ื ืืืืืื!
ืื ืืืืจื ืฉืื ืืื ืืฉืคืจ ืืช ืืืืจืืช ืืขืื ืช ืืืชืจ, ืื ืืชื ืฆืจืื ืืืืคืืจ ืืงืืืฆื GIF! ืืื ืืื ืื ืื ืืืฆืจืื ืชืืื ืืช ืืื ืคืฉืืช? ืืชืฉืืื ืืื ืืืืื. ืืืจืื ืืืงืจืื, ืชืงืืื ืืืืืช ืืืื ืืืชืจ ืืืืกืืื ืืืงืื ืฉื 50-90%! ืืืืื, ืืจืื ืืืืจืื ืืฉ ืืชืจืื ืืช ืืืกืจืื ืืช. ืืืฉืจ ืืชื ืืืืืฃ GIF ืืืืืืื, ืืจืื ืื ืชืืื ืืืฆืื ืฉืื ืืกืจืื ืืช.
ืชืคืกืืง ืขื ืื ืงืืืฆื ื-GIF!
ืืืจืื ืืืื, ืืืืคืช ืงืืืฆื GIF ืืกืจืืื ืื ืืืืชื ืืืจ ืฉืืฉืืจื ืืฉื ืื ืืืืจืื ืืช, ืื ืฉืื ืืืืื ืืืจืืฉืื ืืืจ ื ืืฆืืื ืืฉืืืืฉ. ืืคืืกื ืืื ืื ืืืฆืื ืืช ืืืืื ืืืืฉ, ืืื ืจืง ืืฉืคืจ ืืืขื ืืช ืืคืชืจืื ืืช ืืงืืืืื. ืื ืื ื ืืชืืฆืืช:
- ืงื GIF ืืืืจ ืืืชื ืืกืจืืื
- ืืงืืื ืืช ืืกืจืืื ืืืืฆืขืืช H.264 ืื VP9, โโืืืืืจ. ืืืืก ืืืชื ืืืจืื ืืืชื ืืืืื MP4 ืื WebM
- ืืืืฃ
<img>
ืขื GIF ืืื ืคืฉ<video>
ืขื ืจืืืจ - ืืคืขื ืืคืขืื ืืืืืืืืช ืืื ืฆืืื ืืืืค ืืงืืืช ืืคืงื GIF
ืื 2019
ืขืืฉืื 2019. ืืืชืงืืืืช ืืชืงืืืช, ืืื ืื ื ืืืืืื ืืืืฉืื ืืืชื. ืขื ืื ืืื ืื ื ืฉืชื ืืคืฉืจืืืืช codec ืื ืชืืืืช ืืืืคื ื ืจืื ืืื ืืืคืืคื ืื ืืืื ืงืืืื ืืืืืืื:
- H.264 - ืืืฆื ืืฉื ืช 2003 ืืื ืคืืฅ ืืืืชืจ ืืืื
- VP9 - ืืืคืืข ืืฉื ืช 2013 ืืืฉืื ืฉืืคืืจื ืืืืกื ืฉื ืืืขื 50% ืืืฉืืืื ื-H.264, ืื ืื
ืืคื ืฉืื ืืืชืืื ืืื ืื ืชืืื ืืื ืื ืื ืืจืื
ืืขืจื: ืืืจืืช ืฉ-H.265 ืืื ืืืจืกื ืืืื ืฉื H.264 ืืืกืืืืช ืืืชืืจืืช ื-VP9, ืื ื ืื ืืืฉืื ืืืชื ืืืื ืชืืืื ืืงืืื ืืืคืืคื, ืืคื ืฉืืืฆื ืืขืืื
ืืืืจ, ืืืืจื ืฉืื ื ืืื ืืืืืฅ ืงืืืฆื GIF ืขื ืงืืื ืืืืื ืืงืื ืืืืชืจ ืืืคืฉืจื ืืื ืืืืืฅ ืืช ืืื ื ืืืขืื ื. ืื ืชืืื 2019 ืืืืจื ืื ืื ืืื ืื ื ืชืงื ืืืฉ ืืืืืกืช ืืืืื ืืืจืกื ื ืฉืื ื. ืืื ืืื ืงืืื ืื ืงืจื AV1. ืขื AV1 ืืชื ืืืื
AV1 ืืฉืืจืืชืื ืืื 2019!
ืขื ืฉืืืื ืืช ืขืืืื
ืืืืจืื ื ื ืืกืคื ืชืืืื ืืคืขื ืื ืืืืื AV1 ืืืจืกืืืช ืฉืืืื ืืขืืืื
ืืกืืืจืืคืื ืื
ืืจืืข ืืื ืชืืืืช ืืืืจื ืืกืืืจืืคืื ืื ืืืื ืืืขืืจ ืืคืขื ืืื ืืชืืืืื. ืืชื ืืืื ืืขืฉืืช ืคืขื ืื ืชืืื ื, ืื ืื ืื ืืืืื ืืฆืจืืืช ืกืืืื ืืืืืจืช. ื-SOCs ืื ืืืืื ืืจืืฉืื ืื ืืชืืืืื ืืคืขื ืื ืืืืจื ืฉื AV1 ืืืคืืขื ื-2020.
ืืื ืงืืจืื ืืืืืจ ืืืืจืื, "ืื ืื ืืืคืื ืื ื ืืืืื ืขืืืื ืื ืชืืืืื ืื ืืจืืื, ืืื ืืืฉืชืืฉ ื-AV1?"
AV1 ืืื codec ืืืฉ ืืืื, ืืื ืื ื ืืืฉ ืืชืืืืช ืืืกืชืืืืช ืฉืื. ืืฉืื ืขื ืืืืืจ ืืื ืืฉืื "ืืืื ืฉืืชื ืืืฉืืื, ืืงืื ืืขืงืื". ืชืืืื ืืฉืืืื ืืขืืืื ืืฉืืขืฆืื ืชืืืฅ ืืชืจืื ืขืืืจ ืืืง ืืืงืื. ื-codec ืืฉื ืื ืืืืืื ืืฉืืฉ ืืชืจืืืฉ ืืืืคื ืืืฉืจ 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 - ะะบะปััะฐะตะผ ะฑัััััะน ััะฐัั ะฒะธะดะตะพ, ะฟะตัะตะผะตัะฐั ัะฐััั ะดะฐะฝะฝัั
ะฒ ะฝะฐัะฐะปะพ ัะฐะนะปะฐ. ะญัะพ ะฟะพะทะฒะพะปะธั ะฝะฐัะฐัั ะฒะพัะฟัะพะธะทะฒะตะดะตะฝะธะต ะตัั ะดะพ ะฟะพะปะฝะพะน ะทะฐะณััะทะบะฐ ัะฐะนะปะฐ.
ืืฆืืจืช GIF
ืืื ืืืฆืืจ ืืช ื-GIF ืืฉืชืืฉืชื ืืคืงืืื ืืืื. ืืื ืืืงืืื ืืช ืืืืื, ืฉืื ืืชื ืืช ื-GIF ื-720px ืจืืื ื-12 fps ืืืงืื ืืกืจืืื ืืืงืืจื ืฉื 24fps.
./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 ืขื ืืื ืืงืก ืชืฆืืจื ืืืืืืจ ืืช ืืืื media.av1.enabled
ืืชืื ืืฉืืขืืช true
ะฒ about:config
ืืขืจื 3: ืืืืืชื ืื ืืืืื ืงืืืฆื GIF ืจืืืืื ืืืื ืืืื ืืืืื ืืืืื ืืืืืช ืื ืชืื ืื ืฉื ืืจืฉ ืืื ืืืขืื ืืช ืืืฃ ืืื! (ืืื ืืืื ืืืจืื ื, ืฉืื ืืฃ ืื ืขืืกืง ืืืคืืชืช ืืืืช ืื ืชืื ืื ืืืฃ :)). ืืื ืืชื ืืืื ืืจืืืช ืืช ืงืืืฆื ื-GIF ืืกืืคืืื ืืื
ืืขืจืช ืืืชืจืื: 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
ืืืืืื ืขื ืืขืืื
ืืื ืืกืืื ืืช ืืืืืจ ืืื ืืืจืืฉื ืฉื ืืืืช ืจืืื ืืคืก ืฉื ืืกืื ืืืฉืืืื ื-GIF - ืืืืื ืืืืื ืฉื ืื ืืกืจืืื ืื ืืืื ืืืชืจ... 1.62 ืืืืืืื!! ืืืื. ืืื ืคืืงืื ื 1,708,032 ืืชืื! ืืฉื ืืฉืืืื, ืื ื ืืืื ืืืืืืื GIF ื-AV1 ืขืืืจ ืื ืกืฆื ื
GIF
AV1
ืกืฆื ื 1
11.7 MB
0.33 MB
ืกืฆื ื 2
7.27 MB
0.18 MB
ืกืฆื ื 3
5.62 MB
0.088 MB
ืคืฉืื ืืืืื! ืืืื ืื?
ืืขืจื: ืืืื ืืงืืฆืื ืฉื VP9 ื-H264 ืืื ื ื ืชืื ืื, ืืืืืื ืฉืื ืืืขื ืืื ื ืฉืื ืื ื-AV1 ืขืงื ืืฉืืืืฉ ืืืืชื ืงืฆื ืกืืืืืช. ืื ืืืื ืืืืชืจ ืืืืกืืฃ ืขืื ืฉืชื ืขืืืืืช ืขื ืืืชื ืืืืื, ืจืง ืืื ืืืืืืฉ ืฉืงืืืงืื ืืื ืืืืฆืจืื ืืืืืช ืืจืื ืืืชืจ ืืืื ื-GIF ืืืืืื ืงืื ืื ืืืจืื.
ืืงืืจ: www.habr.com