gpt4 book ai didi

c++ - 如何使用 vlc-qt libvlc 在 qt 中向后播放视频

转载 作者:行者123 更新时间:2023-12-03 07:03:24 26 4
gpt4 key购买 nike

我正在使用 vlc-qt 开发媒体播放器, 其实我想要一个按钮,可以播放快退操作。我的快进操作没有问题但是不能实现快退操作,vlc-qt里面有什么功能吗?这将向后播放视频。
这是我用于快进和快退操作的按钮代码

void expPlayer::on_pushButton_2_clicked()
{
m_player->setPlaybackRate(m_player->playbackRate()+1);
}

void expPlayer::on_pushButton_3_clicked()
{
//It should play the video backward with more playback rate.
}
这是我的完整代码
#ifndef EXPPLAYER_H
#define EXPPLAYER_H

#include <QMainWindow>
#include "VLCQtCore/Instance.h"
#include "VLCQtCore/MediaPlayer.h"
#include "VLCQtCore/Media.h"
#include "VLCQtCore/Common.h"
#include "VLCQtCore/Config.h"
#include "QPushButton"
#include "QtMultimedia/QMediaPlaylist"
#include "VLCQtWidgets/WidgetVideo.h"
#include "VLCQtWidgets/WidgetSeekProgress.h"
#include "QSlider"
#include "QFileDialog"
#include "QInputDialog"
#include "QLabel"
#include "QListView"
#include "QBoxLayout"
#include "VLCQtWidgets/WidgetSeek.h"
QT_BEGIN_NAMESPACE
namespace Ui { class expPlayer; }
QT_END_NAMESPACE

class expPlayer : public QMainWindow
{
Q_OBJECT

public:
expPlayer(QWidget *parent = nullptr);
~expPlayer();

private slots:
void on_pushButton_clicked();

void on_pushButton_2_clicked();

void on_pushButton_3_clicked();

private:
Ui::expPlayer *ui;

VlcInstance *m_instance;
VlcMedia *m_media;
VlcMediaPlayer *m_player;
VlcWidgetSeekProgress *m_progressBar;
};
#endif // EXPPLAYER_H

#include "expplayer.h"
#include "ui_expplayer.h"

expPlayer::expPlayer(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::expPlayer)
{
ui->setupUi(this);
m_instance = new VlcInstance(VlcCommon::args(), this);
m_player = new VlcMediaPlayer(m_instance);

m_player->setVideoWidget(ui->m_video);
ui->m_video->setMediaPlayer(m_player);
m_progressBar=new VlcWidgetSeekProgress(this);
m_progressBar->setMediaPlayer(m_player);
ui->m_video->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
ui->m_video->show();

m_media = new VlcMedia("http://www.youtube.com/watch?v=Btv7G0BV45g",m_instance);
m_player->open(m_media);
qDebug()<<"m_player->video():"<<m_player->video();
m_player->play();

m_progressBar->resize(ui->m_video->width(),30);
m_progressBar->move(ui->m_video->x(),ui->m_video->y()+ui->m_video->height()+20);
m_progressBar->show();

}

expPlayer::~expPlayer()
{
delete ui;
}


void expPlayer::on_pushButton_clicked()
{



}

void expPlayer::on_pushButton_2_clicked()
{
m_player->setPlaybackRate(m_player->playbackRate()+1);
}

void expPlayer::on_pushButton_3_clicked()
{
//It should play the video backward with more playback rate.
}
qt

最佳答案

VLC 没有此功能。
作为解决方法,您可以使用 ffmpeg 尝试 VLC .
我从未使用过它,但是:

  • 您可以使用 ffmpeg要反转视频,请参阅 thisReverse video playback through ffmpeg ,例如
  • 您可以使用 ffmepg使用 VLC,参见 this ,例如

  • 所以我想你可以用这个解决方案完成你需要的。
    其他相关来源,我不确定会帮助你
  • 您可以尝试将其他开源替代品与 VLC 结合使用,类似于上面针对 ffmpeg 的建议。 .
    1.1.您可以尝试使用 AviSynth with VLC .
    1.2.您可以尝试使用 Avidemux与 VLC。
    It used to be possible to reverse a video用它(另见 this),但是 I am not sure it is possible nowadays .
    我不确定是否可以将 VLC 与 Avidemux 结合使用。
    1.3. Video players that have frame by frame playback feature
    1.4. Video player with backward frame by frame stepping for Linux ,包括分机 Previous Frame .
    1.5. Gstreamer
  • How can I reverse a video clip?
  • https://forum.videolan.org/viewtopic.php?t=139871
  • https://forum.videohelp.com/threads/345380-video-player-that-can-step-forward-backwards-and-change-play-speed

  • 注意:OpenShot 是另一个可以向后播放的开源软件......你敢尝试将它与 VLC 结合起来吗?

    关于c++ - 如何使用 vlc-qt libvlc 在 qt 中向后播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64618247/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com