視頻編解碼格式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
"""


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM