python OpenCV VideoWriter 視頻格式及大小


問題:1、VideoWriter不能寫MP4或是其他格式視頻;

           2、VideoWriter寫入保存的視頻大小為0kb;

           3、VideoCapture讀取打開不了MP4格式的視頻。

解決:將OpenCV中的opencv_ffmpeg330_64.dll(在OpenCV\build\bin文件夾下,注意這是我的opencv版本)文件拷貝到Python的Lib\site-packages文件夾下(與cv2.pyd文件放在一起解碼用)。

編碼格式(('M', 'P', '4', '2') 視頻大小最小):

cv2.VideoWriter_fourcc('M','J','P','G') = motion-jpeg codec

cv2.VideoWriter_fourcc('P','I','M','1') = MPEG-1 codec
cv2.VideoWriter_fourcc('M', 'P', '4', '2') = MPEG-4.2 codec
cv2.VideoWriter_fourcc('D', 'I', 'V', '3') = MPEG-4.3 codec
cv2.VideoWriter_fourcc('D', 'I', 'V', 'X') = MPEG-4 codec
cv2.VideoWriter_fourcc('U', '2', '6', '3') = H263 codec
cv2.VideoWriter_fourcc('I', '2', '6', '3') = H263I codec
cv2.VideoWriter_fourcc('F', 'L', 'V', '1') = FLV1 codec

 

通過攝像頭錄制了長約5分鍾的視頻,在D盤下生成的文件如下:


生成文件占用空間最小的編碼方式是 MPEG-4.2 codec,約為19MB。用紅線段標識,對應在VideoWriter類的構造函數參數為CV_FOURCC('M', 'P', '4', '2') 。

最大的是MPEG-1 codec,用藍線段標識,約為111MB。對應在VideoWriter類的構造函數參數為CV_FOURCC('P','I','M','1') ,所占磁盤空間是前者的5.7倍。所以如果需要24小時全天候錄制監控,基於磁盤空間的考慮,可以優先使用MPEG-4.2的編解碼方式。
 

 


參考:

https://blog.csdn.net/dcrmg/article/details/52215930

https://blog.csdn.net/u013913216/article/details/82144395


免責聲明!

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



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