plazum / find-keke

寻找唐可可
https://zrtech.org/find-keke/
GNU General Public License v3.0
130 stars 9 forks source link

Replace GIF to WebP #3

Closed nkh0472 closed 2 years ago

nkh0472 commented 2 years ago

Fix #2

plazum commented 2 years ago
  1. bubu_c5_q60.webp的质量比起原图下降了,你能再压一个好一点的吗
  2. good_c5_q60.webp节省的空间看起来不多,我觉得没必要
nkh0472 commented 2 years ago
  1. bubu_c5_q60.webp的质量比起原图下降了,你能再压一个好一点的吗
  2. good_c5_q60.webp节省的空间看起来不多,我觉得没必要

首先,小尺寸的文件是十分必要的。用空间换质量,国内不借助技术手段访问github页面实属吃力……没有耐心等下去,如果等加载完可能得10分钟以上。单单两个没有功能性的图片导致整个网页的用户体验报销我觉得不值。

143172953-c3b8fb09-a041-4d64-92e9-422db6d8662b

其实最理想的方案是用正规的视频格式而不是图片格式。使用图片的代价是极大的,就原gif文件来说,码率33mb/s,满足在线播放60fps的4K视频是绰绰有余的!事实上,由于gif的自身限制,图片的质量已经大打折扣了(使用色表的缘故),如果使用源视频制作的话,可以在200kb以内得到质量远高于目前转换结果的文件。

例如使用默认参数将bubu.gif转换为mp4格式后,文件尺寸仅为227kb,不仅尺寸远远小于源文件,并且视频质量也是要高于高参数的webp文件的。

>ffmpeg -i bubu.gif b.mp4
(...)
Input #0, gif, from 'bubu.gif':
  Duration: 00:00:02.44, start: 0.000000, bitrate: 33054 kb/s
  Stream #0:0: Video: gif, bgra, 464x445, 50 fps, 50 tbr, 100 tbn, 100 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (gif (native) -> h264 (libx264))
(...)
[libx264 @ 00000000029e6d40] profile High 4:4:4 Predictive, level 3.1, 4:4:4, 8-bit
[libx264 @ 00000000029e6d40] 264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'b.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv444p(tv, progressive), 464x445, q=2-31, 50 fps, 12800 tbn
(...)
video:224kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.007885%

后附默认参数转换的mp4文件 mp4.zip

循环播放的办法可以参考: https://www.w3cschool.cn/article/19286706.html


如果坚持要使用图片格式,可以选择高一点的参数来压webp,影响画质和大小的主要参数就是compression_level-q:v这俩;再或者就是用-vf"scale=640:-2"之类的命令让分辨率缩小一半使用FFmpeg保持宽高比 | 码农家园。但是能做的实在是有限。

plazum commented 2 years ago

视频看上去不错,那你就把视频做进去吧,好的话我们就合入

nkh0472 commented 2 years ago

打咩,自己改。方法都给链接了~ QQ截图20211124125848 你可以把webp的放进一个新的branch。master分支用MP4。

plazum commented 2 years ago

……