slow encoding from raw rgb
Hello, So we are trying to encode raw rgb data from a pipe with ffmpeg. We found that ffmpeg implicitly converts the data to tv range bt601, which is suboptimal. Especially tv range loses more information than neccessary, also bt709 seems to be the better color space. We know we can fix this by adding -vf scale=out_color_matrix=bt709:out_range=pc. Unfortuntately thi makes encoding a lot slower (40 vs 60 fps) which effectively makes this approach too slow for us. Do yiz have any idea why this is the case? Best Daniel
On 10/18/18, Daniel Oberhoff <danieloberhoff@googlemail.com> wrote:
Hello,
So we are trying to encode raw rgb data from a pipe with ffmpeg. We found that ffmpeg implicitly converts the data to tv range bt601, which is suboptimal. Especially tv range loses more information than neccessary, also bt709 seems to be the better color space.
We know we can fix this by adding -vf scale=out_color_matrix=bt709:out_range=pc. Unfortuntately thi makes encoding a lot slower (40 vs 60 fps) which effectively makes this approach too slow for us. Do yiz have any idea why this is the case?
That approach does not use slice threading.
Am 18.10.18 um 12:13 schrieb Paul B Mahol:
On 10/18/18, Daniel Oberhoff <danieloberhoff@googlemail.com> wrote:
Hello,
So we are trying to encode raw rgb data from a pipe with ffmpeg. We found that ffmpeg implicitly converts the data to tv range bt601, which is suboptimal. Especially tv range loses more information than neccessary, also bt709 seems to be the better color space.
We know we can fix this by adding -vf scale=out_color_matrix=bt709:out_range=pc. Unfortuntately thi makes encoding a lot slower (40 vs 60 fps) which effectively makes this approach too slow for us. Do yiz have any idea why this is the case? That approach does not use slice threading.
So what is the suggested way to do this? Or should we just accept that rgb encoding is either slow or suboptimal? Is this such a rare use-case? Best Daniel
On 11/2/18, Daniel Oberhoff <danieloberhoff@googlemail.com> wrote:
Am 18.10.18 um 12:13 schrieb Paul B Mahol:
On 10/18/18, Daniel Oberhoff <danieloberhoff@googlemail.com> wrote:
Hello,
So we are trying to encode raw rgb data from a pipe with ffmpeg. We found that ffmpeg implicitly converts the data to tv range bt601, which is suboptimal. Especially tv range loses more information than neccessary, also bt709 seems to be the better color space.
We know we can fix this by adding -vf scale=out_color_matrix=bt709:out_range=pc. Unfortuntately thi makes encoding a lot slower (40 vs 60 fps) which effectively makes this approach too slow for us. Do yiz have any idea why this is the case? That approach does not use slice threading.
So what is the suggested way to do this? Or should we just accept that rgb encoding is either slow or suboptimal? Is this such a rare use-case?
I suggest to raise bounty to further improve swscale library.
participants (2)
-
Daniel Oberhoff -
Paul B Mahol