else
:
self
.
instance
=
vlc
.
Instance
(
)
self
.
mediaplayer
=
self
.
instance
.
media_player_new
(
)
self
.
uri
=
None
def
set_uri
(
self
,
uri
)
:
self
.
uri
=
uri
m
=
self
.
instance
.
media_new
(
uri
)
self
.
mediaplayer
.
set_media
(
m
)
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
(
)
def
set_time
(
self
,
ms
)
:
return
self
.
mediaplayer
.
get_time
(
)
def
get_length
(
self
)
:
return
self
.
mediaplayer
.
get_length
(
)
def
get_volume
(
self
)
:
return
self
.
mediaplayer
.
audio_get_volume
(
)
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
def
get_position
(
self
)
:
return
self
.
mediaplayer
.
get_position
(
)
def
set_position
(
self
,
float_val
)
:
return
self
.
mediaplayer
.
set_position
(
float_val
)
def
get_rate
(
self
)
:
return
self
.
mediaplayer
.
get_rate
(
)
def
set_rate
(
self
,
rate
)
:
return
self
.
mediaplayer
.
set_rate
(
rate
)
def
set_ratio
(
self
,
ratio
)
:
self
.
mediaplayer
.
video_set_scale
(
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
:
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地址,并且目标服务器在运行中。