我正在尝试将视频嵌入在 i.MX6ULL 嵌入式处理器(无 GPU)上运行的 Qt 5.15 QML(Qt Quick)项目中,但是任何包含视频(或 MediaPlayer)组件都会立即导致应用程序退出并出现分段故障。
即使是最基本的实现:
import QtQuick 2.15
import QtMultimedia 5.15
Video {
id: video
width: 480
height: 272
source: "gst-pipeline: videotestsrc ! qtvideosink"
}
使用 qmlscene 运行会立即退出并出现分段错误。
我在 Qt Creator 的嵌入式目标上调试 Qt C++ 时遇到问题(单独的问题),但是在 Segmentation Fault 上确实有可用的堆栈跟踪,其中包括
QDeclarativeVideoOutput::createBackend(QMediaService*)
(来源 https://code.qt .io/cgit/qt/qtmultimedia.git/tree/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp?h=5.15).
使用 Qt 多媒体(QMediaPlayer 和 QVideoWidget)的 Qt Widgets 应用程序运行良好:
QMediaPlayer* player = new QMediaPlayer(this);
player->setVideoOutput(ui->wgtVid); // wgtVid is a QVideoWidget
player->setMedia(QUrl("gst-pipeline: videotestsrc ! qtvideosink"));
player->play();
如何调试/修复 QML (Qt Quick) 出现的分段错误?