Qt 上的 GStreamer iOS
GStreamer on Qt for iOS
我正在尝试开发一个 iOS 应用程序(iPad 应该是主要目标)来控制连接到同一网络的设备(Linux 嵌入式)。
基本上它是一个远程桌面应用程序。
应用程序必须是多平台的,因此它已在多平台框架内构建。通过使用 Qt 和 Qt Creator.
开发应用程序可以满足此要求
应用程序应播放从 Linux 设备通过网络传输的视频流。为此,我使用 GStreamer。我已经从官方网站 (https://gstreamer.freedesktop.org/documentation/installing/for-ios-development.html?gi-language=c.) 下载并成功安装了 iOS 软件包。
到目前为止,我已经设法正确 link 库并成功 运行 模拟器中的项目,但是当我尝试创建 GStreamer 元素时,它在 运行 时失败了.
这是我的.pro
#iOS
INCLUDEPATH += /Users/user/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers
LIBS += -F /Users/user/Library/Developer/GStreamer/iPhone.sdk -framework GStreamer
LIBS += -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib -liconv
QMAKE_IOS_DEPLOYMENT_TARGET = 12.0
#Universal target (iPhone and iPad)
QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1,2
QMAKE_APPLE_DEVICE_ARCHS = arm64
QMAKE_APPLE_SIMULATOR_ARCHS = x86_64
这里是申请失败的地方:
data.pipeline = gst_pipeline_new ("pipeline");
qDebug() << "pipeline" << data.pipeline;
data.udpsrc = gst_element_factory_make("udpsrc", NULL);
data.rtph264depay = gst_element_factory_make("rtph264depay", NULL);
data.avdec_h264 = gst_element_factory_make("avdec_h264", NULL);
data.videoconvert = gst_element_factory_make("videoconvert", NULL);
data.videoflip = gst_element_factory_make ("videoflip", NULL);
qDebug() << "udpsrc" << data.udpsrc;
qDebug() << "rtph264depay" << data.rtph264depay;
qDebug() << "avdec_h264" << data.avdec_h264;
qDebug() << "videoconvert" << data.videoconvert;
qDebug() << "videoflip" << data.videoflip;
所有对 gst_element_factory_make return 的调用均无效。
附加信息
- Qt 5.15.2
- Xcode 12.5
- 在大苏尔发展
有什么想法吗?
谢谢
问题是插件(udpsrc、rtph264depay、avdec_h264 等属于)必须静态链接。 https://forum.qt.io/topic/126746/gstreamer-on-ios
中解释的解决方案
我正在尝试开发一个 iOS 应用程序(iPad 应该是主要目标)来控制连接到同一网络的设备(Linux 嵌入式)。
基本上它是一个远程桌面应用程序。
应用程序必须是多平台的,因此它已在多平台框架内构建。通过使用 Qt 和 Qt Creator.
开发应用程序可以满足此要求应用程序应播放从 Linux 设备通过网络传输的视频流。为此,我使用 GStreamer。我已经从官方网站 (https://gstreamer.freedesktop.org/documentation/installing/for-ios-development.html?gi-language=c.) 下载并成功安装了 iOS 软件包。
到目前为止,我已经设法正确 link 库并成功 运行 模拟器中的项目,但是当我尝试创建 GStreamer 元素时,它在 运行 时失败了.
这是我的.pro
#iOS
INCLUDEPATH += /Users/user/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers
LIBS += -F /Users/user/Library/Developer/GStreamer/iPhone.sdk -framework GStreamer
LIBS += -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib -liconv
QMAKE_IOS_DEPLOYMENT_TARGET = 12.0
#Universal target (iPhone and iPad)
QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1,2
QMAKE_APPLE_DEVICE_ARCHS = arm64
QMAKE_APPLE_SIMULATOR_ARCHS = x86_64
这里是申请失败的地方:
data.pipeline = gst_pipeline_new ("pipeline");
qDebug() << "pipeline" << data.pipeline;
data.udpsrc = gst_element_factory_make("udpsrc", NULL);
data.rtph264depay = gst_element_factory_make("rtph264depay", NULL);
data.avdec_h264 = gst_element_factory_make("avdec_h264", NULL);
data.videoconvert = gst_element_factory_make("videoconvert", NULL);
data.videoflip = gst_element_factory_make ("videoflip", NULL);
qDebug() << "udpsrc" << data.udpsrc;
qDebug() << "rtph264depay" << data.rtph264depay;
qDebug() << "avdec_h264" << data.avdec_h264;
qDebug() << "videoconvert" << data.videoconvert;
qDebug() << "videoflip" << data.videoflip;
所有对 gst_element_factory_make return 的调用均无效。
附加信息
- Qt 5.15.2
- Xcode 12.5
- 在大苏尔发展
有什么想法吗?
谢谢
问题是插件(udpsrc、rtph264depay、avdec_h264 等属于)必须静态链接。 https://forum.qt.io/topic/126746/gstreamer-on-ios
中解释的解决方案