DirectShowPlayerService :: doRender: код неразрешенной ошибки 0x80040266 (ошибка IDispatch # 102) - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь транслировать видео через tcp на основе демона gstreamer. Я создал конвейер, который передает видео через TCP-сокет, как показано ниже:

pipeline_create p  videotestsrc is-live=true pattern="ball" ! x264enc ! queue ! mpegtsmux ! tcpserversink host=0.0.0.0 port=12345

Теперь я разрабатываю приложение для видеоплеера в Qt, которое будет получать указанный выше видеопоток и воспроизводить его. Код приведен ниже.

#include "dialog.h"
#include <QApplication>
#include<QMediaPlayer>
#include<QVideoWidget>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //Dialog w;
    //w.show();
    QMediaPlayer *player=new QMediaPlayer;
    QVideoWidget *vw=new QVideoWidget;
    player->setVideoOutput(vw);
    QUrl *url=new QUrl("http://127.0.0.1:12345");
    QMediaContent *mc=new QMediaContent(*url);
    player->setMedia(*mc);
    vw->setGeometry(100,100,300,400);
    vw->show();
    player->play();
    qDebug()<<player->state();
    return a.exec();
}

Сначала, когда я получил код ошибки 0x80040266, я установил код K-lite c и фильтры LAV , а потом только первый когда мой видеоплеер смог транслировать и воспроизводить видео, как показано.

Но затем, когда я снова пытаюсь воспроизвести свой видеоплеер, он показывает ошибку ниже

DirectShowPlayerService::doRender: Unresolved error code 0x80040266 (IDispatch error #102)

Может ли кто-нибудь помочь мне с этим?

...