python mjpeg视频推流

最近想做一个类似云手机的一个东西,需要远程显示模拟器内的内容,看到了这个,但是目前此项目并没有采用此方法,因为虽然图像效果还可以,但是对带宽的占用太大了,没这么大的上传带宽,代码还是记录下.

import time
import socket

def readImg(i):
    file = open('Y://1.jpg', 'rb')
    file_data = file.read()
    file.close()
    return file_data

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 5888))
s.listen(5)
while 1:
    c,a = s.accept()
    data = c.recv(1024).decode()
    if "camera" in data:
        i = 0
        header = b'HTTP/1.1 220 OK\r\nContent-Type: multipart/x-mixed-replace; boundary=frame\r\n\r\n'
        c.sendall(header)
        while 1:
            body = readImg(str(i))
            r = b'--frame\r\nContent-Type: image/jpeg\r\n\r\n'+body
            try:
                c.sendall(r)
            except Exception as e:
                c.close()
            i += 1
            time.sleep(0.1)
    else:
        c.close()

运行起来后打开浏览器访问 http://127.0.0.1:5888/camera 就可以看到效果

B站看到的,原视频链接https://www.bilibili.com/video/BV1uU4y1Y7nD?from=search&seid=5264842891449557674