В потоковом видео с помощью Python, Flask, не получается воспроизвести видео из массива одно за другим
Разрабатываю приложение на python, котрое транслирует поток в сеть, воспроизвожу через vlc. Для вещания в сеть перепробывал много способов, как свои самописные так и готовый код. Остановился на Flaske. Проблема в том что код для воспроизведения воспроизводит лишь одно видео, после прерывается. Хочу сделать перебор путе к файлам и их вещание одно за другим. Вот код
arr = ["1.mp4", "2.mp4"]
app = Flask(__name__)
@app.after_request
def after_request(response):
response.headers.add('Accept-Ranges', 'bytes')
return response
def get_chunk(path, byte1=None, byte2=None):
for path in arr:
print(path)
full_path = path
file_size = os.stat(full_path).st_size
start = 0
if byte1 < file_size:
start = byte1
if byte2:
length = byte2 + 1 - byte1
else:
length = file_size - start
with open(full_path, 'rb') as f:
print(full_path)
f.seek(start)
chunk = f.read(length)
return chunk, start, length, file_size
@app.route('/video')
def get_file():
range_header = request.headers.get('Range', None)
byte1, byte2 = 0, None
if range_header:
match = re.search(r'(\d+)-(\d*)', range_header)
groups = match.groups()
if groups[0]:
byte1 = int(groups[0])
if groups[1]:
byte2 = int(groups[1])
chunk, start, length, file_size = get_chunk(byte1, byte2)
resp = Response(chunk, 206, mimetype='video/mp4',
content_type='video/mp4', direct_passthrough=True)
resp.headers.add('Content-Range', 'bytes {0}-{1}/{2}'.format(start, start + length - 1, file_size))
return resp
if __name__ == '__main__':
app.run(threaded=True, debug=True)
Понимаю, что перебор не будет идти так как в функции есть return, что приводит к выходу из цикла. Пробовал yield, но flask ругается, что не принимает генератор. Подскажите, как сделать правильно, если кто сталкивался с таким, или стоит даже переписать код