日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 黑人黄色片 | av福利站 | 越南毛茸茸的少妇 | 国精无码欧精品亚洲一区蜜桃 | 久久久久久国产精品日本 | 夜夜躁狠狠躁日日躁av | 日本欧美三级 | 男人天堂视频网 | 粉嫩小泬无遮挡久久久久久 | 日韩中文字幕免费在线观看 | 国产精品视频自拍 | 亚洲一区二区黄片 | 亚洲第一综合网 | jizz欧美大全 | 女女高潮h冰块play失禁百合 | 男人的天堂视频 | 天天摸日日摸 | 97成人资源站 | 国产精品久久久久久久久岛 | 日韩美女视频一区二区 | 色97| v片在线免费观看 | 99精品久久99久久久久 | 日韩aaaaaa | 久久久五月| 国产婷婷 | 欧美另类性 | 黄色av成人| 成人影片在线免费观看 | 国产偷v国产偷v亚洲高清 | 色播五月综合 | 国产成人一区二区三区别 | 超碰在线亚洲 | 无码精品视频一区二区三区 | 亚洲精品国产91 | 天天操天天玩 | 国产性自拍| 中文字幕人妻一区二区 | 久久精品免费看 | 作爱视频在线 | 欧美一区二区激情 | 无码国内精品人妻少妇蜜桃视频 | 亚洲一区av在线 | 精品人妻一区二区三区四区 | 欧美人与按摩师xxxx | 国产一级片播放 | 欧洲自拍偷拍 | 国模人体一区二区 | 国产精品偷伦视频免费观看了 | 男人爽女人下面动态图 | 国产自精品 | 日本啪啪网| 躁躁躁日日躁 | 日女人免费视频 | 亚洲人成无码www久久久 | 欧美日韩一区二区三区国产精品成人 | 91麻豆精品秘密入口 | 日本黄色一级视频 | av免费网站在线观看 | 欧美人吸奶水吃奶水 | 精品久久久久久久久久 | 国产免费无遮挡吸奶头视频 | 亚洲欧洲日本国产 | 东北高大丰满bbbbzbbb | 免费成人在线电影 | 日韩在线 | 国产精品777777| 亚洲天堂伊人网 | 四虎永久免费观看 | av色先锋 | 欧美韩日精品 | 风间由美一区二区 | 国产美女无遮挡永久免费 | 大度亲吻原声视频在线观看 | 欧洲精品码一区二区三区免费看 | 在线免费看黄视频 | 四虎伊人 | 国产一区二区精华 | 亚洲毛片在线免费观看 | 乱妇乱女熟妇熟女网站 | av片久久| 偷自在线 | 精品久久香蕉国产线看观看亚洲 | 国产成人欧美一区二区三区的 | 豆花在线观看 | 亚洲精选一区二区三区 | 五月婷婷一区二区 | 下面一进一出好爽视频 | 小箩莉末发育娇小性色xxxx | 久久精品免费在线观看 | 久久久久久久9999 | 国产综合区 | 91视频免费观看网站 | 成人免费视频久久 | 美女扒开尿口给男人捅 | 国产美女无遮挡网站 | www精品一区二区三区 | 男男野外做爰全过程69 | 黄色网炮 |