JavaCV与FFmpeg实现H265 RTSP转推H264 RTMP源代码
项目简介
本项目是一个基于Spring Boot的Java应用程序,旨在实现从RTSP流中拉取H265视频流,并将其转换为H264格式后推送到RTMP服务器。项目支持两种推流方式:使用JavaCV推流和使用FFmpeg推流。此外,程序还支持获取流的访问人数,并可根据访问人数自动关闭无访问的推流,以节约系统资源。
项目特点
- 支持H265转H264:本程序能够将H265格式的RTSP流转换为H264格式,并推送到RTMP服务器。
- 多种推流方式:支持使用JavaCV和FFmpeg两种方式进行推流。JavaCV仅支持H264格式的流,而FFmpeg则支持H265和H264格式。
- 自动管理推流:程序能够获取流的访问人数,并根据访问人数自动关闭无访问的推流,以节省系统资源。
- 系统资源限制:在Linux系统上,程序支持在推流前对系统资源进行限制。
- 完整日志输出:项目提供完整的日志输出,便于查看和监控项目的运行状况。
环境要求
- 开发工具:本项目使用IDEA 2021进行开发。
- 中间件:项目依赖于Redis、Nginx、RTMP和FFmpeg。在运行程序前,请确保这些中间件已正确安装并在
application.yml
中进行配置。 - FFmpeg:FFmpeg需要下载Linux版本的程序,并将其路径添加至系统环境变量中,类似于配置Java环境。
使用说明
- 配置文件:在
application.yml
中配置Redis、Nginx、RTMP和FFmpeg的相关参数。 - 运行程序:确保所有依赖的中间件已启动,并按照配置文件中的设置进行配置。
- 推流方式选择:根据需求选择使用JavaCV或FFmpeg进行推流。
- 监控与管理:程序会自动监控流的访问人数,并根据访问人数自动管理推流。
注意事项
- 本程序仅供学习交流使用,请勿用于任何商业场景。
- 由于使用本程序造成的任何损失需自行承担。
贡献与反馈
欢迎大家提出问题和建议,共同完善本项目。