当前位置: 首页 > news >正文

ffmpeg下载和实战获取音视频时长

目录

一、介绍和下载

(1)介绍

(2)下载

二、实战演示

(1)通过ffmpeg获取音视频的时长

1. 命令行方式:

2. java代码实现:


一、介绍和下载

(1)介绍

FFmpeg 是一个​​跨平台的开源音视频处理解决方案​​,它包含了庞大的库集合和命令行工具,用于处理多媒体内容(音频、视频、字幕等)。

(2)下载

Download FFmpeghttps://ffmpeg.org/download.html

二、实战演示

(1)通过ffmpeg获取音视频的时长

1. 命令行方式:

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 D:\\Desktop\\测试音频\\119.mp3

  • -v error:只显示错误信息,避免多余输出。
  • -show_entries format=duration:仅显示时长信息。
  • -of default=noprint_wrappers=1:nokey=1:简化输出格式,只返回数值(单位:秒)。

2. java代码实现:

package com.grmdcxy;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class FFmpegDuration {public static void main(String[] args) {String mediaPath = "D:\\Desktop\\教程视频\\框架讲解\\旋转骰子效果.mp4";double duration = getMediaDuration(mediaPath);System.out.println("音视频时长(秒): " + duration);System.out.println("音视频时长(HH:MM:SS): " + secondsToTime(duration));}/*** 调用 ffprobe 获取音视频时长(秒)*/public static double getMediaDuration(String filePath) {try {// 构建 ffprobe 命令String[] cmd = {"ffprobe","-v", "error","-show_entries", "format=duration","-of", "default=noprint_wrappers=1:nokey=1",filePath};// 执行命令并读取输出Process process = Runtime.getRuntime().exec(cmd);BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line = reader.readLine();if (line != null) {return Double.parseDouble(line);}} catch (IOException | NumberFormatException e) {e.printStackTrace();}return 0;}/*** 将秒数转换为 HH:MM:SS 格式*/public static String secondsToTime(double seconds) {int hours = (int) (seconds / 3600);int minutes = (int) ((seconds % 3600) / 60);int secs = (int) (seconds % 60);return String.format("%02d:%02d:%02d", hours, minutes, secs);}
}

http://www.dtcms.com/a/503018.html

相关文章:

  • 如何高效批量修改多格式文本文件?
  • 移动测试利器Appium全方位解析:从原理、实战到应用场景
  • 018数据结构之队列——算法备赛
  • 开源 Linux 服务器与中间件(四)服务器--Tomcat
  • Auto CAD二次开发——测试功能
  • 《Linux进阶指令实操指南》:文件查看、时间管理、搜索压缩全覆盖(附高频案例)
  • Socket编程学习记录
  • AI“缝合怪”变“神作”,游戏宣传图工作流
  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践
  • PHPMailer下载和使用教程(非常详细)
  • 傻瓜式免费自助建站系统wordpress下拉
  • 【LeetCode热题100(47/100)】路径总和 III
  • bpmn-js 中如何完整导出 PNG(含自定义 Overlay)
  • 【图像处理】Gamma矫正
  • 【AI论文】MM-HELIX:借助整体式平台与自适应混合策略优化,提升多模态长链反思推理能力
  • Go 入门学习
  • IPoIB驱动中RSS/TSS技术深度解析与性能优化实践
  • Redis最佳实践
  • 鸿蒙NEXT Wear Engine开发实战:手机侧应用如何调用穿戴设备能力
  • github 个人静态网页搭建(一)部署
  • 【Go】C++ 转 Go 第(三)天:defer、slice(动态数组) 与 map
  • 【大模型微调】LLaMA Factory 微调 LLMs VLMs
  • 服务器管理:构建与维护高效服务器环境的指南
  • wordpress 网站生成app中山免费建站
  • 使用搭载Ubuntu的树莓派开启热点
  • 存算一体架构的先行者:RustFS在异构计算环境下的探索与实践
  • asp access网站建设源代码网站的开发流程可以分为哪三个阶段
  • SAUP论文提到的S2S Backbone Models是什么
  • 实战量化Facebook OPT模型
  • C 标准库函数 | strcmp, strlen