找回密码
 立即注册
收起左侧

phonon播放opencv生成的avi文件问题

9
回复
8492
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2013-9-7 14:31:14 显示全部楼层 |阅读模式
1Qter豆
用opencv函数从摄像头采集视频并保存为avi文件,无压缩格式
现用QT的phonon播放,可是一直是黑屏没有反应,请问是什么原因,是否缺什么库?播放一般的avi文件是可以的。
播放器代码就是最基本的代码,如下:

#include <QApplication>#include <QWidget>#include <phonon>#include <QUrl>#include <QObject>#include <QVBoxLayout>#include <QHBoxLayout>#include <QLabel>int main(int argc, char *argv[]){    QApplication app(argc, argv);    QWidget *widget = new QWidget;    widget->setWindowTitle("Media Player");    widget->resize(400,400);    Phonon::MediaObject *media = new Phonon::MediaObject;    media->setCurrentSource(Phonon::MediaSource("D:/Save_Video/20130906135128.avi"));    Phonon::VideoWidget *vwidget = new Phonon::VideoWidget(widget);    Phonon::createPath(media, vwidget);    vwidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);    Phonon::AudioOutput *aOutput = new Phonon::AudioOutput(Phonon::VideoCategory);    Phonon::createPath(media, aOutput); QLabel *label = new QLabel("Volume: ");    Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;    volumeSlider->setAudioOutput(aOutput);    volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);    Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider;    seekSlider->setMediaObject(media);    QHBoxLayout *hLayout = new QHBoxLayout;    hLayout->addWidget(label);    hLayout->addWidget(volumeSlider);    hLayout->addStretch();    QVBoxLayout *vLayout = new QVBoxLayout; vLayout->addWidget(vwidget);    vLayout->addWidget(seekSlider); vLayout->addLayout(hLayout);    widget->setLayout(vLayout);    widget->show();    media->play();    return app.exec();}

最佳答案

查看完整内容

windows不装插件的话,只能播放几种格式,你装个解码器插件就能支持多格式的了 记住,微软自带的windows media player能播放该文件,Phonon就能播放
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-7 14:31:15 显示全部楼层
windows不装插件的话,只能播放几种格式,你装个解码器插件就能支持多格式的了
记住,微软自带的windows media player能播放该文件,Phonon就能播放
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-7 19:44:46 显示全部楼层
既然能播放其他格式的avi,说明你这个格式不对
还有就是,你用微软自带的windows media player播放该文件,如果能播放,Phonon就能播放
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-9-7 20:12:47 显示全部楼层
a408815041 发表于 2013-9-7 19:46
windows不装插件的话,只能播放几种格式,你装个解码器插件就能支持多格式的了
记住,微软自带的windows me ...

谢谢,mediaplay播放也不行,我用opencv带的读avi文件函数可以读取视频帧显示,只是播放器的代码都要自己写了,后来找了mplayer,可以了,就是也要重新写代码了。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-9-8 10:54:06 显示全部楼层
a408815041 发表于 2013-9-7 19:46
windows不装插件的话,只能播放几种格式,你装个解码器插件就能支持多格式的了
记住,微软自带的windows me ...

请问是不是只要装了解码器插件,windows media play能播放了,phonon就能播放?昨天后来下了个插件,在mediaplay里面能播放了,可是程序就死在creatpath那里,无法运行了。
谢谢!
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-9-8 13:18:34 显示全部楼层
bigbigmouse 发表于 2013-9-8 10:54
请问是不是只要装了解码器插件,windows media play能播放了,phonon就能播放?昨天后来下了个插件,在me ...

在别人的电脑上可以运行,他说他刚重装的机器,也没装过编解码器,可是我电脑上就是不行,mediaplay更新说已经是最新版本了,谁知道windows mediaplay有啥编解码器可以装的,帮忙提供个链接?谢了先

点评

比如win 7 codecs K-Lite codec 卫士里面都有  详情 回复 发表于 2013-9-9 09:04
Phonon调用的微软的底层,你的windows media player能播放的话,Phonon就能播放的。这个我肯定  详情 回复 发表于 2013-9-9 09:02
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-9 09:02:58 显示全部楼层
bigbigmouse 发表于 2013-9-8 13:18
在别人的电脑上可以运行,他说他刚重装的机器,也没装过编解码器,可是我电脑上就是不行,mediaplay更新 ...

Phonon调用的微软的底层,你的windows media player能播放的话,Phonon就能播放的。这个我肯定
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-9 09:04:57 显示全部楼层
bigbigmouse 发表于 2013-9-8 13:18
在别人的电脑上可以运行,他说他刚重装的机器,也没装过编解码器,可是我电脑上就是不行,mediaplay更新 ...

比如win 7 codecs
K-Lite codec 卫士里面都有
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-9-9 16:30:49 显示全部楼层
a408815041 发表于 2013-9-9 09:04
比如win 7 codecs
K-Lite codec 卫士里面都有

非常感谢您的回答,我装了Win 7 codecs,mediaplay是能播放了,可是程序我一运行就死掉了,无法播放,我用的最简单的测试程序,不知道是怎么回事?连以前能播放的avi也不行了。
#include <QApplication>
#include <QWidget>
#include <phonon>
#include <QUrl>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget *widget = new QWidget;
    widget->setWindowTitle("Video Player");
    widget->resize(400,400);
    Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, widget);
    player->load(Phonon::MediaSource("test.avi"));
    player->play();
    widget->show();
    return app.exec();
}
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-9-9 17:39:23 显示全部楼层
bigbigmouse 发表于 2013-9-9 16:30
非常感谢您的回答,我装了Win 7 codecs,mediaplay是能播放了,可是程序我一运行就死掉了,无法播放,我 ...

在项目的另一个大程序里可以运行播放,可是对于上面这个最简单的代码为什么不能运行,还是没找到原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了