Qt를 사용하여 RTP 비디오 스트림을 재생하시겠습니까?
-
13-09-2019 - |
문제
비디오가 H264로 인코딩되고 오디오가 포함되지 않은 수신 RTP 스트림을 재생할 수 있는 Qt 위젯을 만들고 싶습니다.
나의 기본 구현 계획은 다음과 같습니다.
내 환경:
- 우분투 9.10
- Qt 4.6
내 질문:
- 내 접근 방식이 좋은가요?아마도 내가 더 분명하거나 간단한 해결책을 간과하고 있는 것 아닐까요?
- 현재 다음 문제가 발생했습니다.비디오 스트림을 재생하려고 하면 MediaObject의 상태가 errorType FatalError를 사용하여 ErrorState로 전환됩니다.누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있나요?
편집하다
내가 찾은 한 가지 해결책은 Qt와 함께 libVLC를 사용하는 것입니다. 실.여기 코드 샘플 관심있는 사람을 위해.저는 여전히 Phonon 기반 솔루션을 찾고 있습니다.
이상적으로는 SDP 파일만 제공하면 작업이 완료됩니다.
해결책
LIBVLC 솔루션을 사용하여 작업 할 수있었습니다. 나는 이것이 바로 그라 란 테에게 할 수 없다 베스트 솔루션은 단순히 그것을 돌보는 것을 멈추었습니다.
여기에 있습니다 LIBVLC 샘플에 링크.
다른 팁
내가 Phonon이 적어도 Windows에서 작동한다는 것을 이해하는 방법은 QT가 귀하의 경우 DirectShow(\plugins\phonon_backend\phonon_ds94.dll) 및 GStreamer용 포논 백엔드 플러그인을 제공한다는 것입니다.그런 다음 RTP 스트림을 소스로 받아들일 수 있는 DirectShow 필터를 직접 얻거나 작성합니다.DirectShow는 디코딩을 담당하고 Phonon은 렌더링을 담당합니다.
따라서 백엔드가 작동하면 애플리케이션 코드는 다음과 같이 간단합니다.
Phonon::MediaObject *media = new Phonon::MediaObject();
Phonon::VideoWidget *video = new Phonon::VideoWidget();
Phonon::createPath(media, video);
media->setCurrentSource(source);
media->play();
문제는 RTP를 소스로 받아들이는 GStreamer 백엔드에 있는 것 같습니다.아무런 문제 없이 독립형 GStreamer에서 해당 소스를 재생할 수 있습니까?
제휴하지 않습니다 StackOverflow