更新时间:2022-02-22 GMT+08:00

示例-输出

本示例展示了多种输出端的接口调用,在使用前请确保各种输出端已连接并可用,若您的某种输出端条件不具备,请将示例代码当中相应的代码注释掉或者删除,再运行示例代码。输出模块示例如下所示:
#! /usr/bin/python3.7
import hilens
import cv2
import numpy as np
import wave

def run():
    # 显示到HDMI接口的显示器
    # 目前只支持一路数据显示到HDMI,多个技能同时显示到HDMI会报错
    disp0 = hilens.Display(hilens.HDMI)
    # 推流到地址为rtmp://192.168.1.1/stream的服务器
    disp1 = hilens.Display(hilens.RTMP, "rtmp://192.168.1.1/stream")
    # 把视频写到文件,hilens.H264_FILE生成的文件是只包括h264编码的裸视频流文件
    # 并且没有限制文件大小,建议仅作为调试使用
    disp2 = hilens.Display(hilens.H264_FILE, hilens.get_workspace_path() + "video.h264")
    # hilens.get_workspace_path()返回技能工作区目录,详细介绍请参考资源管理模块

    # 构造一个本地摄像头视频采集器
    cap = hilens.VideoCapture()

    # 显示画面到HDMI显示设备
    disp0.show(cap.read())

    # 上传视频video.h264到obs
    # 先生成h264格式的视频文件
    disp2.show(cap.read())
    # 上传到obs
    hilens.upload_file_to_obs("video", hilens. get_workspace_path() + "video.h264", "write")
 
    # 把1234追加到obs的test4文件
    hilens.upload_buffer_to_obs("test4", "1234", "append")

    # 通过缓存区数据上传图片到obs
    # 转换成BGR
    frame = cap.read()
    img_bgr = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_NV21)
    # 把当前图片按照jpg格式进行编码
    img_encode = cv2.imencode(".jpg", img_bgr)[1]
    # 通过upload_bufer上传缓存区图片,图片格式与编码格式保持一致
    hilens.upload_bufer("img.jpg", img_encode, "write")

    # 播放音频文件
    hilens.play_aac_file("test.aac", 6)
    
if __name__ == '__main__':
    hilens.init("hello")
    run()
    hilens.terminate()