Python:从缓冲区播放视频文件

3 投票
1 回答
2147 浏览
提问于 2025-04-28 04:02

我正在写一个Python程序,它通过TCP连接接收损坏的视频文件片段。

在接收数据时,我把这些数据放进一个变量里,像这样:

film = sock.recv(100000)

我现在做的就是把这些数据写入一个名为'received.mp4'的文件,然后再播放这个文件。

有没有办法可以直接从这个film的缓存中播放视频呢?

暂无标签

1 个回答

4

当然可以这样做。

我会使用一个外部播放器,然后把数据块通过它的 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库来连接你喜欢的视频播放器。

撰写回答