spring boot 使用javaCV的FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存
实现图解:
一.引入maven jar包
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.4.3</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>4.0.2-1.4.3</version>
</dependency>
<!--项目在本地window用FFmpeg-windows-x86_64,项目在Linux用FFmpeg-linux-x86_64-->
<dependency>
<groupId>com.github.hoary.ffmpeg</groupId>
<artifactId>FFmpeg-windows-x86_64</artifactId>
<version>2.0.1.1</version>
</dependency>
<dependency>
<groupId>com.github.hoary.ffmpeg</groupId>
<artifactId>FFmpeg-linux-x86_64</artifactId>
<version>2.0.1.1</version>
</dependency>
二。java实现代码如下,可以跑,此处引用
https://blog.csdn.net/qq_38379843/article/details/89458532
/**
* @Author xmf
* @Description 直播流保存本地线程
* @Date 10:36 2020/3/12
* @Param
* @return
**/
public class RecordVideoThread implements Runnable {
private String stream_url = "rtmp://58.200.131.2:1935/livetv/hunantv";// 流地址 例如:rtmp://58.200.131.2:1935/livetv/hunantv 湖南卫视
private Long times_sec = 0L;// 停止录制时长 0为不限制时长
private String out_file_path;//输出路径
private String file_format = "mp4";//录制的文件格式
private boolean is_audio = false;//是否录制声音
@Override
public void run() {
// 获取视频源
FFmpegFrameGrabber grabber