日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT | 聊聊QT与直播流播放——从QMediaPlayer到Qt-AV

發布時間:2024/8/1 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT | 聊聊QT与直播流播放——从QMediaPlayer到Qt-AV 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載原文----:https://www.cnblogs.com/QingHuan/p/8830562.html

下面是一張自己做的圖,對QT可調用的幾種播放方面的開源庫進行對比

?

Stage1:QT原生播放方式:QT QMediaPlayer

這種方式有兩個優點:

  • 無需額外的庫,直接可以使用且實現方式簡單,已經有大量的例子
  • CPU占用率低,主要使用GPU
  • 缺點:

  • 支持的視頻格式少,跟具體運行在哪個操作系統上有關。在Windows上需要安裝LAVFilter等解碼器才能支持很多的播放格式
  • 無法打開非HTTP格式開頭的直播流鏈接
  • ? 代碼示例?

    ??? QWidget wi;
    ??? QMediaPlayer* player = new QMediaPlayer(0, QMediaPlayer::VideoSurface);
    ??? QVideoWidget* vw = new QVideoWidget;
    ??? QVBoxLayout* lay =? new QVBoxLayout;
    ??? lay->addWidget(vw);
    ??? vw->setMinimumSize(400, 300);
    ??? lay->setSizeConstraint(QLayout::SetMinimumSize);
    ??? wi.setLayout(lay);

    ??? player->setVideoOutput(vw);

    ??? QNetworkRequest req(QUrl("http://pull-g.kktv8.com/livekktv/100987038.flv"));

    ??? QMediaContent c(req);
    ??? player->setMedia(c);
    ??? player->play();

  • Stage2:使用OpenCV進行播放

    優點:

  • 支持的播放格式多
  • 相應的示例程序多
  • 缺點:

  • 雖然底層調用的也是ffmpeg的庫,但是OpenCV是將收到的直播流轉換成了一張一張的圖片,然后再一張一張的圖片按順序播放出來的
  • 沒有使用GPU,只使用了CPU,會造成CPU占用率極高(實際測試中,總能占滿CPU)
  • 代碼編寫麻煩
  • Stage3:使用Qt-vlc方式

    優點:

  • 支持的格式眾多
  • 可以打開多種直播流鏈接
  • 缺點:

  • 編譯時比較麻煩
  • Stage4:使用FQFlib方式

    • Github地址:https://github.com/zuozhulin88/FQFLib
    • 項目官網:http://fqflib.zuozl.com/

    在VLC沒配置成后,就搜索"qt rtmp",找到了這個項目。這是一個正在成長中的項目,發布日期為2018年4月3日,距離現在僅有11天。主要是為了實現基于FFmpeg的rtsp/rtmp網絡流媒體播放庫。

    作者僅給出了相應的庫文件,以及一個基于QT的可運行在Visual Studio中的例子。

    在經過嘗試使用VS運行失敗后,還是決定使用最熟悉的QT Creator運行,然后仿照在VS平臺的例子,自己修改出來了一個例子,見GITHUB倉庫

    但是這個例子可以解析HTTP的直播鏈接,如CCTV1的:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8

    對于RTMP的鏈接,雖然可以加載,但是總是無法解析,遂放棄FQFlib的方式,繼續尋找新方式。于是找到了QT-AV。

    ?

    ?

    Stage5: Qt-AV開源項目

    • GITHUB地址:https://github.com/wang-bin/QtAV
    • 官方主頁:http://www.qtav.org/

    ?

    官方介紹:

    QtAV is a multimedia playback library based on Qt and FFmpeg. It can help you to write a player with less effort than ever before.

    QtAV has been added to FFmpeg projects page?http://ffmpeg.org/projects.html

    ?

    這個項目是2012年開始的,已經被ffmpeg官方收錄了,的確是非常的方便。

    ?

    下面簡單寫一下在Windows系統下的Qt-AV安裝方式和使用方法,官方的文檔在這里:https://github.com/wang-bin/QtAV/wiki/Build-QtAV,詳見Qt視頻框架QtAV構建編譯使用 https://blog.csdn.net/dong_zhihong/article/details/102631049

    5. 站在Qt-AV的角度看FQFlib

    Qt-AV其實已經完成了FQFlib所要開發的對RTMP和RSTP格式直播流播放的支持,而且根據目前的實際測試其并不能播放RTMP(也可能是我自己沒寫好)

    但是在已經有輪子的情況下,不太建議FQFlib的作者繼續重新造輪子

    RTMP測試源:rtmp://live.hkstv.hk.lxdns.com/live/hks

    RTSP測試源:rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

    ?

    多說一點:

    HTTP和RTMP是直播流鏈接的格式,而直播流本身也有編碼格式封裝格式。編碼格式如h.264格式(也叫MPEG-4)等;封裝格式則為MP4、WMV、FLV等。具體可以在推流時使用不同的ffmpeg參數進行設置。

    H.264的維基百科介紹:

    H.264,又稱為MPEG-4第10部分,高級視頻編碼(英語:MPEG-4 Part 10, Advanced Video Coding,縮寫為MPEG-4 AVC)是一種面向塊,基于運動補償的視頻編碼標準(英語:Video_coding_format) 。

    MP4和MPEG4并不同:參考自:Difference between MPEG4 and MP4

    Key difference:?MPEG-4 is a method of defining compression of audio and visual digital data. MPEG-4 can be used for compression of AV data for web, as used for streaming media, for CD distribution, as well as for voice broadcast television applications. The MP4 is a container format. This means that it can be used to store audio and/or video data.

    ?

    ?

    總結

    綜合來說,Qt-AV給我留下的印象最好,其經過了6個年頭的發展,也有了多次的版本迭代,已經較為完善。

    如果您想要使用QT開發功能強大,支持播放“格式”眾多且代碼簡單的播放器,非常推薦使用Qt-AV

    ?

    ?

    總結

    以上是生活随笔為你收集整理的QT | 聊聊QT与直播流播放——从QMediaPlayer到Qt-AV的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久久亚洲精品视频 | 国产精品第九页 | 99综合视频 | 色综合综合网 | 白浆av| 午夜少妇久久久久久久久 | 亚洲欧美一区二区三 | 波多野结衣www | 最新福利视频 | 成片免费观看视频 | 国产成人短视频在线观看 | 一区二区三区日 | 成人av在线一区二区 | 亚色网站 | 久久sp| 69久久成人精品 | 狠狠干男人的天堂 | 婷婷九月 | 亚洲图片一区二区 | 亚洲视频在线播放免费 | 99精品久久久久久久婷婷 | 久热国产在线 | 国产精品久久久久一区二区 | 免费成人电影在线观看 | 91黄色免费 | 国产乱大交 | 18久久久 | 成人亚洲免费 | 69视频网址| 偷偷操不一样 | 原创真实夫妻啪啪av | 丰满人妻一区二区三区无码av | 欧美日本高清 | 国产成人欧美一区二区三区91 | h片在线免费| 国产一线二线在线观看 | 中文字幕15页 | 国产精品传媒 | www.日韩.com | 中文亚洲字幕 | 国产任你操 | 婷婷综合网站 | 夜夜夜操操操 | 日日爱886 | 玖玖zyz| 91福利在线免费观看 | 逼逼爱插插网站 | 特黄特色大片免费视频大全 | 亚洲天堂二区 | 91麻豆国产视频 | 日韩精品一区二区三区网站 | 日本成人一区 | 天堂在线精品视频 | 色中色av | 午夜色av | 依人在线 | 欧美精品乱码久久久久久 | 成人夜色视频 | 成人网久久 | 黄色网址av| 欧美爽爽爽 | 亚洲黄色激情视频 | 伊人伊人伊人伊人 | 国产一区日本 | 欧美日韩亚洲在线 | 国产精品99久久久精品无码 | 99亚洲国产精品 | 少妇人妻综合久久中文字幕 | 四虎在线精品 | 欧美大尺度视频 | 亚洲成人一二区 | 手机在线免费视频 | 日日燥夜夜燥 | 成 人片 黄 色 大 片 | 天天看天天爽 | 国产日韩久久久 | 日韩成人精品一区二区三区 | 日本在线视频观看 | 欧美理论在线 | 免费精品在线视频 | 亚洲精品久久久中文字幕痴女 | 久草热播 | 韩国主播青草200vip视频 | 三级三级久久三级久久 | 欧美国产精品久久 | 日本乱淫视频 | 日韩爽片 | 性做久久 | 国产亚洲天堂网 | 日韩人妻精品无码一区二区三区 | 91国内视频| 欧洲女性下面有没有毛发 | 国产伦精品一区二区三区高清 | 午夜精品极品粉嫩国产尤物 | 九一天堂 | 秋霞黄色网 | 国产区精品区 | 免费人成在线观看视频播放 | 国产精品日韩专区 |