JavaCV与FFmpeg实现H265 RTSP转推H264 RTMP源代码

2023-03-14

JavaCV与FFmpeg实现H265 RTSP转推H264 RTMP源代码

项目简介

本项目是一个基于Spring Boot的Java应用程序,旨在实现从RTSP流中拉取H265视频流,并将其转换为H264格式后推送到RTMP服务器。项目支持两种推流方式:使用JavaCV推流和使用FFmpeg推流。此外,程序还支持获取流的访问人数,并可根据访问人数自动关闭无访问的推流,以节约系统资源。

项目特点

  1. 支持H265转H264:本程序能够将H265格式的RTSP流转换为H264格式,并推送到RTMP服务器。
  2. 多种推流方式:支持使用JavaCV和FFmpeg两种方式进行推流。JavaCV仅支持H264格式的流,而FFmpeg则支持H265和H264格式。
  3. 自动管理推流:程序能够获取流的访问人数,并根据访问人数自动关闭无访问的推流,以节省系统资源。
  4. 系统资源限制:在Linux系统上,程序支持在推流前对系统资源进行限制。
  5. 完整日志输出:项目提供完整的日志输出,便于查看和监控项目的运行状况。

环境要求

  1. 开发工具:本项目使用IDEA 2021进行开发。
  2. 中间件:项目依赖于Redis、Nginx、RTMP和FFmpeg。在运行程序前,请确保这些中间件已正确安装并在application.yml中进行配置。
  3. FFmpeg:FFmpeg需要下载Linux版本的程序,并将其路径添加至系统环境变量中,类似于配置Java环境。

使用说明

  1. 配置文件:在application.yml中配置Redis、Nginx、RTMP和FFmpeg的相关参数。
  2. 运行程序:确保所有依赖的中间件已启动,并按照配置文件中的设置进行配置。
  3. 推流方式选择:根据需求选择使用JavaCV或FFmpeg进行推流。
  4. 监控与管理:程序会自动监控流的访问人数,并根据访问人数自动管理推流。

注意事项

  1. 本程序仅供学习交流使用,请勿用于任何商业场景。
  2. 由于使用本程序造成的任何损失需自行承担。

贡献与反馈

欢迎大家提出问题和建议,共同完善本项目。

下载链接

JavaCV与FFmpeg实现H265RTSP转推H264RTMP源代码