JavaCV升級1.5.6之後遇到h265/hevc編碼的視訊無法開啟編解碼器avcodec_open2() error -1:Could not open video codec異常解決辦法
阿新 • • 發佈:2022-03-17
h265/hevc編碼的視訊無法開啟編解碼器問題
遇到問題:
升級或使用1.5.6版本的JavaCV後執行報avcodec_open2() error -1:Could not open video codec
錯誤。
原因:
這是因為1.5.6開始javacv不再預設包含gpl許可協議的編解碼庫,涉及到的庫包含:libx264、libx265等等。
關於gpl許可協議提示
商用軟體如果確認不開源,請謹慎考慮是否使用gpl許可的程式碼庫。
也就是說預設情況下h265編碼是無法是用的,h264、vp8、vp9、av1等編解碼則不受影響。
另提示:使用h264在預設情況下,ffmpeg會使用cisco(思科)的openh264編解碼庫,所以h264也不受影響,除非你要使用libx264,則必須在原有基礎上新增下述依賴項。
如何解決:
原本的javacv全量依賴:
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5.6</version>
</dependency>
在原有的基礎上再新增一個gpl依賴:
<!-- Optional GPL builds with (almost) everything enabled --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>ffmpeg-platform-gpl</artifactId> <version>4.4-1.5.6</version> </dependency>
opencv硬體加速
另外1.5.6版本新增了Opencv硬體加速cuda模組,如果影象處理識別和深度學習等需要使用gpu硬體加速,則新增下面的依賴:
<!-- Additional dependencies required to use CUDA and cuDNN --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>opencv-platform-gpu</artifactId> <version>4.5.3-1.5.6</version> </dependency>
如果覺得博主寫得還不錯,歡迎“關注、點贊、收藏”一鍵三連!!!