Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从YouTube流式播放视频和音频帧_Python_Video_Youtube_Streaming_Vlc - Fatal编程技术网

Python 从YouTube流式播放视频和音频帧

Python 从YouTube流式播放视频和音频帧,python,video,youtube,streaming,vlc,Python,Video,Youtube,Streaming,Vlc,我正在尝试从YouTube视频流式传输视频和音频数据,这样我可以分别进行一些视频和音频分析,然后使用OpenCV将其叠加到帧上。我可以很好地处理文件,但我想把它扩展到YouTube上的流媒体 目前,我曾考虑使用VLC Python绑定从YouTube流媒体,但我不确定如何从这段视频中提取帧 以下是目前执行YouTube流媒体的vlc代码: import vlc import time import numpy as np from ctypes import * class MyDisplay

我正在尝试从YouTube视频流式传输视频和音频数据,这样我可以分别进行一些视频和音频分析,然后使用OpenCV将其叠加到帧上。我可以很好地处理文件,但我想把它扩展到YouTube上的流媒体

目前,我曾考虑使用VLC Python绑定从YouTube流媒体,但我不确定如何从这段视频中提取帧

以下是目前执行YouTube流媒体的vlc代码:

import vlc
import time
import numpy as np
from ctypes import *

class MyDisplay(vlc.VideoDisplayCb):
    def __doc__(o,p):
        print "fsdfs"

class MyLock(vlc.VideoLockCb):
    def __doc__():
        raise Exception("sdsds")
        return np.array(500,500).__array_interface__['data']

class MyPlayback(vlc.AudioPlayCb):
    def from_param(self,a,b,c,d):
        print "asfds"

def callbck(a,b,c,d):
    print 'aa'
    print a 
    print b
    print c
    print d
    return 'a'

if __name__ == '__main__':
    url = 'https://www.youtube.com/watch?v=F82XtLmL0tU'
    i = vlc.Instance('--verbose 2'.split())
    media = i.media_new(url)
    media_list = i.media_list_new([url])

    p = i.media_player_new()
    p.set_media(media)

    lp = i.media_list_player_new()
    lp.set_media_player(p)
    lp.set_media_list(media_list)
    CMPFUNC = CFUNCTYPE(c_char, c_void_p, c_void_p, c_uint, c_long)

    lp.next()
    lock = MyLock()
    display = MyDisplay()

    playback = MyPlayback()
    p.audio_set_callbacks(CMPFUNC(callbck),None,None,None,None,None)
    p.play()

    time.sleep(5)
    r = p.video_take_snapshot(0,'rnd.pong',0,0)
如何使用VLC(使用Python绑定)生成帧和音频数据流?还有其他方法可以做到这一点(例如使用ffmpeg)


谢谢

你能解决这个问题吗?将有兴趣学习如何!很遗憾,没有,很抱歉回复时间过长!