1. 程式人生 > 其它 >JavaCV升級1.5.6之後遇到h265/hevc編碼的視訊無法開啟編解碼器avcodec_open2() error -1:Could not open video codec異常解決辦法

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>

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