JavaCV之rtmp推流(FLV和M3U8)

本文介绍了如何使用JavaCV与FFmpeg进行RTMP推流,讲解了FLV和M3U8两种直播协议的特性。通过JavaCV的VideoInput和VideoOutput类,实现从视频源抓取帧并推送到Nginx搭建的rtmp服务器。同时,提供了Nginx配置RTMP模块的方法,以及FLV和HLS在实时性和支持性上的区别。
摘要由CSDN通过智能技术生成

JavaCV与FFmpeg

FFmpeg是一款开源的多媒体处理工具集,它包含了一系列用于处理音频、视频、字幕等多媒体数据的库和工具。

JavaCV集成了FFmpeg库,使得Java开发者可以使用FFmpeg的功能,比如视频解码、编码、格式转换等。 除了FFmpeg,Javacv封装了以下库:

  1. OpenCV: JavaCV封装了OpenCV(Open Source Computer Vision Library),这是一个广泛用于计算机视觉应用的开源库。
  2. FlyCapture: 用于 Point Grey 系列相机的库。
  3. ARToolKit: 一个增强现实(Augmented Reality)库,用于跟踪相机图像中的标记。
  4. JavaCpp: 这是JavaCV的底层库,用于在Java中调用C++代码,是整个JavaCV项目的基础。
  5. Libdc1394: 用于相机和摄像机的库。
  6. JavaCV Presets: 提供了一系列预设,将原生的C/C++函数封装为Java接口,简化了在Java中调用这些功能的过程。

准备

1、引入maven包

<dependency> 
<groupId>org.bytedeco</groupId> 
<artifactId>javacv-platform</artifactId> 
<version>1.5.6</version> 
</dependency>

2、类与方法说明

FFmpegFrameGrabber 和 FFmpegFrameRecorder 是 JavaCV 中用于处理视频的两个关键类,分别用于抓取视频帧和录制视频帧,底层使用了 FFmpeg 库。
我们可以使用 FFmpegFrameGrabber 打开视频文件,获取视频信息,然后不断地从视频中获取帧。
FFmpegFrameRecorder则从输入视频中抓取帧,进行解码后,将每一帧写入输出视频文件。
FFmpegFrameGrabber 与 FFmpegFrameGrabber 配合使用,可以实现从视频源中抓取帧并将帧写入视频文件的完整流程。

2、推流流程

3、Nginx搭建rtmp服务器

(1)下载带有rtmp模块的nginx(Gryphon) nginx-win.ecsds.eu/download/
(2)在nginx中的conf文件夹配置rtmp。nginx-win.conf增加如下代码:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值