通过ffmpeg进行录屏直播
本来我是打算通过ffmpeg进行图片和成视频的,但是不知道什么原因编码出来后,都会只剩三秒,后来发现,可以直接通过ffmpeg进行录屏。
首先就是先下载ffmpeg。这里我将dll文件和exe文件放到了同一个目录下,避免一些麻烦。
然后就是录屏命令了,很多博客上都需要各种插件才可以,但我发现了一个命令,可以直接调用:
ffmpeg -f gdigrab -i desktop out.mpg
这样就可以直接在当前目录下输出out.mpg的录像文件,当然也可以指定其他格式
如何进行推流呢?
ffmpeg -f gdigrab -i desktop -f flv rtmp://127.0.0.1:8082/接口
就将流推送到rtmp服务器中了,本人在自己的电脑中搭建了一个nginx作为推流地址。
如果在java中调用的话,我本人是通过生成cmd命令进行调用的。
粘一段小代码,是我的一个测试类
package top.whbweb.screen.testCMD;import org.junit.Test;
import top.whbweb.screen.recording.util.UUID;import java.io.*;
import java.net.URL;public class TestCMD {public static void main(String[] args) throws IOException {TestCMD testCMD = new TestCMD();StringBuilder cmd=new StringBuilder();cmd.append(testCMD.getffmpegPath()+"ffplay -f gdigrab -i desktop ");//.append("-f flv ");testCMD.exce(cmd.toString());}public void imgToVideo() throws IOException {TestCMD testCMD = new TestCMD();testCMD.play();String path = testCMD.getffmpegPath();/*-f image2 */String cmd = path + "ffmpeg -loop 1 -f image2 -i D:/20180115153033300333833460416205/%04d.jpg "+ "-vcodec libx264 -r 5 -t 30 D:/capture/" + UUID.getUUID() + ".mp4";testCMD.exce(cmd.toString());}public void play() throws IOException {TestCMD testCMD = new TestCMD();String path = testCMD.getffmpegPath();StringBuilder playVideo=new StringBuilder();playVideo.append(path).append("ffplay.exe ");playVideo.append("D:\\date\\file\\testData\\26.mp4");testCMD.exce("calc");}public void exce(final String cmd) throws IOException {Runtime.getRuntime().exec("cmd /c " + cmd);}private String getffmpegPath() {String path = TestCMD.class.getClassLoader().getResource("top/whbweb/screen/").getPath().substring(1);return path + "ffmpeg/windows/";}
}
通过ffmpeg进行录屏直播相关推荐
- iOS rtmp 摄像头/录屏直播以及观看
之前讲过如何在centos上使用nginx搭建rtmp服务器(链接),本文介绍一下iOS 端如何通过rtmp录屏直播以及观看,完整的工程代码地址(https://github.com/zxm006/R ...
- c语言安卓录屏,手写 Android 录屏直播
简介 观看手游直播时,我们观众端看到的是选手的屏幕上的内容,这是如何实现的呢?这篇博客将手写一个录屏直播 Demo,实现类似手游直播的效果 获取屏幕数据很简单,Android 系统有提供对应的服务,难 ...
- Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)
代码地址 :https://github.com/deepsadness/MediaProjectionDemo 想法来源 上一边文章的最后说使用录制的Api进行录屏直播.本来这边文章是预计在5月份完 ...
- android实现录像功能吗,Android实现录屏直播(一)ScreenRecorder的简单分析
应项目需求瞄准了Bilibili的录屏直播功能,基本就仿着做一个吧.研究后发现Bilibili是使用的MediaProjection 与 VirtualDisplay结合实现的,需要 Android ...
- iOS录屏直播(二)Broadcast Upload Extension和Broadcast Setup UI Extension
Morris_2019.06.13 上一篇总结了ReplayKit相关的知识点,实现了应用内的录屏功能,同时涉及到了很少一部分Broadcast Upload Extension和Broadcast ...
- iOS录屏直播(一)初识ReplayKit
Morris_2019.05.08 本篇主要功能: 认识ReplayKit框架 RPScreenRecorder实现在应用内录屏功能 RPPreviewViewController查看录屏内容 RPB ...
- Android之间互相的录屏直播 --点对点传输(tcp长连接发送h264)(一)
前言 转载请注明出处 ,来自: 暂时两篇: (1) Android之间互相的录屏直播 –点对点传输(tcp长连接发送h264)(一) http://blog.csdn.net/baidu_335462 ...
- 直播源码:游戏录屏直播的基本实现方式
移动端设备性能的提升,和手机直播行业的发展,催生了一大批直播细分行业,今天我们总结的是基于直播源码的手游录屏直播技术的基本实现方式. 大致的流程是手机申请录屏权限,手机录屏,开启手机实时将数据推向网络 ...
- iOS录屏直播(四)主App和宿主App数据共享,通信功能实现
文章目录 CFNotificationCenterGetDarwinNotifyCenter 发送通知 接收通知 注意事项 遗留问题 补充 Morris_ 2019.06.17 上一篇总结了一下App ...
最新文章
- C#程序设计语言Version2.0简介
- NetBeans 时事通讯(刊号 # 20 - Aug 11, 2008)
- 数据库多对多关系示例 - 使用sqlite演示
- 主机大师linux,113资讯网(www.113p.cn)评测:护卫神·主机大师 (Linux版)
- 分享一些书籍,方方面面,很多值得一读
- JaveWeb学习之Servlet(二):ServletConfig和ServletContext
- tar.gz 文件类型(tar文件的解压和压缩)
- error while loading shared libraries: libatomic.so.1
- AM2320 温湿度计 单总线读取数据
- linux 切换root账号_Linux 服务器的安全保障,看看这些
- SpringBoot2.0都更新了那些内容
- linux下追查线上问题常用命令
- 微信小程序开发:学习笔记[9]——本地数据缓存
- 假如中了1800万彩票,怎么做保持利益最大化
- 重学C---------第三节:求两个整数中的大者
- self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块
- Facebook广告收费出价方式之cpi
- Linux - send 出现 Resource temporarily unavailable
- 二次开发----在帆软报表设计器上添加自己的按钮
- Facebook想要成为下一个微信,难! 1
热门文章
- 如何搭建网站镜像服务器,网站服务器镜像搭建
- 使用基于MI的脑机接口在Google Street View中进行实时导航
- Python | 论做游戏外挂,Python输过谁?
- php opp三个特点,PP和OPP的特点与区别
- mix2s android p功能,小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址
- 身份证的正确使用方法——很重要的知识(转贴)
- 阐述矩阵初等变换方法在线性代数中的应用
- 「构建企业级推荐系统系列」实时个性化推荐介绍
- hidden layer隐藏层的自我理解
- Extreme Drift赛车游戏C#源码详解(1)