
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,主要區(qū)別是碼率。
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