2017-10-11 55 views
0

经过激烈的搜索在这个网站上,我发现什么都不适合我的问题 。我想在Android5.1设备上编写一个小型视频流客户端 。下面的代码被使用:简单的Qt视频流应用程序,只有声音,没有视频(白色屏幕)

QApplication a(argc, argv); 

QWidget *widget=new QWidget; 
widget->resize(320,200); 

QMediaPlayer *player=new QMediaPlayer; 
QVideoWidget *vw= new QVideoWidget; 
QHBoxLayout *layout=new QHBoxLayout; 

layout->addWidget(vw); 
widget->setLayout(layout); 
player->setVideoOutput(vw); 
player->setMedia(QUrl("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov")); 
player->play(); 
widget->show(); 

问题是,声音的作品,但我只得到一个白色的屏幕。 声音正在播放,但没有视频。

Android设备上的VLC播放器正确播放视频 。我还在android studio中使用了一个小播放器,并播放了视频(但延迟很高,所以对我来说没用)

我用尽了所有可以改变的选项来使其运行。

+0

它看起来像您的Android设备上的Qt库没有正确的编解码器(H.264) – PiedPiper

+0

您好,我可以在qt工具包中检查它支持的编解码器? – Harold

回答

0

Qt不是媒体友好的,如果你想播放像MOV或h.264/h.265等特定格式/编解码器...在跨平台的方式,我建议你使用外部库如QtAV(http://www.qtav.org/)或VLC Qt包装(https://github.com/RSATom/QmlVlcDemo

+0

谢谢,我目前看看qmlvlcdemo,但编译器缺少vlc.h(当前状态)。我目前正在调查我必须使用哪个软件包... – Harold

+0

你是否下载过压缩文件?因为github没有使用git子模块填充zip文件,所以需要克隆版本库 –

+0

不,我使用zip文件。现在我克隆了存储库并在qmake之后构建了包含QmlVlc的文件。我还克隆了QmlVlc存储库并将路径添加到演示的.pro文件。然后我得到vlc.h丢失的错误。 – Harold

0

我相信问题在于Android设备do not support的QuickTime格式(默认为MOV)。

VLC媒体播放器在另一边,is well-known要能够正确播放MOV视频。

尝试使用其他格式(例如MP4WebM)测试视频以了解程序的行为。


我曾经开发了一个桌面软件为Qt流式音频/视频和我有幸与GStreamer框架工作。

在许多功能中,它允许您将MOV视频转换为其他格式。

您可以检查GStreamer for Android教程和QtGstreamer,这是一组针对Qt的良好实施的GSstreamer绑定。

+0

你好,谢谢你的提示gstreamer.I也遇到了gstreamer框架,并会试一试。起初我需要libary用于跨平台开发。我下载了用于x86和x86_64(bin和dev)的安装程序并将对其进行调查。我会报告... – Harold

+0

您应该首先验证您的应用中是否播放了其他格式@Harold – payloc

相关问题