ffmpeg с асинхронного ввода-вывода?


Кто-нибудь знает, делает ли ffmpeg асинхронный файл io? То есть входной файл читается в отдельном потоке, чтобы избежать блокировки ввода-вывода обрабатывающим потоком?

В основном я хочу выяснить, нужно ли мне делать вызовы "av_read_frame" внутри отдельного потока (чтобы избежать блокировки) или если ffmpeg alrdy обрабатывает эту проблему?

Как я могу это понять? Я попытался загрузить исходный код ffmpeg, но не смог найти ничего полезного.

2 2

2 ответа:

Вы должны сделать это сами. FFmpeg имеет только минимальную осведомленность о потоке, и, как сказал icecrime, сигнатура функции, очевидно, исключает ее асинхронное выполнение.

Хотя я все еще только новичок в ffmpeg,я понимаю, что конкретная функция, которую вы упомянули, не связана с api ffmpeg. Вы, вероятно, захотите сделать это в любом случае, потому что вам нужно будет решить, какой тип кадра возвращается (аудио, видео и т. д...) а потом решить, что с ним делать.