Изменение размера видео с помощью FFmpeg C API - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь изменить размер видеофайла на устройстве Android с помощью FFmpeg.Примечание: я не могу использовать FFmpeg в качестве бинарного файла - в моем случае его следует использовать как разделяемую библиотеку (доступен только API FFmpeg C).

Я не нашел никакой документации относительно изменения размера видео, однако похоже, что алгоритмследующее:

10 OPEN video_stream FROM video.mp4
20 READ packet FROM video_stream INTO frame
30 IF frame NOT COMPLETE GOTO 20
40 RESIZE frame
50 WRITE frame TO converted_video.mp4
60 GOTO 20

Должен ли я использовать функцию sws_scale для изменения размера кадра?Есть ли другой (более простой?) Способ изменить размер видеофайла с помощью FFmpeg C API?

1 Ответ

1 голос
/ 29 февраля 2012

Насколько я помню, sws_scale() - это способ сделать это с последними версиями FFmpeg.Несмотря на дополнительные шаги, такие как подготовка SwsContext, его не так сложно использовать, и есть примеры, такие как учебник на сайте, на который вы ссылались.

В старых версиях также была функция img_convert(), которая была немногопроще в использовании, и какое-то время он все еще находился в библиотеке, но не в обычных заголовках - он все еще работал, если вы предоставили свой собственный прототип (взят из более старой версии).Это может все еще работать, если вы хотите, чтобы это произошло - хотя я не пробовал это с последними версиями.Вероятно, безопаснее и лучше использовать sws_scale().

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...