• 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>
    

    如果觉得博主写得还不错,欢迎“关注、点赞、收藏”一键三连!!!

  • 相关阅读:
    MessageFormat使用记录
    在IDEA中使用MyBatis Generator逆向工程生成代码
    mybatis报错invalid types () or values ()解决方法
    关于jrebel碰到的一次问题记录
    I/O限制异步操作
    线程基础和异步执行计算限制
    模板方法模式(Head first 设计模式——7)
    适配器模式和外观模式(head first设计模式——6)
    命令模式(head first 设计模式5)
    工厂模式——(Head first设计模式4)
  • 原文地址:https://www.cnblogs.com/eguid/p/16015449.html
Copyright © 2020-2023  润新知