王柳 发表于 2024-6-27 07:53:50

javacv ffmpeg利用笔记 (补充中...)

一、maven依靠

   利用javacv ffmpeg并指定classifier之后,就不必要额外安装ffmpeg软件(jar包中已经内置)了。


[*]全量依靠包(不推荐)安装包总巨细高出1G
      <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>${javacv.version}</version>
      </dependency>


[*]最小化安装
   可利用mvn enforcer:display-info 检察当前操作系统信息
https://img-blog.csdnimg.cn/direct/659c0e9176d24da686a3fdd726b57817.png
<javacv.version>1.5.9</javacv.version>

    <dependencies>
      <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv</artifactId>
            <version>${javacv.version}</version>
      </dependency>
      <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>ffmpeg</artifactId>
            <version>6.0-${javacv.version}</version>
            <classifier>linux-x86_64</classifier>
      </dependency>
    </dependencies>

    <profiles>
      <profile>
            <id>Windows</id>
            <activation>
                <os>
                  <!-- mvn enforcer:display-info -->
                  <family>windows</family>
                </os>
            </activation>
            <dependencies>
                <dependency>
                  <groupId>org.bytedeco</groupId>
                  <artifactId>ffmpeg</artifactId>
                  <version>6.0-${javacv.version}</version>
                  <classifier>windows-x86_64</classifier>
                </dependency>
            </dependencies>
      </profile>
      <profile>
         <id>Mac</id>
         <activation>
               <os>
                   <!-- mvn enforcer:display-info -->
                   <family>mac</family>
               </os>
         </activation>
         <dependencies>
               <dependency>
                   <groupId>org.bytedeco</groupId>
                   <artifactId>ffmpeg</artifactId>
                   <version>6.0-${javacv.version}</version>
                   <classifier>macosx-x86_64</classifier>
               </dependency>
         </dependencies>
       </profile>
    </profiles>
https://img-blog.csdnimg.cn/direct/e04f259db0374b5cb4b29f2290aa89f5.png
二、示例代码

1. 获取视频时长

    public static void videoDuration(String videoFilePath) {
      try (FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(videoFilePath)) {
            frameGrabber.start();
            int duration = frameGrabber.getLengthInVideoFrames()/ (int) frameGrabber.getFrameRate();
            System.out.println(duration);
            frameGrabber.stop();
      } catch (FrameGrabber.Exception e) {
            e.printStackTrace();
      }
    }
三、小本领



[*]日记级别

    static {
      avutil.av_log_set_level(avutil.AV_LOG_DEBUG);
      FFmpegLogCallback.set();
    }

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: javacv ffmpeg利用笔记 (补充中...)