Возможно, вы достигли конца файла, и ваш цикл не работает, либо с EOFError, либо где-то сбоем.Если видео генерируется в режиме реального времени, если test2.mpg не является каналом FIFO (созданным с использованием mkfifo - в этом случае вы можете иметь только один ридер за раз) - чтение из канала может не вернуть никаких данных, и вашЦикл, скорее всего, будет работать намного быстрее, чем сохраняются ваши видеоданные.Таким образом, вам нужна стратегия для обработки EOF.
Кроме того, вы должны обязательно сбросить вывод - как после строки sys.stdout.write () в этой программе, так и после видеопотока вдругая программа.Поскольку у вашего цикла нет конечных условий и нет выходных данных, и вы можете никогда не закончить запись каких-либо данных, может случиться так, что после одной итерации цикла что-то не получится, и веб-сервер отбросит буферизованные данные.
Дополнительночтение постоянного размера 1 МБ за раз может вызвать проблемы с задержкой.Для лучшей задержки лучше использовать меньшие размеры;однако для лучшего качества и пропускной способности вы можете использовать большие размеры.Однако, латентность точка является спорным, если программа создания видео, ваш CGI скрипт или веб-сервер не все промывке через регулярные промежутки времени.
1006 * Я также предлагаю смотреть в «выбрать» или «опрос»/ epoll - любой из этих методов даст вам лучший контроль над чтением и может помочь вам решить проблему конца файла, спя, пока не станут доступны данные.Если вам нужно поспать (0,5), вам лучше использовать правильный выбор / опрос.