Появилась необходимость работать с аудио/видео под Windows и Linux. В основном, нужно получать видеопоток по RTP или с специфического девайса по USB и выводить на экран/сжимать/передавать по RTP.
И хотелось бы более-менее понять, что происходит, а не просто подключить что-то вроде libvlc и молиться.
Но какую библиотеку для этого лучше использовать? Хочется:
- Хорошую документацию. Ну или чтобы она вообще была.
- Кроссплатформенность.
- Большое количество форматов и кодеков (а кодеки - это вообще часть библиотеки?).
- Желательно биндинги к C#.
Пока что я немного пользовался gstreamer'ом (через gst-launch), но не уверен, что тащить его в Windows - это хорошая идея. С DirectShow вроде бы та же песня, только наоборот. С интересом смотрел на SDL, но решил, что лучше спросить.
Приветствуются советы что почитать по теме, потому что я пока что очень слабо представляю, как, например, видео выводить в qt-шное окно.
Есть ffmpeg, opencv. Биндинги к C# можно найти.
Про последний ничего не скажу, не пользовался. А вот ffmpeg хорошо себя зарекомендовал.
Для вывода видео можно использовать OpenGL, SDL. В основном, видео кадры вы получаете в формате YUV420P, надо конвертировать в RGB. SDL имеет встроенную поддержку.
Есть хороший туториал на хабре.