Как использовать sws_scale с изменением ширины?
Можно ли использовать sws_scale
с изменением ширины? Например, у меня есть сценарий, в котором у меня будет кадр RGBA 1920 * 1080, который будет время от времени обновляться в разных регионах. Тогда мне нужен кадр 1920 * 1080 NV12 для кодирования H264. Чтобы уменьшить сложность, я бы хотел выполнять RGBA -> NV12 только в нужных регионах. Я вижу, как я могу достичь верхнего и нижнего смещения с помощью srcSliceY
а также srcSliceH
параметры, но, глядя на sws_scale
Я не вижу, как я мог бы уменьшить ширину. Я, конечно, мог бы сместить указатели шага RGBA, которые дали бы мне правильную позицию с левой стороны, но тогда, насколько я понимаю, swscale
все равно обработать целый ряд. Я не могу изменить исходные значения шага, так как они необходимы для поиска следующей строки. Есть ли варианты сделать это, чего я не вижу?
Я нашел этот вопрос, но не создает ли новый контекст каждый раз, когда потребляет ресурсы? Также кажется, что libyuv
предлагает такую функциональность. Я всегда предполагал swscale
это самая оптимизированная вещь там. Быстрый поиск в Google не нашел сравнений производительности, может быть, кто-то здесь имел опыт работы с ними обоими и может предоставить некоторую информацию о том, что является более эффективным?