JavaCV升級1.5.6之後遇到h265/hevc編碼的視頻無法打開編解碼器avcodec_open2() error -1:Could not open video codec異常解決辦法

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>

如果覺得博主寫得還不錯,歡迎“關注、點贊、收藏”一鍵三連!!!

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