java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
来源:互联网 发布:东莞理工 学而知不足 编辑:程序博客网 时间:2024/05/21 08:49
前言:
之前已经对FFmpeg命令进行了封装http://blog.csdn.net/eguid_1/article/details/51787646,但是当时没有考虑到扩展性,所以总体设计不是太好,需要改动的地方也比较多,也不支持原生ffmpeg命令,所以本次版本推翻了前面的版本重新设计接口和实现,全面支持各个流程注入自己的实现,并且在原有命令组装基础上增加一个接口用来支持全部原生FFmpeg命令。
概述:
提供一个管理器用于方便管理FFmpeg命令的执行、停止和执行信息持久化。
可以方便的使用ffmpeg来进行推流,拉流,转流等任务
实现的功能:
①开启一个进程+一个输出线程来执行原生ffmpeg命令②开启一个进程+一个输出线程来执行组装命令③查询执行任务信息④查询全部正在执行的任务⑤停止进程和输出线程⑥停止全部正在执行的任务
源码包下载:http://download.csdn.net/detail/eguid_1/9668143
github项目地址:https://github.com/eguid/FFmpegCommandHandler4java
1、接口设计
1.1、发布任务接口
通过原生ffmpeg命令发布处理任务
通过map组装成ffmpeg命令来处理任务
1.2、终止任务接口
结束任务
结束全部任务
1.3、任务查询接口
查询
查询全部
1.4、接口实现注入
执行处理器注入
命令组装器注入
持久化实现注入
2、内部实现
2.1、任务处理器
开启一个进程用于执行ffmpeg命令
开启一个子线程用于输出ffmpeg执行过程
停止进程
停止输出线程(需要在进程关闭前停止输出线程)
按照正确顺序停止进程和线程2.2、输出线程处理器
用于输出ffmpeg执行过程
2.3、持久化服务
增加任务信息
删除任务信息
删除全部任务信息
查询任务信息
查询全部任务信息
任务是否存在
2.3命令组装器
用于将参数组装成对应的ffmpeg命令
2.4、配置文件读取器
读取配置文件中的ffmpeg路径配置
读取默认位置的ffmpeg执行文件
- 本文已收录于以下专栏:
- 实时流媒体技术
阅读全文
0 0
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- ffmpeg推流RTMP命令
- ffmpeg实战教程(九)windows下ffmpeg命令+nginx + rtmp实现推流,拉流。
- 用ffmpeg命令实现rtsp转rtmp
- ffmpeg处理rtmp/文件/rtsp的推流和拉流
- ffmpeg推流命令
- 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现
- FFmpeg常用推流命令
- FFmpeg常用推流命令
- FFmpeg常用推流命令
- FFmpeg命令推流地址
- FFMpeg处理RTMP流
- nginx+rtmp+ffmpeg推流
- FFMPEG 截取RTMP直播流图片命令
- ffmpeg 推送、保存rtmp 流命令
- ffmpeg rtmp直播命令
- window下安装flume
- 一步一图一代码,一定要让你真正彻底明白红黑树
- GDAL 坐标系相关文件
- 股票数据抓取接口文章转载
- oracle 修改序列当前值
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- git 用远程覆盖本地
- 一文搞懂HMM(隐马尔可夫模型)
- 数据库的存储过程以及函数的区别
- 好用好看的Linux系统
- 活到老,学到老
- Flume Sink Processor
- MySql笔记
- Html之Frame的onreadystatechange 事件-yellowcong