pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在基于 GStreamer 的 Qt 中實(shí)現(xiàn)視頻小部件?

How to implement a video widget in Qt that builds upon GStreamer?(如何在基于 GStreamer 的 Qt 中實(shí)現(xiàn)視頻小部件?)
本文介紹了如何在基于 GStreamer 的 Qt 中實(shí)現(xiàn)視頻小部件?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我想用 Qt 創(chuàng)建一個(gè)簡(jiǎn)單的 GUI 應(yīng)用程序,可以播放本地視頻文件.我可以使用 Phonon 來完成幕后的所有工作,但我需要更多的控制權(quán).我已經(jīng)成功地使用 decodebin 和 autovideosink 元素實(shí)現(xiàn)了 GStreamer 管道.現(xiàn)在我想使用 Qt 小部件將輸出引導(dǎo)至.

I want to use Qt to create a simple GUI application that can play a local video file. I could use Phonon which does all the work behind the scenes, but I need to have a little more control. I have already succeeded in implementing an GStreamer pipeline using the decodebin and autovideosink elements. Now I want to use a Qt widget to channel the output to.

有沒有人成功地做到了這一點(diǎn)?(我想是的,因?yàn)橛谢?GStreamer 的基于 Qt 的視頻播放器.)有人能指出我正確的方向嗎?

Has anyone ever succeeded in doing this? (I suppose so since there are Qt-based video players that build upon GStreamer.) Can someone point me in the right direction on how to do it?

注意:這個(gè)問題類似于我之前發(fā)布的關(guān)于如何將 Qt 與傳入的 RTP 流連接的問題.這似乎很有挑戰(zhàn)性.我想這個(gè)問題會(huì)更容易回答.

Note: This question is similar to my previous posted question on how to connect Qt with an incoming RTP stream. This seemed to be quite challenging. This question will be easier to answer I think.

Patrice 的使用 libVLC 的建議已經(jīng)很有幫助了.這是在 VLC 網(wǎng)站上找到的代碼的更清晰版本:Qt + libVLC 示例.但是,我最初的問題仍然是:如何將 GStreamer 連接到 Qt 小部件?

Patrice's suggestion to use libVLC is very helpful already. Here's a somewhat cleaner version of the code found on VLC's website: Sample for Qt + libVLC. However, my original question remains: How do I connect GStreamer to a Qt widget?

經(jīng)過一些實(shí)驗(yàn),我最終得到了這個(gè)工作示例.這取決于 GstWidget.h 和 GstWidget.cpp來自我自己的小 GstSupport 庫.但是,請(qǐng)注意,目前僅在 Mac 版本的 Qt 上進(jìn)行了測(cè)試.

After some experimentation I ended up with this working sample. It depends on GstWidget.h and GstWidget.cpp from my own little GstSupport library. However, take note that is is currently only tested on the Mac version of Qt.

推薦答案

要將 Gstreamer 與您的 QWidget 連接,您需要使用 QWidget::winId() 獲取窗口句柄并將其傳遞給gst_x_overlay_set_xwindow_id();

To connect Gstreamer with your QWidget, you need to get the window handle using QWidget::winId() and you pass it to gst_x_overlay_set_xwindow_id();

粗略示例代碼:

    sink = gst_element_factory_make("xvimagesink", "sink");
    gst_element_set_state(sink, GST_STATE_READY);

    QApplication::syncX();
    gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(sink), widget->winId());

此外,您還希望您的小部件由本機(jī)窗口支持,這是通過在應(yīng)用程序級(jí)別設(shè)置 Qt::AA_NativeWindows 屬性或 Qt::WA_NativeWindow 來實(shí)現(xiàn)的code> 小部件級(jí)別的屬性.

Also, you will want your widget to be backed by a native window which is achieved by setting the Qt::AA_NativeWindows attribute at the application level or the Qt::WA_NativeWindow attribute at the widget level.

這篇關(guān)于如何在基于 GStreamer 的 Qt 中實(shí)現(xiàn)視頻小部件?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 高温高压釜(氢化反应釜)百科 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 球盟会·(中国)官方网站| 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | 上海道勤塑化有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! |