示例#1
0
 def encode_frame(self, input_frame, pts: int) -> T.Iterator[Packet]:
     # for JPEG we only get a single packet per frame
     packet = Packet()
     packet.payload = input_frame.jpeg_buffer
     packet.time_base = self.time_base
     packet.pts = pts
     # TODO: check if we still need dts here, as they were removed from MPEG_Writer
     packet.dts = pts
     yield packet
示例#2
0
    def decode(self, encoded_frame):
        try:
            packet = Packet(encoded_frame.data)
            packet.pts = encoded_frame.timestamp
            frames = self.codec.decode(packet)
        except AVError as e:
            logger.warning('failed to decode, skipping package: ' + str(e))
            return []

        return list(map(video_frame_from_avframe, frames))
示例#3
0
文件: av_writer.py 项目: elmorg/pupil
    def write_video_frame(self, input_frame):
        if not self.configured:
            self.video_stream.height = input_frame.height
            self.video_stream.width = input_frame.width
            self.configured = True

        packet = Packet()
        packet.payload = input_frame.jpeg_buffer
        packet.dts = self.frame_count * 10000
        packet.pts = self.frame_count * 10000
        self.frame_count += 1
        self.container.mux(packet)
示例#4
0
    def write_video_frame(self, input_frame):
        if not self.configured:
            self.video_stream.height = input_frame.height
            self.video_stream.width = input_frame.width
            self.configured = True

        packet = Packet()
        packet.payload = input_frame.jpeg_buffer
        packet.dts = self.frame_count*10000
        packet.pts = self.frame_count*10000
        self.frame_count +=1
        self.container.mux(packet)
示例#5
0
    def write_video_frame(self, input_frame):
        if not self.configured:
            self.video_stream.height = input_frame.height
            self.video_stream.width = input_frame.width
            self.configured = True

        packet = Packet()
        packet.payload = input_frame.jpeg_buffer
        #we are setting the packet pts manually this uses a different timebase av.frame!
        packet.dts = int(self.frame_count/self.video_stream.time_base/self.fps)
        packet.pts = int(self.frame_count/self.video_stream.time_base/self.fps)
        self.frame_count +=1
        self.container.mux(packet)