国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

QtAV for ubuntu16.04

這篇具有很好參考價(jià)值的文章主要介紹了QtAV for ubuntu16.04。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

下載ubuntu

https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso

下載ffmpeg

https://ffmpeg.org/download.html

ffmpeg-6.0.tar.xz

下載QtAV

https://github.com/wang-bin/QtAV/releases

QtAV-1.12.0.zip

更新

sudo apt update

安裝庫(kù)

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install libopenal-dev libpulse-dev libva-dev libxv-dev libass-dev libegl1-mesa-dev

編譯ffmpeg
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
make
sudo make install?

ffmepg可不編譯

安裝qt4

sudo apt install qt4-default

編譯QtAV

cd QtAV-1.12.0
mkdir build
cd build
qmake ..
make

用例

untitled1.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled1
TEMPLATE = app


SOURCES += main.cpp\
    playerwindow.cpp

HEADERS  += playerwindow.h


INCLUDEPATH += $$PWD/include

LIBS += -L$$PWD/lib_linux_x86_64/ -Wl,-rpath=$$PWD/lib_linux_x86_64/ -lQtAV -lQtAVWidgets

playerwindow.h?

#ifndef PLAYERWINDOW_H
#define PLAYERWINDOW_H

#include <QWidget>
#include <QtAV/VideoOutput.h>
#include <QtAV/AVPlayer.h>

QT_BEGIN_NAMESPACE
class QSlider;
class QPushButton;
QT_END_NAMESPACE
class PlayerWindow : public QWidget
{
    Q_OBJECT
public:
    explicit PlayerWindow(QWidget *parent = 0);
public Q_SLOTS:
    void openMedia();
    void seekBySlider(int value);
    void seekBySlider();
    void playPause();
private Q_SLOTS:
    void updateSlider(qint64 value);
    void updateSlider();
    void updateSliderUnit();

private:
    QtAV::VideoOutput *m_vo;
    QtAV::AVPlayer *m_player;
    QSlider *m_slider;
    QPushButton *m_openBtn;
    QPushButton *m_playBtn;
    QPushButton *m_stopBtn;
    int m_unit;
};

#endif // PLAYERWINDOW_H

playerwindow.cpp?

#include "playerwindow.h"
#include <QPushButton>
#include <QSlider>
#include <QLayout>
#include <QMessageBox>
#include <QFileDialog>

using namespace QtAV;

PlayerWindow::PlayerWindow(QWidget *parent) : QWidget(parent)
{
    m_unit = 1000;
    setWindowTitle(QString::fromLatin1("QtAV simple player example"));
    m_player = new AVPlayer(this);
    QVBoxLayout *vl = new QVBoxLayout();
    setLayout(vl);
    m_vo = new VideoOutput(this);
    if (!m_vo->widget()) {
        QMessageBox::warning(0, QString::fromLatin1("QtAV error"), tr("Can not create video renderer"));
        return;
    }
    m_player->setRenderer(m_vo);
    vl->addWidget(m_vo->widget());
    m_slider = new QSlider();
    m_slider->setOrientation(Qt::Horizontal);
    connect(m_slider, SIGNAL(sliderMoved(int)), SLOT(seekBySlider(int)));
    connect(m_slider, SIGNAL(sliderPressed()), SLOT(seekBySlider()));
    connect(m_player, SIGNAL(positionChanged(qint64)), SLOT(updateSlider(qint64)));
    connect(m_player, SIGNAL(started()), SLOT(updateSlider()));
    connect(m_player, SIGNAL(notifyIntervalChanged()), SLOT(updateSliderUnit()));

    vl->addWidget(m_slider);
    QHBoxLayout *hb = new QHBoxLayout();
    vl->addLayout(hb);
    m_openBtn = new QPushButton(tr("Open"));
    m_playBtn = new QPushButton(tr("Play/Pause"));
    m_stopBtn = new QPushButton(tr("Stop"));
    hb->addWidget(m_openBtn);
    hb->addWidget(m_playBtn);
    hb->addWidget(m_stopBtn);
    connect(m_openBtn, SIGNAL(clicked()), SLOT(openMedia()));
    connect(m_playBtn, SIGNAL(clicked()), SLOT(playPause()));
    connect(m_stopBtn, SIGNAL(clicked()), m_player, SLOT(stop()));
}

void PlayerWindow::openMedia()
{
    QString file = QFileDialog::getOpenFileName(0, tr("Open a video"));
    if (file.isEmpty())
        return;
    m_player->play(file);
}

void PlayerWindow::seekBySlider(int value)
{
    if (!m_player->isPlaying())
        return;
    m_player->seek(qint64(value*m_unit));
}

void PlayerWindow::seekBySlider()
{
    seekBySlider(m_slider->value());
}

void PlayerWindow::playPause()
{
    if (!m_player->isPlaying()) {
        m_player->play();
        return;
    }
    m_player->pause(!m_player->isPaused());
}

void PlayerWindow::updateSlider(qint64 value)
{
    m_slider->setRange(0, int(m_player->duration()/m_unit));
    m_slider->setValue(int(value/m_unit));
}

void PlayerWindow::updateSlider()
{
    updateSlider(m_player->position());
}

void PlayerWindow::updateSliderUnit()
{
    m_unit = m_player->notifyInterval();
    updateSlider();
}

main.cpp?

#include <QApplication>
#include "playerwindow.h"
#include <QtAVWidgets/global.h>

int main(int argc, char *argv[])
{
    QtAV::Widgets::registerRenderers();
    QApplication a(argc, argv);
    PlayerWindow player;
    player.show();
    player.resize(800, 600);
    return a.exec();
}

QtAV for ubuntu16.04,qt

關(guān)于demo也可以用example目錄里的,這里不用QtCreator,而是直接在終端里編譯;

mkdir build && cd build && qmake ../player.pro即可

首次編譯會(huì)失敗,生成lib_linux_文件夾,將QtAV的庫(kù)拷貝到lib_linux_文件夾內(nèi)

然后正常編譯即可

安裝顯卡

ubuntu16.04安裝nvidia驅(qū)動(dòng)_氺月洞天的博客-CSDN博客

硬解碼

按下圖,用QtAV自帶的Player打開(kāi)視頻,手動(dòng)選中解碼為CUDA是沒(méi)辦法啟用硬解碼的

QtAV for ubuntu16.04,qt

可以通過(guò)命令啟動(dòng)

./Player -vd "cuda;vaapi;vda;dxva;cedarv;ffmpeg" -f rtsp://admin:xx@xx

QtAV for ubuntu16.04,qt

命令行說(shuō)明

命令行

player [-ao null] [-vo qt|gl|d2d|gdi|xv] [-vd "dxva[;cuda[;vaapi[;vda[;ffmpeg]]]]"] [--ffmpeg-log] [-f url|path|pipe:]

關(guān)閉音頻 -ao null
選擇渲染引擎用 -vo 選項(xiàng)。選項(xiàng)值可為qt, gl(默認(rèn)), d2d, gdi, xv
選擇解碼器使用 -vd選項(xiàng)??梢允?dxva, cuda, vaapi, ffmpeg, 多個(gè)解碼器用 ; 分隔表示解碼器優(yōu)先級(jí)。比如:?
player -vd "dxva;cuda;ffmpeg" filename
表示優(yōu)先使用dxva解碼,若無(wú)法解碼則選擇cuda硬解,再不行則使用ffmpeg軟解。?
快捷鍵
雙擊: 全屏切換
Ctrl+O: 打開(kāi)文件
空格: 暫停/播放
A: 切換比例
F: fullscreen on/off
T: 窗口置頂切換
N: 播放下一幀并暫停。按空格恢復(fù)持續(xù)播放
O: OSD
P: 重放
Q/ESC: 退出
S: 停止
R: 旋轉(zhuǎn)90度
M: 切換靜音
Up / Down: 音量 + / -
Ctrl+Up/Down: 速度 + / -
-> / <-: 前進(jìn)/后退
Ctrl+滾輪: 縮放畫(huà)面
可以拖動(dòng)文件到播放器顯示區(qū)進(jìn)行播放?
更多信息請(qǐng)看wiki: https://github.com/wang-bin/QtAV/wiki/_pages

linux下項(xiàng)目打包

參考:使用linuxdeployqt在linux下進(jìn)行Qt打包發(fā)布(超詳細(xì))_百里楊的博客-CSDN博客

?下載地址

Releases · probonopd/linuxdeployqt · GitHub

?QtAV for ubuntu16.04,qt

修改名稱

mv linuxdeployqt-6-x86_64.AppImage linuxdeployqt


添加可執(zhí)行權(quán)限

sudo chmod 777 linuxdeployqt


移到/usr/local/bin目錄

sudo mv linuxdeployqt /usr/local/bin


測(cè)試是否安裝成功

linuxdeployqt --version?

cz@ubuntu:~/圖片/QtAV-1.12.0/examples/player/out/bin$ linuxdeployqt --version
linuxdeployqt ?(commit 8428c59), build 47 built on 2023-04-23 17:29:33 UTC
cz@ubuntu:~/圖片/QtAV-1.12.0/examples/player/out/bin$?

?QtAV項(xiàng)目Player的項(xiàng)目樹(shù)狀結(jié)構(gòu)如下:

.
├── lib
│???├── libcommon.a
│???├── libcommon.prl
│???├── libQtAV.prl
│???├── libQtAV.so
│???├── libQtAV.so.1
│???├── libQtAV.so.1.12
│???├── libQtAV.so.1.12.0
│???├── libQtAVWidgets.prl
│???├── libQtAVWidgets.so
│???├── libQtAVWidgets.so.1
│???├── libQtAVWidgets.so.1.12
│???└── libQtAVWidgets.so.1.12.0
└── Player

執(zhí)行命令

linuxdeployqt Player -appimage

linuxdeployqt ?(commit 8428c59), build 47 built on 2023-04-23 17:29:33 UTC
Not using FHS-like mode
app-binary: "/home/cz/視頻/build/Player"
appDirPath: "/home/cz/視頻/build"
relativeBinPath: "Player"
ERROR: Desktop file missing, creating a default one (you will probably want to edit it)
ERROR: Icon file missing, creating a default one (you will probably want to edit it)
qmakePath 3= ""
appimagetool, continuous build (commit 8bbf694), build <local dev build> built on 2020-12-31 11:48:33 UTC
Desktop file: /home/cz/視頻/build/default.desktop
Categories entry not found in desktop file
.desktop file is missing a Categories= key

得到新的目錄如下

QtAV for ubuntu16.04,qt

將lib和Player打包拷貝到另一個(gè)機(jī)器上

報(bào)錯(cuò)如下

relocation error: /libgcrypt.so.20: symbol gpgrt get syscall clamp, version GPG ERROR 1. not defined in file libgpg-error.so.o with link time reference

刪除lib/libgcrypt.so.20后正常運(yùn)行

其他

?參考:Qt第三方庫(kù)QtAV--- ubuntu編譯與運(yùn)行_那時(shí)風(fēng)起的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-632110.html

到了這里,關(guān)于QtAV for ubuntu16.04的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ubuntu16.04下標(biāo)定Astra相機(jī)

    1.安裝相機(jī)驅(qū)動(dòng) 2.下載camere_calibration 3.進(jìn)行標(biāo)定 打開(kāi)終端,輸入 打開(kāi)另一個(gè)終端,輸入

    2024年02月07日
    瀏覽(13)
  • Ubuntu 16.04——Hadoop集群安裝配置

    Ubuntu 16.04——Hadoop集群安裝配置

    hadoop 集群安裝配置分為兩個(gè)部分,一個(gè)部分是 主節(jié)點(diǎn)(Master) 和 從節(jié)點(diǎn)(Slave) ,兩個(gè)部分需要完成的配置有一定的不同;總的來(lái)說(shuō),Master 所需要做的會(huì)比 Slave 會(huì)多一些。下面會(huì)演示兩個(gè)部分需要做的事情;由于各臺(tái)主機(jī)情況會(huì)有所不同,所以在報(bào)錯(cuò)的時(shí)候也會(huì)有一些的

    2024年02月02日
    瀏覽(24)
  • Ubuntu安裝騰訊會(huì)議——Ubuntu16.04/18.04/20.04/22.04

    Ubuntu安裝騰訊會(huì)議——Ubuntu16.04/18.04/20.04/22.04

    通過(guò)以下教程可以快速的安裝騰訊會(huì)議,本教程適用于Ubuntu16.04/18.04/20.04/22.04 進(jìn)入騰訊會(huì)議下載官網(wǎng)下載騰訊會(huì)議Linux客戶端 選擇x86_64格式安裝包下載 雙擊deb文件,點(diǎn)擊install進(jìn)行安裝 安裝成功,可以成功運(yùn)行

    2024年02月12日
    瀏覽(42)
  • 在Ubuntu 16.04上如何添加交換空間

    介紹 在增加服務(wù)器的響應(yīng)速度并防止應(yīng)用程序出現(xiàn)內(nèi)存不足錯(cuò)誤的最簡(jiǎn)單方法之一是添加一些交換空間。在本指南中,我們將介紹如何向 Ubuntu 16.04 服務(wù)器添加交換文件。 交換空間 是硬盤(pán)上被指定為操作系統(tǒng)可以臨時(shí)存儲(chǔ)無(wú)法再放入 RAM 中的數(shù)據(jù)的區(qū)域?;旧?,這使您能夠

    2024年04月10日
    瀏覽(25)
  • ubuntu16.04搭建fabric1.4

    ubuntu16.04搭建fabric1.4

    目錄 一.電腦配置 二.新建虛擬機(jī) ?三.按照相關(guān)工具 ?1.安裝git 2.安裝cURL 3.安裝Docker 4.安裝docker-compose 5.安裝Golang? 6.安裝NVM和NPM ?四.搭建fabric 總結(jié) VMware Workstation 16 pro :16.2.3 build-19376536 Windows10 ubuntu16.04 ? ?Ubuntu 64位 的克?。簞?chuàng)建好ubuntu16.04之后,立刻克隆一份,防止安裝失

    2024年02月01日
    瀏覽(49)
  • Ubuntu官方安裝微信——Ubuntu16.04/18.04/20.04/22.04

    Ubuntu官方安裝微信——Ubuntu16.04/18.04/20.04/22.04

    通過(guò)以下教程可以快速的安裝官方版微信,本教程適用于Ubuntu16.04/18.04/20.04/22.04 進(jìn)入微信下載官網(wǎng)下載微信Linux客戶端 點(diǎn)擊64位下載即可,如果不能下載,使用終端如下命令 雙擊deb文件,點(diǎn)擊install進(jìn)行安裝 安裝成功,可以在菜單中點(diǎn)擊運(yùn)行

    2024年02月08日
    瀏覽(54)
  • Ubuntu16.04搭建Fabric1.4環(huán)境

    Ubuntu16.04搭建Fabric1.4環(huán)境

    為了提高下載速度,將ubuntu的源改成國(guó)內(nèi)的源(推薦阿里云源和清華源) apt源保存在? ? /etc/apt/sources.list?? ?/ 代表根目錄 ?/etc? 這個(gè)文件夾幾乎放置了系統(tǒng)的所有配置文件 這里我用的清華源,一開(kāi)始試了幾次阿里云源,但是每次更新后桌面都變成了空白,只剩下終端能用

    2024年04月13日
    瀏覽(28)
  • 三、Docker配置指定IP(Ubuntu 16.04)

    應(yīng)用場(chǎng)景 為了局域網(wǎng)內(nèi)用戶方便訪問(wèn)docker實(shí)例中服務(wù) Docker每次重啟,IP地址不會(huì)消失 1. Docker網(wǎng)絡(luò)模式概覽 說(shuō)明: bridge 橋接網(wǎng)絡(luò) 默認(rèn)網(wǎng)絡(luò)類型,容器內(nèi)不特殊指定,就用此類型。不特殊指定的話,分配的ip為172.17.0.x none 無(wú)指定網(wǎng)絡(luò) 容器內(nèi)不指定局域網(wǎng)ip host 主機(jī)網(wǎng)絡(luò) 和主機(jī)

    2024年02月12日
    瀏覽(23)
  • ubuntu16.04下編譯安裝python3.10

    1、安裝依賴庫(kù) sudo apt install libffi-dev sudo apt install libgdbm-dev 2、編譯安裝openssl(下載最新版本源碼即可) 安裝完成后,建立軟連接(如果可以正常運(yùn)行,不需要建立): sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1 sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1 3、編譯

    2024年02月11日
    瀏覽(36)
  • Ubuntu16.04 切換系統(tǒng)python和gcc版本

    ubuntu16.04中的gcc版本及版本切換 或者

    2024年04月12日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包