5.14. sail.Decoder_RawStream
裸流解码器,可实现H264/H265的解码。
5.14.1. __init__
- 接口形式:
def __init__(self, tpu_id: int, decformat: str)
参数说明:
tpu_id: int
输入参数。使用的智能视觉深度学习处理器 id,默认为0。
decformat: str
输入参数。输入图像的格式,支持h264和h265
5.14.2. read
从Decoder中读取一帧图像。
- 接口形式1:
def read(self, data: bytes, image: BMImage, continue_frame: bool = False) -> int
参数说明1:
data: bytes
输入参数。裸流的二进制数据。
image: sail.BMImage
输出参数。将数据读取到image中。
continue_frame: bool
输入参数。是否连续读帧,默认为False。
返回值说明1:
judge_ret: int
读取成功返回0,失败返回其他值。
5.14.3. read_
从Decoder中读取一帧图像。
- 接口形式1:
read_(self, data_bytes: bytes, image: bm_image, continue_frame: bool = False)
参数说明1:
data: bytes
输入参数。裸流的二进制数据。
image: sail.bm_image
输出参数。将数据读取到image中。
continue_frame: bool
输入参数。是否连续读帧,默认为False。
返回值说明1:
judge_ret: int
读取成功返回0,失败返回其他值。
5.14.4. release
释放Decoder资源。
- 接口形式:
def release(self) -> None
- 示例代码:
import sophon.sail as sail filepath = 'car.264' with open(filepath, 'rb') as f: raw264 = f.read() decoder = sail.Decoder_RawStream(0, 'h264') encoder = sail.Encoder('output.mp4', 0, 'h264_bm', 'I420', 'width=1920:height=1080:bitrate=3000') for i in range(500): bmi = sail.BMImage() ret = decoder.read(raw264, bmi, True) encoder.video_write(bmi) decoder.release()