Насколько я помню, sws_scale()
- это способ сделать это с последними версиями FFmpeg.Несмотря на дополнительные шаги, такие как подготовка SwsContext
, его не так сложно использовать, и есть примеры, такие как учебник на сайте, на который вы ссылались.
В старых версиях также была функция img_convert()
, которая была немногопроще в использовании, и какое-то время он все еще находился в библиотеке, но не в обычных заголовках - он все еще работал, если вы предоставили свой собственный прототип (взят из более старой версии).Это может все еще работать, если вы хотите, чтобы это произошло - хотя я не пробовал это с последними версиями.Вероятно, безопаснее и лучше использовать sws_scale()
.
Также возможно обрабатывать масштабирование вне библиотек FFmpeg, но это, вероятно, больше проблем, чем стоит в этом случае.Документация Doxygen для библиотек описывает структуру AVPicture
достаточно хорошо, чтобы работать с ней напрямую или передавать изображение в / из какой-либо другой формы.Основная трудность заключается в том, что вы можете работать или конвертировать используемый формат цвета / пикселя - если вам придется конвертировать его в другой формат, вы должны использовать sws_scale()
хотя бы для такого большого количества, если не для изменения размера.