视频编解码格式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
"""
posted @ 2020-11-04 14:49  Parallax  阅读(1210)  评论(0编辑  收藏  举报