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>
如果覺得博主寫得還不錯,歡迎“關注、點贊、收藏”一鍵三連!!!