OpenCV 視頻流格式----avi與mp4區別

OpenCV python code, GitHub項目,中路徑OpenCVDemo/OpenCvPythonDemo/VlogHelper/CreateVideo.py

// 我用的mac,發現用XVID不生效
out = cv2.VideoWriter('project.avi', cv2.VideoWriter_fourcc('M','J','P','G'), 1, size)

AVI MP4區別

AVI和MP4是 container(容器)格式:用來封裝 video codec(視頻 編碼器)、audio codec和其他文件

視頻質量

視頻質量和video codec file相關,和其container 格式(AVI、MP4)

  • avi 一般用 DivX codec:保持高視頻質量,壓縮視頻
  • mp4 基於MOV,採用有損壓縮MPEG4 AVC/H.264 codec

這就是爲什麼認爲avi比mp4質量好,但是avi也可以使用 MPEG-4 video 的codec

選哪個

  • avi 常用於Windows (Media Player有相應的解碼器)
    • 文件體積大
  • MP4 常用於手機、平板和網絡傳輸等(體積小)
    • 支持章節、字母
    • 文件體積小
#cv2.VideoWriter_fourcc('I', '4', '2', '0'),該參數是YUV編碼類型,文件名後綴爲.avi
#cv2.VideoWriter_fourcc('P', 'I', 'M', 'I'),該參數是MPEG-1編碼類型,文件名後綴爲.avi
#cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),該參數是M EG-4編碼類型,文件名後綴爲.avi
#cv2.VideoWriter_fourcc('T', 'H', 'E', 'O'),該參數是Ogg Vorbis,文件名後綴爲.ogv
#cv2.VideoWriter_fourcc('F', 'L', 'V', '1'),該參數是Flash視頻,文件名後綴爲.flv

不同平臺,自帶支持的codec是不同。

In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is more preferable. MJPG results in high size video. X264 gives very small size video)
In Windows: DIVX (More to be tested and added)
In OSX: MJPG (.mp4), DIVX (.avi), X264 (.mkv).

如下一致,都是指MJPG

cv.VideoWriter_fourcc('M','J','P','G')
cv.VideoWriter_fourcc(*'MJPG')
參考外文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章