javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片
javacpp-ffmpeg系列:
javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片
javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据
javacpp-FFmpeg系列之3: 图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转)
前言
本篇文章算是javacv系列的后续,javacv算是作者在ffmpeg基础上封装了一层,我们算是站在别人的肩膀上,尽管javacv还有很多不足的地方,这个暂且不谈。当然这次写的这篇算是回归底层实现了,用别人封装好的可能两三行就可以搞定的东西,这次偏偏想不开去参照了c++的实现,其中拉流部分参考了部分javacpp官方的demo(没有文档,等你来填233),解码和图片部分参考了c++的实现。
一、说明以及依赖
本篇文章主要是为了视频截图功能,本篇的代码可以复用到其他比如本地文件的截图,或者作为后台截图服务的实现库,也很稳定。
使用了javacpp1.4.1版本作为java调用c++的方式,ffmpeg使用了3.4.2版本
maven方式:
<properties>
<!-- javacpp当前版本 -->
<javacpp.version>1.4.1</javacpp.version>
<!-- ffmpeg版本 -->
<ffmpeg.version>3.4.2</ffmpeg.version></properties>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>${javacpp.version}</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>${javacpp.version}</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>${ffmpeg.version}-${javacpp.version}</version>
</dependency>
二、实现功能
1、ffmpeg拉流(视频源可以是文件和流媒体(rtsp/rtmp/hls/flv等等))
2、将视频帧解码为yuvj420p图像数据
3、将yuvj402p图像数据保存为jpg图片https://blog.csdn.net/eguid_1/article/details/81369055
完整阅读本章:https://blog.csdn.net/eguid_1/article/details/81369055
本文来自博客园,作者:eguid,没有作者允许禁止转载,取得作者同意后转载需注明作者名和原文链接:https://www.cnblogs.com/eguid/p/9667166.html