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)

相关推荐
白远山10 分钟前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
码兄科技16 分钟前
24小时自助健身房系统软件开发实战指南:功能设计与部署方案
java·spring boot·uni-app
程序猿_极客20 分钟前
【免费】分享一套优质的基于SpringBoot的扶贫助农管理系统(详解)
java·springboot·课程设计·计算机项目
2603_9651481136 分钟前
AI+API选品:下一代智能商务助手雏形已现
java·大数据·数据库·人工智能·数据挖掘
wuminyu36 分钟前
HotSpot的轻量锁与膨胀后的ObjectMonitor状态重建原理
java·linux·c语言·jvm·c++
CoderYanger44 分钟前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
北冥有鱼被烹1 小时前
perftest 之 ib_write_bw --use-null-mr 参数详解:用 NULL MR 做 RDMA 带宽测试
java
2601_963870211 小时前
基于SSM的特产代购系统
java·前端
牧瀬クリスだ1 小时前
YAML配置详解:SpringBoot实战指南
java·spring·yml