Opencv4 視頻讀寫之寫視頻出錯分析和解決方法

       對於Opencv來說視頻讀寫是經常使用的功能之一,如今Opencv已更新到第4版本,故將原有Opencv3更新到Opencv4版本。在視頻讀寫時,之前使用的視頻寫入操作的視頻類型參數fourcc爲:

CV_FOURCC('M','J','P','G')

如今將其改爲:

static_cast<int>(video.get(CAP_PROP_FOURCC))

其中video是讀入的視頻名稱。

        改過之後,寫入視頻在isOpened()總是返回false,經過查閱博客發現,出現這種問題的原因可能是原視頻格式有問題,故換一個視頻可以寫入,對比得到兩個視頻獲取到的fourcc不一樣。所以應該是原視頻格式有問題,使得獲取到的視頻類型有問題,即使用下面代碼獲取可能會出錯:

static_cast<int>(videoTmp.get(CAP_PROP_FOURCC))

但是,讀入的視頻video是可讀的沒有出錯。故再想像原來使用

CV_FOURCC('M','J','P','G')

一樣讓寫入的視頻不出錯,即寫入的視頻格式fourcc不能使用static_cast<int>(videoTmp.get(CAP_PROP_FOURCC))獲取。查閱相關文檔,最後使用的fourcc類型爲:

CAP_ANY

就不會出錯了。

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