JavaCV + FFmpeg 播放音视频

JavaCV + FFmpeg 播放音视频

FFmpeg documentation
bytedeco/javacv - GitHub
参考资料:
FFmpeg简易播放器的实现3-音频播放
雷霄骅(leixiaohua1020)的专栏 FFmpeg


1、导入JavaCV库

gradle下面这种会导入javacv-platform所有包,非常耗时:https://repo.maven.apache.org/maven2/org/bytedeco/

xml 复制代码
dependencies {
  implementation group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.9'
}

1.1 使用ffmpeg必要库



https://repo.maven.apache.org/maven2/org/bytedeco/

xml 复制代码
ext {
    javacvVersion = '1.5.9'
    ffmpegVersion = '6.0'
    windowsVersion = 'windows-x86_64'
}
dependencies {
    implementation "org.bytedeco:javacpp:${javacvVersion}"
    implementation "org.bytedeco:javacpp:${javacvVersion}:${windowsVersion}"
    implementation "org.bytedeco:javacv:${javacvVersion}"
    implementation "org.bytedeco:ffmpeg:${ffmpegVersion}-${javacvVersion}"
    implementation "org.bytedeco:ffmpeg:${ffmpegVersion}-${javacvVersion}:${windowsVersion}"
}

1.2 简单FFmpeg命令

  • ffmpeg -i input.avi -hide_banner
java 复制代码
String url = "C:\\Users\\Administrator\\Desktop\\input.avi";
// 解封装上下文
AVFormatContext pFormatCtx = new AVFormatContext(null);
if (null == pFormatCtx) {
    XLog.e("获取解封装上下文失败");
    return;
}

// 打开流媒体
if (avformat_open_input(pFormatCtx, url, null, null) != 0) {
    XLog.e("打开媒体失败");
    return;
}

// 读取流媒体数据,以获得流的信息
if (avformat_find_stream_info(pFormatCtx, (PointerPointer<Pointer>) null) < 0) {
    XLog.e("获得媒体流信息失败");
    return;
}

// 控制台打印流媒体信息
av_dump_format(pFormatCtx, 0, (BytePointer) null, 0);
  • ffplay "Let Me Down Slowly.mp3" -hide_banner 工具播放音乐

待续~~~~

在 java 中使用 ffmpeg 的四个阶段
Java版流媒体编解码和图像处理(JavaCPP+FFmpeg)

相关推荐
极光代码工作室15 分钟前
基于SpringBoot的流浪狗管理系统的设计与实现
java·spring boot·后端
毕设源码-朱学姐16 分钟前
【开题答辩全过程】以 基于JAVA的恒星酒店客房管理系统为例,包含答辩的问题和答案
java·开发语言
思密吗喽20 分钟前
景区行李寄存管理系统
java·开发语言·spring boot·毕业设计·课程设计
gladiator+1 小时前
Redis之BigKey的常见问题以及大厂相关面试题
java·数据库·redis
Controller-Inversion1 小时前
岛屿问题(dfs典型问题求解)
java·算法·深度优先
okseekw2 小时前
Java 字符串三巨头:String、StringBuilder、StringJoiner —— 初学者避坑指南 🤯
java
毕设源码余学姐2 小时前
计算机毕设 java 中医药药材分类采购网站 SSM 框架药材交易平台 Java 开发的分类采购与订单管理系统
java·开发语言·课程设计
BD_Marathon2 小时前
【JUC】并发与并行
java
okseekw2 小时前
Java String类详解:不可变性、创建方式与比较方法
java
q***64972 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot