ffmpeg Поток Windows на Twitch с видео из канала отправляет только ~ 100 кадров и застревает - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь транслировать rawVideo (массив numpy) на Twitch, используя Python с ffmpeg в Windows. Но после ~ 100 кадров я просто застреваю.

Мой параметр подпроцесса:

command = [
    "ffmpeg.exe",
        '-f', 'rawvideo',
        '-vcodec','rawvideo',
        '-s', '480x640', 
        '-pix_fmt', 'rgb24',
        '-r', '30',
        '-i', '-', 
        '-vcodec', 'libx264',
        '-b:v' , '5M',
        '-acodec', 'aac',
        '-b:a', '256k',
        '-r','30',
        '-f', 'flv', 'rtmp://live-fra.twitch.tv/app/%removed for stackoverflow%'
]
[...]
pipe = subprocess.Popen( command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE)

Отправка фреймов:

frames = 0
frame = np.zeros((480, 640, 3))
#print(pipe,dir(pipe))
while 1:
    try:
        pipe.stdin.write(frame.tobytes())   # < gets stuck here after ~100 frames     
        frames += 1
        print("frame_send", frames)       
    except Exception as e:
         out, ffmpeg_error = pipe.communicate()
         print("error:" , ffmpeg_error  , e , out )
         break
    time.sleep( 1 / 30 )

Не было ошибок, он просто застрял в "pipe.stdin.write (frame.tobytes ())"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...