libvlc在Linux运行,如何在centos7下构建静态libvlc?

我有一个由pyqt编写的程序,它通过绑定libvlc来播放视频。

# -*- coding: utf-8 -*-

import sys

import os

import vlc

from PySide2.QtGui import *

from PySide2.QtCore import *

from PySide2.QtWidgets import *

class vlc_demo(QWidget):

def __init__(self):

super(vlc_demo, self).__init__()

self.__ui__()

self.__load__()

def __ui__(self):

self.setFixedSize(800,600)

t_lay_parent = QVBoxLayout()

self.m_label_media = QLabel()

t_lay_bottom = QHBoxLayout()

self.m_button_one = QPushButton("one")

self.m_button_too = QPushButton("too")

self.m_button_three = QPushButton("three")

t_lay_bottom.addWidget(self.m_button_one)

t_lay_bottom.addWidget(self.m_button_too)

t_lay_bottom.addWidget(self.m_button_three)

self.m_button_one.clicked.connect(self.slt_one)

self.m_button_too.clicked.connect(self.slt_too)

self.m_button_three.clicked.connect(self.slt_three)

t_lay_parent.addWidget(self.m_label_media)

t_lay_parent.addLayout(t_lay_bottom)

self.setLayout(t_lay_parent)

def __load__(self):

self.m_instance = vlc.Instance()

self.m_player = self.m_instance.media_player_new()

self.m_win_id = self.m_label_media.winId()

if sys.platform.startswith('linux'): # linux

self.m_player.set_xwindow(self.m_win_id)

elif sys.platform == "win32": # windows

self.m_player.set_hwnd(self.m_win_id)

elif sys.platform == "darwin": # mac

self.m_player.set_nsobject(self.m_win_id)

def slt_one(self):

self.m_label_media.show()

media = self.m_instance.media_new("1.mp4")

self.m_player.set_media(media)

self.m_player.play()

def slt_too(self):

self.m_label_media.show()

media = self.m_instance.media_new("2.mp4")

self.m_player.set_media(media)

self.m_player.play()

def slt_three(self):

self.m_label_media.hide()

if __name__ == "__main__":

app = QApplication(sys.argv)

win = vlc_demo()

win.show()

sys.exit(app.exec_())

在Windows下,复制VLC媒体播放器目录中的以下文件和目录。程序可以在没有vlc媒体播放器的机器上运行。

- libvlc.dll

- libvlccore.dll

- plugins

在CentOS7下,有没有办法在不安装VLC媒体播放器的情况下运行程序?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libvlc 是一个流行的开源媒体播放库,它提供了许多功能强大的接口来处理视频和音频播放。要在视频上叠加透明窗体,我们可以利用 libvlc 提供的一些功能和方法。 首先,我们需要创建一个窗体,并设置它的背景为透明。在窗体的构造函数中,我们可以使用 SetStyle 方法将窗体的样式设置为“Layered”,然后使用 SetLayeredWindowAttributes 方法将窗体的背景设置为透明。 接下来,我们需要使用 libvlc 创建一个播放器实例。可以使用 libvlc_new 方法和 libvlc_media_player_new 方法来创建播放器实例。然后,使用 libvlc_media_player_set_hwnd 方法将播放器与窗体关联,以便将视频渲染到窗体上。 在播放视频之前,我们可以使用 libvlc_video_set_callbacks 和 libvlc_video_set_format 方法来指定渲染视频的回调函数和格式。在回调函数中,我们可以将视频渲染到窗体的指定位置,并在该位置上叠加透明窗体。 最后,使用 libvlc_media_player_play 方法来播放视频。此时,视频将被渲染到窗体上,并且透明窗体将叠加在视频上。 在播放完成后,可以使用 libvlc_media_player_stop 方法停止播放,并使用 libvlc_media_player_release 方法释放播放器实例。 总结来说,使用 libvlc 可以轻松地在视频上叠加透明窗体。我们通过创建具有透明背景的窗体,并使用 libvlc 将视频渲染到窗体上,在指定位置上叠加透明窗体。这样就能实现在视频上叠加透明窗体的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值