标签: vlc

VLC Python EventManager回调类型?

在使用VLC Python绑定时,我无法附加事件处理程序以告知歌曲何时播放完毕.event_attach函数抱怨回调类型.

def __init__(self):
    self.vlc = vlc.Instance()
    self.vlc_playlist = self.vlc.media_list_new()
    self.vlc_player = self.vlc.media_list_player_new()
    self.vlc_player.set_media_list(self.vlc_playlist)
    self.vlc_events = self.vlc_player.event_manager()
    self.vlc_events.event_attach(vlc.EventType.MediaPlayerEndReached, self.SongFinished, 1)
    ....
def SongFinished(self, *args, **kwargs):
    pass
Run Code Online (Sandbox Code Playgroud)

错误:

self.vlc_events.event_attach(vlc.EventType.MediaPlayerEndReached, self.SongFinished, 1)
return libvlc_event_attach(self, i_event_type, f_callback, user_data)
    ArgumentError: argument 3: <type 'exceptions.TypeError'>: wrong type
Run Code Online (Sandbox Code Playgroud)

python vlc libvlc

12
推荐指数
2
解决办法
3580
查看次数

将OpenCV输出发送到VLC流

这让我在下午的大部分时间都很忙,而且我无法让它上​​班,但我觉得我真的很亲近.

我已经设置了openCV,它可以从网络摄像头中获取录像带.为了能够访问此视频源(使用openCV覆盖),我想将openCV python脚本的输出传递给VLC流.我设法让流启动并运行并可以连接到它.VLC调整到正确的宽高比和分辨率,因此它获得了一些正确的数据,但我得到的图像只是抖动 ;

python opencv.py | cvlc --demux=rawvideo --rawvid-fps=30 --rawvid-width=320 --rawvid-height=240  --rawvid-chroma=RV24 - --sout "#transcode{vcodec=h264,vb=200,fps=30,width=320,height=240}:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=:8081/stream.flv}" &
Run Code Online (Sandbox Code Playgroud)

脚本的输出是发送到stdout的常量视频源,如下所示

from imutils.video import WebcamVideoStream

vs = WebcamVideoStream(src=0)

while True: 
  frame = vs.read()
  sys.stdout.write(frame.tostring())
Run Code Online (Sandbox Code Playgroud)

上面的例子是我正在使用的脚本的一个愚蠢的版本; 另外我看到我正在使用imutils库; https://github.com/jrosebr1/imutils

如果有人能给我一个正确方向的推动,我会非常感激.我的猜测是stdout.write(frame.tostring())不是vlc所期望的,但我自己也无法弄明白.

python opencv vlc

12
推荐指数
1
解决办法
6088
查看次数

VLC远程控制VLC

我正试图从C#控制VLC媒体播放器.我尝试使用.Net的FindWindow()命令在窗口上获取句柄,但是当我发现每次播放文件时窗口的名称都会改变.我遇到的最大问题是将wm_commands发送到vlc.这种方法适用于Winamp和Windows Media Player,但是对于VLC,它似乎不起作用.

我读到VLC可以通过浏览器进行控制,但我不打算...我已经在其设置中看到它有一些可以调用的热键..但是它们可以被更改,如果我从中调用它们我的代码以某种方式......并且用户更改了它们......真可惜......

我有点卡住了..任何帮助都会很棒......索林

c# controls vlc

11
推荐指数
1
解决办法
2万
查看次数

Linux Shell:VLC编程

有没有办法在没有脚本等待VLC关闭的情况下使用Linux shell脚本操作VLC.

cvlc test.mp3
echo "Now playing!"
sleep 200
cvlc://pause:60
Run Code Online (Sandbox Code Playgroud)

此代码保持运行VLC直到文件完成,然后显然暂停文件是迟到的.

linux bash shell vlc

11
推荐指数
1
解决办法
7236
查看次数

VLC 2.0.1调整字幕调整

如何在VLC 2.0.1
My Subtitle后2分钟调整字幕时序.

已经尝试了谷歌,大多数为版本1编写的教程,版本2有不同的配置界面,这对我来说更加困惑.

vlc

11
推荐指数
1
解决办法
2万
查看次数

运行./configure for vlc时找不到libavcodec

我想在ubuntu 10.04上为vlc运行'./configure'.但由于某种原因,它无法找到libavcode库.我检查/ usr/lib,它有库,为什么./configure找不到它?

这是'./configure'的错误:

checking for AVCODEC... no
configure: error: Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.
Run Code Online (Sandbox Code Playgroud)

但我已经安装了libavcodec-dev,但它仍然失败:

$ sudo apt-get install libavcodec-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libavcodec-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 201 not upgraded.
Run Code Online (Sandbox Code Playgroud)

我检查了'/ usr/lib',我看到了libavcodec.so:

-rw-r--r-- 1 root root 7339558 2010-03-04 04:42 libavcodec.a
lrwxrwxrwx 1 root root      21 2010-06-26 00:38 libavcodec.so -> libavcodec.so.52.20.1
lrwxrwxrwx 1 root …
Run Code Online (Sandbox Code Playgroud)

linux gcc vlc shared-libraries

10
推荐指数
2
解决办法
2万
查看次数

MPEG-TS编码

我有一个文件,我需要转换为MPEG-TS,以便它符合以下规范:

基本流比特率[kbit/s]视频:2575音频:2 x 192字幕: - PAT/PMT: - 填充: -

分量TS比特率[kbit/s]视频:2652音频:395字幕:45 PAT/PMT:45填充:62总计:3200 CBR

其他必需组件:PAT PMT空包

可能弹出的组件:NIT,SDT,EIT等.

vcodec="h264"
acodec="mpga"
bitrate="2500"
arate="192"
samplerate=48000
ext="mpg"
mux="ts"
vlc="/usr/bin/vlc"
fmt="mpg"
dst="/home/adam/test/"

for a in *$fmt; do
$vlc -I dummy -vvv "/home/adam/test/" --sout "#transcode{vcodec=$vcodec,venc=x264{profile=main,level=3.0,hrd=cbr,bframes=2},vb=$bitrate,acodec=$acodec,ab=$arate,samplerate=$samplerate,channels=2}:standard{mux=$mux,dst=\"$dst$a.$ext\",ac$
done
Run Code Online (Sandbox Code Playgroud)

使用上面的脚本编码后,一切似乎都可以(视频和音频比特率编解码器都是常量)除了两件事:容器的比特率也应该保留CBR但事实并非如此.此外,填充组件(0x1 ffff) - 缺少空数据包.您是否可以更正脚本以使空数据包以及容器的比特率恒定(3,2 Mbps CBR)?

第二个选项是使用ffmpeg进行编码:

ffmpeg -i video_input.mpg -i audio_input.mp2 -acodec copy -tune zerolatency -x264opts bitrate=2600:vbv-maxrate=2600:vbv-bufsize=166:nal_hrd=cbr -vpre libx264-iptv -vcodec libx264 -f mpegts -muxrate 3200K -y output.ts
Run Code Online (Sandbox Code Playgroud)

但如何取消/禁用/删除SDT表?

encoding vlc video-streaming mpeg2-ts dvb

10
推荐指数
1
解决办法
2万
查看次数

如果不再支持VLC插件,如何在Firefox和Chrome中流式传输RTSP实时视频?

既然VLC插件使用的NPAPI在Firefox中停止使用,并且谷歌Chrome已经停止使用NPAPI,那么在这些浏览器中是否有流媒体RTSP直播视频的解决方案?

非常感谢您对此的帮助.

此致,蒂亚戈迪亚斯

firefox google-chrome vlc npapi rtsp

10
推荐指数
1
解决办法
3万
查看次数

根据正在录制的WAV音频,使用C#中的VLC创建http音频流

我正在使用NAudio库来记录系统麦克风输入 - 连续.

private void RecordStart() {
        try {
            _sourceStream = new WaveIn {
                DeviceNumber = _recordingInstance.InputDeviceIndex,
                WaveFormat =
                    new WaveFormat(
                    44100,
                    WaveIn.GetCapabilities(_recordingInstance.InputDeviceIndex).Channels)
            };
            _sourceStream.DataAvailable += SourceStreamDataAvailable;
            _sourceStream.StartRecording();
        } catch (Exception exception) {
            Log.Error("Recording failes", exception);
        }
}
Run Code Online (Sandbox Code Playgroud)

有一个事件处理程序,只要有数据,它就会从记录流中获取数据.

我能够使用现有的音频文件创建一个音频(mp3)HTTP流媒体,并在我的系统中安装VLC播放器.

const int portNumber = 8089;
const string streamName = "fstream_1789846";
const string audio = "C:\\Recording\\Audio\\1789846.wav";
const string windowQuiet = "-I dummy --dummy-quiet";
const string tanscode = ":sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}";
var stream = String.Format(@":http{{mux=mp3,dst=:{0}/{1}}}", portNumber, streamName);
const string keep = ":sout-keep"; …
Run Code Online (Sandbox Code Playgroud)

c# vlc audio-streaming bass http-live-streaming

10
推荐指数
0
解决办法
1138
查看次数

MobileVLCKit iOS相机视频"VLC无法打开MRL"错误

MobileVLCKit在iOS项目中集成了版本:2.2.2.从Camera Roll播放本地视频时遇到问题.来自文档目录和流媒体的视频工作正常.

我正在使用此代码来提取PHAsset对象的url :

- (void)urlForPhAsset:(PHAsset*)phAsset withCompletionBlock:(void (^)(NSURL* url))completionBlock{
    [[PHImageManager defaultManager] requestAVAssetForVideo:phAsset options:nil resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
        NSURL* url= nil;
        if([asset isKindOfClass:[AVURLAsset class]]){
            url= [(AVURLAsset *)asset URL];
        }else if([asset isKindOfClass:[AVComposition class]]){
            AVCompositionTrack* compositionTrack= [[(AVComposition*)asset tracks] firstObject];
            AVCompositionTrackSegment* segment= [[compositionTrack segments] firstObject];
            url= [segment sourceURL];
        }
        completionBlock(url);
    }];
}
Run Code Online (Sandbox Code Playgroud)

这些是播放器中显示的警报:

Your input can't be opened
VLC is unable to open the MRL 'file:///var/mobile/Media/DCIM/102APPLE/IMG2728.MOV'. 
Check the log for details. …
Run Code Online (Sandbox Code Playgroud)

vlc libvlc ios

10
推荐指数
0
解决办法
1597
查看次数