Python 在磁盘上保存使用PyAV接收的h264包

Python 在磁盘上保存使用PyAV接收的h264包,python,ffmpeg,pickle,h.264,avconv,Python,Ffmpeg,Pickle,H.264,Avconv,我正在使用PyAV在5分钟内从H.264流中读取数据包。我需要将编码的数据包保存在磁盘上,然后加载并解码它们。我尝试使用pickle保存数据包,但它无法序列化它们。我能做什么?以下是我的部分代码(当我尝试使用pickle保存数据包时会引发异常,因此代码不起作用): 我没有使用pickle保存数据包,而是创建了一个输出mp4容器,并将从H.264流读取的数据包混合到该容器中。当我以后需要加载它们时,我只处理容器生成的视频 import av import time import pickle #

我正在使用PyAV在5分钟内从H.264流中读取数据包。我需要将编码的数据包保存在磁盘上,然后加载并解码它们。我尝试使用pickle保存数据包,但它无法序列化它们。我能做什么?以下是我的部分代码(当我尝试使用pickle保存数据包时会引发异常,因此代码不起作用):


我没有使用pickle保存数据包,而是创建了一个输出mp4容器,并将从H.264流读取的数据包混合到该容器中。当我以后需要加载它们时,我只处理容器生成的视频

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))