【问题标题】:QT Multimedia, black screen for H264 movieQT Multimedia,H264 电影黑屏
【发布时间】:2013-06-04 13:51:39
【问题描述】:

我正在尝试使用 QT Multimedia 框架 (5.0.1) 播放电影,但我只得到一个黑屏和一个用 H.264 编码的 mov。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget *mainWidget = new QWidget();
    mainWidget->setGeometry(0,0, 1920, 1080);

    QVideoWidget *widget = new QVideoWidget(mainWidget);
    widget->setGeometry(0, 0, 1920, 1080);

    QMediaPlayer *player = new QMediaPlayer;
    QUrl localUrl = QUrl::fromLocalFile("test_mov.mov");
    player->setMedia(localUrl);
    qDebug() << "Player error state -> " << player->error();
    qDebug() << "Media supported state -> " << QMediaPlayer::hasSupport("video/mov");
    player->setVideoOutput(widget);

    mainWidget->show();

    player->play();

    return a.exec();
}

代码正确编译并在控制台上提供以下输出,而视频小部件保持黑色:

播放器错误状态 -> QMediaPlayer::NoError
媒体支持状态 -> 1 // 表示“可能支持”

我在 Mac OSX 10.7.5 上使用 Qt 5.0.1。该文件被播放器正确播放并且 ffmpeg -i test_mov.mov 给出

时长:00:00:02.52,开始:0.000000,比特率:63708 kb/s 流 #0:0(eng):视频:h264(主)(avc1 / 0x31637661)、yuv420p、1920x1080、63684 kb/s、SAR 1745:1920 DAR 349:216、25 fps、25 tbr、25 tbn、50 tbc

有谁知道 QT Multimedia 支持哪些格式?

谢谢

【问题讨论】:

  • 您正在检查对“video/mov”的支持,它是“可能支持”。然而,这只是容器。看看您是否可以检查 H.264 视频编解码器支持。这可能更棘手。
  • 与使用 h264 编码的 mp4 相同的结果(可能支持),将“video/mov”更改为“video/H264”和文件本身。命令行实用程序文件返回:"file test_h264.mp4" -> "test_h264.mp4: ISO Media, MPEG v4 system, version 2"
  • 关于“文件”命令:它无法深入挖掘 MOV/MP4 文件以确定编解码器。言归正传,我不知道我们是否已经确定了Qt Multimedia框架是否可以访问Mac OS X平台上的系统H.264解码器。也许还有其他组件需要到位才能成功。

标签: c++ qt h.264 multimedia


【解决方案1】:

在 Windows 中,QT 视频文件格式通常带有 .mov 文件扩展名。 QuickTime 本身(在不同程度上)支持的其他文件格式包括 AIFF、WAV、DV、MP3 和 MPEG-1。

【讨论】:

  • 我成功地切换了平台,从 OS X 到 Windows。正如 Multimedia Mike 之前建议的那样,可能是编解码器问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多