Я хочу передать данные в поддерживающий декодер, который может запомнить предыдущую информацию. P-кадр, поэтому после подачи одного B-кадра декодер возвращает декодированный видеокадр. Или какая-то форма ввода-вывода, которую можно открыть как контейнер и продолжать записывать в нее данные другим потоком.
Вот мой ключевой код:
Код: Выделить всё
#read thread... read until get a key frame, then make a new io.BytesIO() to store the new data.
rawFrames = io.BytesIO()
while flag_get_keyFrame:()
....
content= socket.recv(2048)
rawFrames.write(content)
....
#decode thread... decode content between two key frames
....
rawFrames.seek(0)
container = av.open(rawFrames)
for packet in container.demux():
for frame in packet.decode():
self.frames.append(frame)
....
Я хочу воспроизвести видео после получения первого ключевого кадра и декодировать следующие кадры сразу после их получения. Пьяв opencv ffmpeg или что-то еще, как мне достичь своей цели?
Подробнее здесь: https://stackoverflow.com/questions/627 ... h-264-data