Java opencv拉取网络摄像头视频流推送到流媒体服务器
新建maven项目,添加如下maven依赖,注意添加lombok的版本号。
org.bytedeco
javacv-platform
1.5.1
org.projectlombok
lombok
代码实现如下。封装好的可以直接使用。下面有测试的main方法。我这里是使用的是nginx作为流媒体服务器,关于流媒体服务器搭建网上有很多的资料。具体的实现方案可以使用源码编译安装nginx ,添加nginx-http-flv-module模块。
@Slf4j
public class ConvertVideoPakcet {
private static final Map convertVideoPakcets = new HashMap<>();
private FFmpegFrameGrabber grabber = null;
private FFmpegFrameRecorder record = null;
private int width = -1, height = -1;
// 视频参数
private int audiocodecid;
private int codecid;
private double framerate;// 帧率
private int bitrate;// 比特率
// 音频参数
private int audioChannels;
private int audioBitrate;
private int sampleRate;
//控制程序循环
private Boolean flag = true;
private static ConvertVideoPakcet get(String deviceId){
return convertVideoPakcets.get(deviceId);
}
public static Boolean start(String deviceId,String formUrl,String toUrl){
if(null != get(deviceId)) return true;
final ConvertVideoPakcet convert