我正在研究一个通过TCP套接字接收视频文件碎片的python程序。接收时,我将数据放入一个变量中,例如:
film = sock.recv(100000)
我目前正在做的是将其写入文件“ received.mp4”,然后播放。
有什么方法可以直接从film
缓冲区播放此视频吗?
当然可以。
我会使用一个外部播放器,然后stdin
像下面那样喂块:
# cmdline = ['vlc', '--demux', 'h264', '-'] #pick a media player
# cmdline = ['mplayer', '-fps', '25', '-cache', '1024', '-']
player = subprocess.Popen(cmdline, stdin=subprocess.PIPE)
while True:
data = sock.recv(1024)
if not data:
break
player.stdin.write(data)
(摘自http://picamera.readthedocs.org/en/latest/recipes1.html#recording-to-a-network-stream)
您还可以使用命名管道并对其进行写入,或者利用一些Python绑定到您喜欢的视频播放器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句