Я хочу создать сервер протокола передачи в реальном времени (RT (S) P) с использованием gstreamer api в c ++ (на платформе linux) с возможностью отправки данных, закодированных пользовательским кодером / декодером.
Пока у меня есть простой сервер, работающий с использованием следующего учебника:
http://www.ip-sense.com/linuxsense/how-to-develop-a-rtsp-server-in-linux-using-gstreamer/
Следующим шагом было бы найти способ сделать это с необработанными изображениями, а затем с моим пользовательским кодировщиком.
Может кто-нибудь указать мне на учебник / пример чего-то похожего и, возможно, объяснить, какой из RTSP и RTP (или оба?) Лучше всего использовать для этого?
чтобы использовать пользовательский кодер / декодер, вам нужно написать собственный плагин gstreamer.
Если вы посмотрите на строки с 83 по 85 в учебном коде, это определение конвейера gstreamer.
gst_rtsp_media_factory_set_launch (factory, «(» «videotestsrc! video / x-raw-yuv, ширина = 320, высота = 240, частота кадров = 10/1!» «x264enc! очередь! имя rtph264pay = pay0 pt = 96! audiotestsrc! audio / x-raw-int, rate = 8000! alawenc! rtppcmapay name = pay1 pt = 97 «») «);
здесь конвейер использует кодер x264enc и H.264. После написания плагина gstreamer вы можете изменить приведенный выше конвейер для использования вашего кодировщика.
Других решений пока нет …