else : self . instance = vlc . Instance ( ) self . mediaplayer = self . instance . media_player_new ( ) self . uri = None # 设置待播放的url地址或本地文件路径,每次调用都会重新加载资源 def set_uri ( self , uri ) : self . uri = uri # self.mediaplayer.set_mrl(self.uri) # 替换为 set_media 方法,以获取进度 m = self . instance . media_new ( uri ) self . mediaplayer . set_media ( m ) # 播放 成功返回0,失败返回-1 def play ( self , path = None ) : if path : if path . endswith ( 'h264' ) : logger . debug ( '将h264设置播放速度为 0.4' ) self . mediaplayer . set_rate ( 0.4 ) else : logger . debug ( '设置播放速度为 1' ) self . mediaplayer . set_rate ( 1 ) self . set_uri ( path ) return self . mediaplayer . play ( ) else : return self . mediaplayer . play ( ) def pause ( self ) : self . mediaplayer . pause ( ) def resume ( self ) : self . mediaplayer . set_pause ( 0 ) def stop ( self ) : self . mediaplayer . stop ( ) # 释放资源 def release ( self ) : return self . mediaplayer . release ( ) # 是否正在播放 def is_playing ( self ) : return self . mediaplayer . is_playing ( ) # 已播放时间,返回毫秒值 def get_time ( self ) : return self . mediaplayer . get_time ( ) # 拖动指定的毫秒值处播放。成功返回0,失败返回-1 (需要注意,只有当前多媒体格式或流媒体协议支持才会生效) def set_time ( self , ms ) : return self . mediaplayer . get_time ( ) # 音视频总长度,返回毫秒值 def get_length ( self ) : return self . mediaplayer . get_length ( ) # 获取当前音量(0~100) def get_volume ( self ) : return self . mediaplayer . audio_get_volume ( ) # 设置音量(0~100) def set_volume ( self , volume ) : return self . mediaplayer . audio_set_volume ( volume ) # 返回当前状态:正在播放;暂停中;其他 def get_state ( self ) : state = self . mediaplayer . get_state ( ) if state == vlc . State . Playing : return 1 elif state == vlc . State . Paused : return 0 else : return - 1 # 当前播放进度情况。返回0.0~1.0之间的浮点数 def get_position ( self ) : return self . mediaplayer . get_position ( ) # 拖动当前进度,传入0.0~1.0之间的浮点数(需要注意,只有当前多媒体格式或流媒体协议支持才会生效) def set_position ( self , float_val ) : return self . mediaplayer . set_position ( float_val ) # 获取当前文件播放速率 def get_rate ( self ) : return self . mediaplayer . get_rate ( ) # 设置播放速率(如:1.2,表示加速1.2倍播放) def set_rate ( self , rate ) : return self . mediaplayer . set_rate ( rate ) # 设置宽高比率(如"16:9","4:3") def set_ratio ( self , ratio ) : self . mediaplayer . video_set_scale ( 0 ) # 必须设置为0,否则无法修改屏幕宽高 self . mediaplayer . video_set_aspect_ratio ( ratio ) # 设置窗口句柄 def set_window ( self , wm_id ) : if platform . system ( ) == 'Windows' : self . mediaplayer . set_hwnd ( wm_id ) elif platform . system ( ) == 'Linux' : self . mediaplayer . set_xwindow ( wm_id ) else : # MacOS self . mediaplayer . set_nsobject ( wm_id ) # 注册监听器 def add_callback ( self , event_type , callback ) : self . mediaplayer . event_manager ( ) . event_attach ( event_type , callback ) # 移除监听器 def remove_callback ( self , event_type , callback ) : self . mediaplayer . event_manager ( ) . event_detach ( event_type , callback )
文章目录环境准备 VLC 安装安装 python - vlc 绑定简单 播放 示例 VLC 监听器 视频 加字幕 VLC 的选项参数设置音频可视化在Tkinter中嵌入 视频 跨平台 网上关于 Python 音视频 播放 示例都集中在简单的多媒体库或者PyGame这样的游戏库,有些库使用简单,但功能单一,有些库功能丰富,支持的格式多,但使用繁琐。那有没有一种功能丰富全面又使用简单,而且还能支持流媒体 播放 的库呢?答案是有的。 VL...
文章目录背景windows使用流程Linux使用方法原文链接 项目中用到RTSP网络推流和拉流功能,测试了 python 使用OpenCV库进行RTSP拉流,一些网络 视频 源可以正常 播放 但我们自己的源会报错:不支持的流,后找到 python _ vlc 也可以拉流,测试稳定,以下是网上找的代码可以稳定工作 windows使用流程 下载最新版本 vlc 并安装(我测试的是 vlc -3.0.17.4),在安装目录找到并copy以下文件和文件夹到工程路径: 安装 python - vlc 支持库: pip install
import http.client import time from vlc import VideoMarqueeOption, Position, EventType, Instance class RT...
将lib vlc .dll和lib vlc core.dll放在sdk文件夹中,plugins文件夹也放在sdk文件夹中,sdk文件夹放在程序目录下。 我弄这个,实际上是为了推广,我在北京。有意者请加我微信,我的微商微信:xi9902 my vlc .py文件: import ctypes import os class my vlc ():       def __init__(self):
查找了很多资料很少用 vlc 读取实时摄像头数据用pyqt来显示的例子,为此,参考了一些资料对 vlc 做了一个二次封装,封装后保留了opencv基本上的一些功能,可以替换原pyqt的工程中opencv的接口直接使用。 类Player 1、Player.play(url,choose) 加载 播放 路径(url)和选择 播放 通道(choose,1~20,实验可以同时打开8个,不能用同一个完成并行 播放 ,...
1. 打开 VLC 媒体 播放 器。 2. 选择“媒体”菜单,然后选择“打开网络串流”选项。 3. 在“网络”选项卡中,输入 视频 流的RTSP URL地址。例如,rtsp://192.168.1.100:8554/stream。 4. 点击“ 播放 ”按钮,开始 播放 视频 。 如果您无法 播放 视频 ,请确保您已经正确输入了RTSP URL地址,并且目标服务器在运行中。