最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決C++ openCV無法讀取視頻但是可以讀取圖像的問題記錄

 更新時間:2024年09月10日 11:18:11   作者:路人甲ing..  
在使用OpenCV的cv::VideoCapture讀取視頻文件時,可能會遇到無法讀取特定格式,如MP4的視頻文件的問題,本文介紹解決C++ openCV無法讀取視頻但是可以讀取圖像的問題記錄,感興趣的朋友跟隨小編一起看看吧

C++代碼中使用 cv::VideoCapture 讀取視頻文件時,視頻文件路徑正確,依然無法讀取視頻。
我的發(fā)現(xiàn)并解決過程(簡易版):

1. 確保圖片可以正常讀取

路徑正確!
有讀取權(quán)限!
讀取圖像可以成功!

2. 檢查 OpenCV 編譯配置

確保 OpenCV 支持 MP4 格式的視頻解碼。你可以檢查 OpenCV 編譯時是否啟用了 FFmpeg:
bash cv::getBuildInformation()
查看是否包含 FFmpeg,如果沒有,你可能需要重新編譯 OpenCV 支持 FFmpeg。

果然把上面的結(jié)果打印出來沒看到的FFmpeg相關(guān)的內(nèi)容,大概鎖定原因??赡苁菬o法讀取 MP4 文件的關(guān)鍵原因。在 OpenCV 中,MP4 文件的讀取通常依賴 FFmpeg 庫來進行解碼。

3. 解決方法1:重新編譯 OpenCV,啟用 FFmpeg

需要重新編譯 OpenCV,并確保包含 FFmpeg 支持。編譯步驟大致如下:

  • 下載 FFmpeg 源碼并進行編譯,生成靜態(tài)或動態(tài)庫。
  • 重新編譯 OpenCV 時,確保啟用了 FFmpeg 支持:
cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_TOOLCHAIN_FILE=<your_android_toolchain> \
      -D WITH_FFMPEG=ON \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D BUILD_opencv_videoio=ON \
      -D BUILD_opencv_highgui=ON \
      <other_flags> \
      ..

確保 WITH_FFMPEG=ON,并且 BUILD_opencv_videoio=ON。

或在 CMakeLists.txt 中,指定 FFmpeg 的路徑:

cmake -DWITH_FFMPEG=ON -DFFMPEG_DIR=/path/to/ffmpeg ..

4. 解決方法2:檢查其他視頻 I/O 支持(不推薦)

如果不想重新編譯 OpenCV,的確有點麻煩。如果在Android平臺運行,則可以使用 Android 的原生 API(如 MediaPlayerMediaCodec)來加載視頻,并將每一幀轉(zhuǎn)換為 OpenCV 可處理的格式(如 cv::Mat)。

5. 解決方法3:使用圖片序列替代視頻(不推薦)

如果不需要處理原始視頻,可以使用之前提到的圖片序列方案,將視頻轉(zhuǎn)換為幀圖片,再通過 OpenCV 逐幀讀取。

6. 解決方法4:使用特定格式的視頻文件(推薦!?。。?/h2>

OpenCV 可以處理不依賴 FFmpeg 的視頻格式,例如:

  • MJPEG (Motion JPEG):這是一個簡單的編碼格式,基本上就是一組 JPEG 圖片組成的視頻流。(推薦直接用這個,直接可以預(yù)覽,文件也小,方便遷移)
  • RAW 格式:如果你能將視頻轉(zhuǎn)碼為 AVI 的 RAW 格式(沒有壓縮),那么 OpenCV 通常能夠直接讀取。(這個賊大,好不一定可以直接預(yù)覽,略不方便)

可以通過系統(tǒng)指令或者python腳本直接進行視頻格式的轉(zhuǎn)換,這樣你的avi視頻就可以直接被opencv讀取了而且不依賴FFmpeg。

下面我直接給出了Python轉(zhuǎn)視頻格式的例子:

可以借助 ffmpeg-python 庫將 MP4 格式的視頻轉(zhuǎn)換為 MJPEG 或 RAW AVI 格式。ffmpeg-python 是 FFmpeg 的 Python 封裝,提供了簡單的接口來調(diào)用 FFmpeg。

首先,需要安裝 ffmpeg-python 庫:

pip install ffmpeg-python

然后,可以使用以下 Python 代碼將 MP4 視頻轉(zhuǎn)換為 MJPEG 和 RAW AVI 格式:

轉(zhuǎn)換為 MJPEG 格式

import ffmpeg
input_file = '/path/to/input.mp4'
output_file_mjpeg = '/path/to/output_mjpeg.avi'
ffmpeg.input(input_file).output(output_file_mjpeg, vcodec='mjpeg', qscale_v=2).run()

轉(zhuǎn)換為 RAW AVI 格式

import ffmpeg
input_file = '/path/to/input.mp4'
output_file_raw = '/path/to/output_raw.avi'
ffmpeg.input(input_file).output(output_file_raw, vcodec='rawvideo', pix_fmt='yuv420p').run()

到此這篇關(guān)于解決C++ openCV無法讀取視頻但是可以讀取圖像的文章就介紹到這了,更多相關(guān)C++ openCV無法讀取視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言進制轉(zhuǎn)換代碼分享

    C語言進制轉(zhuǎn)換代碼分享

    本文給大家分享的是使用C語言實現(xiàn)進制轉(zhuǎn)換的代碼,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-07-07
  • C語言異常處理機制案例講解

    C語言異常處理機制案例講解

    這篇文章主要介紹了C語言異常處理機制案例講解,本文講解了異常處理機制所用的函數(shù)和具體的代碼實現(xiàn)等,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 詳解C語言對字符串處理函數(shù)的實現(xiàn)方法

    詳解C語言對字符串處理函數(shù)的實現(xiàn)方法

    這篇文章主要為大家介紹了C語言對字符串處理函數(shù)的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C++11的for循環(huán)的新用法(推薦)

    C++11的for循環(huán)的新用法(推薦)

    C++11這次的更新帶來了令很多C++程序員期待已久的for range循環(huán),每次看到j(luò)avascript, lua里的for range,心想要是C++能有多好,心里別提多酸了。這次C++11不負眾望,再也不用羨慕別家人的for range了。下面看下C++11的for循環(huán)的新用法
    2021-11-11
  • Objective-C不帶加減號的方法實例

    Objective-C不帶加減號的方法實例

    顯而易見的事實是,Objective-C 中,+ 表示類方法,- 表示實例方法,這篇文章主要給大家介紹了關(guān)于Objective-C不帶加減號的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • c++利用stl set_difference對車輛進出區(qū)域進行判定

    c++利用stl set_difference對車輛進出區(qū)域進行判定

    這篇文章主要介紹了set_difference,用于求兩個集合的差集,結(jié)果集合中包含所有屬于第一個集合但不屬于第二個集合的元素,需要的朋友可以參考下
    2017-03-03
  • C語言棧與隊列面試題詳解

    C語言棧與隊列面試題詳解

    棧和隊列,嚴格意義上來說,也屬于線性表,因為它們也都用于存儲邏輯關(guān)系為 "一對一" 的數(shù)據(jù),但由于它們比較特殊,因此將其單獨作為一章,做重點講解
    2022-04-04
  • C++單例模式為何要實例化一個對象不全部使用static

    C++單例模式為何要實例化一個對象不全部使用static

    這篇文章主要介紹了C++單例模式為何要實例化一個對象不全部使用static,文基于C++圍繞主題展開詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • C語言實現(xiàn)繪制LoveBeat愛心曲線的示例代碼

    C語言實現(xiàn)繪制LoveBeat愛心曲線的示例代碼

    這篇文章主要為大家詳細介紹了如何溧陽C語言實現(xiàn)繪制LoveBeat愛心曲線,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-03-03
  • C語言數(shù)據(jù)結(jié)構(gòu)之動態(tài)分配實現(xiàn)串

    C語言數(shù)據(jù)結(jié)構(gòu)之動態(tài)分配實現(xiàn)串

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之動態(tài)分配實現(xiàn)串的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中動態(tài)分配實現(xiàn)串的實例,需要的朋友可以參考下
    2017-10-10

最新評論

丹东市| 鲁山县| 凤山市| 通江县| 靖安县| 红河县| 竹山县| 浦城县| 宁晋县| 博白县| 大足县| 财经| 府谷县| 博兴县| 宁阳县| 洛川县| 石阡县| 黎城县| 马尔康县| 延吉市| 车致| 永年县| 黄梅县| 赤水市| 渭南市| 大足县| 中阳县| 上饶市| 夏河县| 潍坊市| 连平县| 阳信县| 昌都县| 信宜市| 长沙县| 达拉特旗| 五台县| 灵台县| 垫江县| 兰坪| 江安县|