ProRes is a line of intermediate codecs, which means they are intended for use during video editing, and not for practical end-user viewing.
ProRes 是一种中间编码格式,也就是说主要用于视频编辑,而不是直接给用户端看的。
The benefit of an intermediate codec is that it retains higher quality than end-user codecs while still requiring much less expensive disk systems compared to uncompressed video.
好处主要有两个: 1. 保持视频的高质量 2. 相对于无损视频来说,占用的空间少。
It is comparable to Avid's DNxHD codec or CineForm which offer similar bitrates and are also intended to be used as intermediate codecs.
ProRes 422 is a DCT-based[2] intra-frame-only codec and is therefore simpler to decode than distribution-oriented formats like H.264.
ProRes 422 只有帧内编码。也就是视频的所有帧都是关键帧。
All ProRes422-variants use Chroma subsampling of 4:2:2 at 10 Bit Color depth.
所有ProRes422采用4:2:2采样和10比特的位深。
Key features
- 8K, 5K, 4K, UHD, 2K, HD (up to 1920×1080), & SD resolutions
- Variable bitrate (VBR) encoding
- Normal 147 Mbit/s and High-Quality 220 Mbit/s and ProRes (LT) 100Mbit/s as well as ProRes Proxy for HD 45Mbit/s for HD resolution at 60i
- Normal 42 Mbit/s and High-Quality 63 Mbit/s for SD resolution at 29.97
- Fast encoding and decoding (both at full size and half size)
encoding in ProRes using ffmpeg
Prores is a 422 codec, with an existing 4444 variation.
FFmpeg comes with 3 different prores encodes:
"prores",
"prores_ks" (formerly named "prores_kostya")
and "prores_aw" (formerly named "prores_anatolyi").
In our testing we've used the "prores" and the "prores_ks" encoders and found "prores_ks" to be the best encoder to use.
It is the only one that supports the 4444 colorspace and although it may be slightly slower.
The color quality of the videos produced by these two codecs was visually indistinguishable Because of the 4444 support we've decided to go with Kostya's version of prores.
FFmpeg 中有三种prores的编码: "prores" "prores_ks" "prores_aw"
目前看"prores_ks" 应该是最好的。
There are 4 profiles that exist within Prores: Proxy, LT, SQ and HQ (and then optionally 4444).
In ffmpeg these profiles are assigned numbers (0 is Proxy and 3 is HQ). See Apple's official Prores whitepaper for details on the codec and information associated with the profiles. For quick reference, the basic difference is the bitrates: (TODO).
Prores有4中profile,主要区别是码率。
The other option that is used with prores is the -pix_fmt option. This is normally set to yuv422p10le or something like that, but if you want to use the 4444 prores you would set it to yuva444p10le. (A list of possible pixel formats can be invoked by running ffmpeg -pix_fmts. Note that not all of these formats are actually supported with prores).
一般prores指定yuv422p10le。
DNxHR and ProRes was optimized to be visually lossless through many generations of decoding and re-encoding.
References:
https://en.wikipedia.org/wiki/Apple_ProRes
https://video.stackexchange.com/questions/14712/how-to-encode-apple-prores-on-windows-or-linux
https://support.apple.com/zh-cn/HT202410
https://support.apple.com/en-us/HT202410
https://trac.ffmpeg.org/wiki/Encode/VFX