• 视频编解码格式H264及MPEG


    视频流编解码

    0. 视频流 + 音频流(音频流编码格式acc,音频流和视频流是完全没有交集的东西) = 文件

    1. rgb像素图像(视频流) ---------视频流编码(如视频流编码采用Mpeg格式)--------->放到文件容器里(容器格式有.avi,.mp4等)

    2. 视频文件容器--------视频解码器(视频播放器)------>观看

    主流的视频编码格式有Mpeg系列及H26x系列(如acv1)

    最新的主流编码格式H264就是二者发展的融合格式,对应Mpeg的最新Part10系列.

    编码后的流是一块一块组织塞到文件容器里的,具体怎么塞决定了最终的文件容器格式,如avi mp4格式等

    import cv2
    path = "D:/pose.mp4"
    stream = cv2.VideoCapture(path)
    assert stream.isOpened(), 'Cannot capture source'
    fourcc=int(stream.get(cv2.CAP_PROP_FOURCC))# opencv得到视频流的编码格式(code格式),最重要的两种是H26x系列(H264)和mpeg格式
    #无论采用什么协议传输,在流的编码过程中已经完成了流的数据格式确定,在流的网络传输时是不能进行改变的,即常说的传输协议其实就是编码格式
    fps=stream.get(cv2.CAP_PROP_FPS)# 视频帧率
    frameSize=(int(stream.get(cv2.CAP_PROP_FRAME_WIDTH)),int(stream.get(cv2.CAP_PROP_FRAME_HEIGHT)))#每帧的w h
    datalen = int(stream.get(cv2.CAP_PROP_FRAME_COUNT))# 视频流的总帧数
    print(fourcc)
    print(chr(fourcc&0xFF) + chr((fourcc>>8)&0xFF) + chr((fourcc>>16)&0xFF) + chr((fourcc>>24)&0xFF))
    print(fps)
    print(frameSize)
    print(datalen)
    """
    828601953
    "avc1"
    30.0
    (1920, 1080)
    522
    """
    
  • 相关阅读:
    信息化与信息系统4
    信息化与信息系统3
    信息化与信息系统2
    信息化与信息系统1
    ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统
    C#几种单例模式
    SQL查询优化
    动态类型dynamic(ExpandoObject)
    PV(访问量)、UV(独立访客)、IP(独立IP)
    Spring Boot 2.配置
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13925918.html
Copyright © 2020-2023  润新知