Как посмотреть видео h263 через rtsp с помощью gstreamer
Я пытаюсь прочитать видеопоток, закодированный в формате h263, который я получаю через rtsp с помощью gstreamer в Windows. В конце я должен получить формат BGR или RGB (чтобы использовать Qimage/Qt).
Я могу смотреть поток с VLC rtsp://172.22.1.2:8554/test
Я могу наблюдать за потоком с помощью cmd: gst-launch-1.0 rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! autovideosink
Я не могу сделать это в моей программе. Я старался m_pipeline = gst_parse_launch("rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! appsink name=sink caps=video/x-raw, format=BGR", &error);
Я старался uridecodebin uri=..
в состоянии rtspsrc location=..
,
Я старался video/x-h263
а также video/x-raw, format=RGB
У меня появляется сообщение об ошибке из-за заглавных букв, или программа вылетает.
Я не знаю, если я не использую правильные элементы или конец моей команды неправильный или что-то еще..?
1 ответ
Скорее всего, вы получаете сообщение об ошибке, потому что прописные буквы src в avdec_h263 не совпадают с указанными вами для appink. Запуск cmd gst-inspect-1.0 avdec_h264
Вы можете видеть, что шаблон src pad caps поддерживает только video/x-raw format = I420
в то время как ваш appsink настроен на video/x-raw format=BGR
,
Попробуйте добавить videoconvert
элемент вашего конвейера между декодером и appsink: m_pipeline = gst_parse_launch("rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! videoconvert ! appsink name=sink caps=video/x-raw, format=BGR", &error);