[Примечание: это переписанный предыдущий вопрос, который был сочтен неуместным и закрыт.]
Мне нужно сделать некоторый анализ телевизионного (ТВ) видео на уровне пикселей. Точная природа этого анализа не имеет значения, но в основном он включает просмотр каждого пикселя каждого кадра телевизионного видео, начиная с транспортного потока MPEG-2. Хост-платформой будут многопроцессорные 64-разрядные Linux-машины серверного класса.
Мне нужна библиотека, которая может обрабатывать декодирование транспортного потока и предоставлять мне данные изображения в режиме реального времени. OpenCV и ffmpeg — две библиотеки, которые я рассматриваю для этой работы. OpenCV привлекателен, потому что я слышал, что у него есть простые в использовании API и богатая поддержка анализа изображений, но у меня нет опыта его использования. Я использовал ffmpeg в прошлом для извлечения данных видеокадра из файлов для анализа, но ему не хватает поддержки анализа изображений (хотя IPP Intel может дополнить).
В дополнение к общим рекомендациям по подходам к этой проблеме (исключая собственно анализ изображения) у меня есть несколько более конкретных вопросов, которые помогут мне начать работу:
- Используются ли ffmpeg или OpenCV в промышленности в качестве основы для анализа видео в реальном времени, или есть что-то еще, на что мне следует обратить внимание?
- Может ли OpenCV декодировать видеокадры в режиме реального времени, оставляя при этом достаточно ресурсов ЦП для выполнения нетривиального анализа изображений, в том числе в режиме реального времени?
- Достаточно ли использовать ffpmeg для декодирования транспортного потока MPEG-2, или предпочтительнее просто использовать библиотеку декодирования MPEG-2 напрямую (и если да, то какую)?
- Существуют ли определенные форматы пикселей для выходных кадров, которые ffmpeg или OpenCV особенно эффективны для создания (например, RGB, YUV или YUV422 и т. д.)?