I used ffmpeg to push stream ffmpeg .input('pipe:', format='rawvideo',codec="rawvideo", pix_fmt='bgr24', s='{}x{}'.format(1920, 1080)) .output( "stream.m3u8", preset="fast", vcodec="h264_nvenc", hls_time=10, hls_list_size=10, hls_segment_filename="stream_%03d.ts", f='hls' ) .overwrite_output() .run_async(pipe_stdin=True)
You can use ffmpeg to convert file video → file m3u8, use streamlit (st_player) to play m3u8
st_player + plugin video speed controller in firefox to run in firefox