未来视频编解码器
首先讲一下 这不是我要做个编码器,我是要用一个编码器,准确的来说 是用一些编码器。
Google 推出的 webp 和 webm 出现的场景越来越多了,各类编解码器也都进入到了一个新的纪元。so 几年过去了,我决定 review 一下现有的编解码器。
HEVC (mp4)
- 编解码较快
- 较 AVC 质量更好
HEVC 是现有设备兼容(高质量)能力最强的,编解码要求最低的。(指较新的设备)。
但是也是对商业软件(针对编解码)收费的,个人自由使用。
ffmpeg -i input -c:v libx265 -crf 26 -preset fast -c:a aac -b:a 192k output.mp4
对于 有视频压制工作流的Studio来说 来说,有 NVENC 的夹持下 能做到速度最快。
VP9 (webm)
- 编解码 较 AV1 快,较 HEVC 慢。
- 接近 HEVC 质量
webm 是最折中的一种方案,但不知道为什么使用广度还不够大。
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 2M output.webm
Input #0, matroska,webm, from 'output.webm':
Metadata:
DATE : 2022
MAJOR_BRAND : mp42
MINOR_VERSION : 0
COMPATIBLE_BRANDS: isommp42
ENCODER : Lavf59.16.100
Duration: 00:19:24.71, start: -0.007000, bitrate: 5887 kb/s
Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, smpte170m, progressive), 3840x2160, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandle
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.18.100 libvpx-vp9
DURATION : 00:19:24.707000000
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
HANDLER_NAME : SoundHandle
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.18.100 libopus
DURATION : 00:19:24.581000000
AV1
- 编解码 最慢。
- 较 HEVC 质量 好 30%
AV1 是质量最好的编解码器,也是最慢的。2分钟的视频,能压半天。
所以对于 肯投入技术力的商业公司 会去优化编码速度。但是对于个人来讲,基本不可用,时间空间转换效率极低。
即使质量好,在解码的时候也需要耗费更多的算力(会卡)。
ffmpeg -i input.mp4 -cpu-used 7 -c:v libaom-av1 -b:v 2M output.mkv
[libdav1d @ 0000017456e57a00] libdav1d 0.9.2-106-g19326c4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomav01iso2mp41
date : 2022
encoder : Lavf59.16.100
Duration: 00:19:24.70, start: 0.000000, bitrate: 5720 kb/s
Stream #0:0[0x1](und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv, smpte170m, progressive), 3840x2160, 5580 kb/s, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandle
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 130 kb/s (default)
Metadata:
handler_name : SoundHandle
vendor_id : [0][0][0][0]
[libdav1d @ 0000017456e49080] libdav1d 0.9.2-106-g19326c4
origin
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Yuan Shen 原神 2022.02.17 - 21.48.04.10.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2022-02-17T14:07:29.000000Z
date : 2022
Duration: 00:19:24.70, start: 0.000000, bitrate: 44788 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 44587 kb/s, 60 fps, 60 tbr, 90k tbn (default)
Metadata:
creation_time : 2022-02-17T14:07:29.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
Metadata:
creation_time : 2022-02-17T14:07:29.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
to be continued
本来是想了好多东西,但是因为拖了太长时间,差不多忘完了,等啥时候想起来了再补充吧。