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

标签 python video tcp

我正在开发一个 python 程序,它通过 TCP 套接字接收损坏的视频文件 block 。 接收时,我将数据提取到一个变量中,例如:

film = sock.recv(100000)

我目前正在做的是将其写入“received.mp4”文件然后播放。

有没有办法直接从 film 缓冲区播放这个视频?

最佳答案

当然可以。

我会使用外部播放器,然后将 block 输入到它的 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 绑定(bind)到您最喜欢的视频播放器。

关于Python:从缓冲区播放视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26429470/

相关文章:

python - 如何使用相同的URL为GET和POST请求设置不同的permission_classes?

python - 在 Python 中发送自定义帧/数据包

连接到数据库时出现 Python-Neo4j 安全错误无法建立与“[SSL :UNKNOWN_PROTCOL(_ssl. c:600) 的安全连接”

apache - 如何强制 Apache 服务器使用 TCP 或 UDP?

c++ - 套接字编程中的多个请求/响应

python - 两个字符串之间的正则表达式文本

php - PHP上的FFMPEG无法打开文件

c# - 无法上传大视频文件

html - 如何在Div后台添加元素目录下的Video

sockets - 用一个线程维护多个套接字连接