Сохраните на диске пакеты h264, полученные с помощью PyAV - PullRequest
0 голосов
/ 26 мая 2018

Я использую PyAv для чтения пакетов из потока H.264 в течение 5 минут.Мне нужно сохранить пакеты, закодированные на диске, загрузить и декодировать их позже.Я пытался использовать pickle для сохранения пакетов, но он не может их сериализовать.Что я могу сделать?Вот часть моего кода (исключение выдается, когда я пытаюсь сохранить пакеты, используя pickle, поэтому код не работает):

import av
import time
import pickle

# open container
container = av.open(url) # url from a h264 stream
# read packages from stream during 5 minutes and add them to a list
packets = []
initialTime = time.time()
for packet in container.demux(video = 0):
    packets.append(packet) 
    if time.time() - initialTime > 300:
        break
# save packets
pickle.dump(packets, open("packets.obj", "wb"))
# load packets, get the frames they contain and saves them as files
load_packets = pickle.load(open("packets.obj", "rb"))
for idx, packet in enumerate(load_packets):
    frame = packet.decode_one()
    if frame is not None:
        frame.to_image().save('frame-%04d-%04d.jpg' % (frame.index, idx))
...