2021-04-08 Python通过flask搭建音频流/文件服务

506 阅读1分钟

Python通过flask搭建音频流/文件服务

工作上需要搭建一个音频推送服务,考虑到使用python Flask搭建一个服务,下面给出简单的代码,代码中每次请求推送当前目录下的音频文件。

from flask import Flask
from flask import Response
import os


app = Flask(__name__)
folder = './video'


@app.route('/video/<file_key>')
def stream_mp3(file_key):
    def generate():
        path = os.path.join(folder, file_key)
        with open(path, 'rb') as video:
            data = video.read(1024)
            while data:
                yield data
                data = video.read(1024)

    return Response(generate(), mimetype="video")


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

文件下面有2个视频文件供调试,

图片

代码中读取文件每次读取1024字节,而不是一次全部读取到文件中,于是利用到了python 的 yield,为了简化问题,上面仅仅传递当前系统指定路径下的文件(实际工作中还有很多要处理,日志模块、视频处理分析等其他模块)

运行代码

图片

浏览器输入:

http://127.0.0.1:8080/video/1.mp4

则弹出视频页面。

图片