目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一.FFmpeg简介 对于FFmpeg,其官网上是这样介绍的: FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play prett…
原文:https://blog.csdn.net/sunmmer123/article/details/82734245 近期需要学习流媒体知识,做一个Android设备相互投屏Demo,因此找到了这个博主写的,看了很久也同该博主交流探索了许久,非常感谢该博主. 这位博主介绍了Android之间互相的录屏直播 --点对点传输(tcp长连接发送h264),详细介绍了h264的数据结构,对于刚学习流媒体的人来说是很好的福利,不多说附上地址: 来自:baidu_33546245的博客(1) Andro…
请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/55230272 Android实现录屏直播(一)ScreenRecorder的简单分析 Android实现录屏直播(二)需求才是硬道理之产品功能调研 看到有网友在后台私信和询问录屏这部分推流相关的问题,感觉这篇博客早该写完了.事实上除了繁忙的工作加上春节假期一下子拖了近一个月之久.近期更新了Demo,加入了视频帧推流,需要的朋友可以看…
先!下载几个工具呗 官方下载FFmpeg:http://www.ffmpeg.org 官方下载nginx-rtmp-module:https://github.com/arut/nginx-rtmp-module Nginx Gryphon下载:https://pan.baidu.com/s/18qULuaTYIzYGs1OPKa-g_w  提取码:35a1 1.在D盘创建D:\live目录,将FFmpeg.Nginx Gryphon解压到该目录下 2.配置环境 打开Win 11控制面板,系统>…
这两天的一个小需求,需要实现桌面实时直播,前面讲了两种方式: 1.Windows 11实现录屏直播,搭建Nginx的rtmp服务 的方式需要依赖与Flash插件,使用场景有限 2.Windows 11实现直播,VLC超简单实现捕获.串流.播放 的方式需要依赖于播放器,也可以通过转换协议实现需求 现在讲第三种,通过 FFmpeg 切片推流 HLS,并嵌入 H5 的web页面实现桌面直播 需要工具去头一篇博客取,别客气,当自己家一样 开始叭 1.写个 Nginx 的配置文件 在自己的nginx/co…
在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用领域.手游直播就是现在常见的一种新兴应用场景.手游直播与一般直播最大的不同点,同时也是它的技术难点,在于录屏技术.游戏玩家录屏功能,实时地把自己玩游戏的场景分享展示给其他观众.录屏给很多游戏制作平台和直播内容平台提供了一种新的产品思路. 录屏实现的四个步骤: 采集:获取屏幕采集的视频数据.麦克风采集的音频数据…
http://blog.csdn.net/zxccxzzxz/article/details/54150396 Android实现录屏直播(一)ScreenRecorder的简单分析 Android实现录屏直播(二)需求才是硬道理之产品功能调研 Android实现录屏直播(三)MediaProjection + VirtualDisplay + librtmp + MediaCodec实现视频编码并推流到rtmp服务器 应项目需求瞄准了Bilibili的录屏直播功能,基本就仿着做一个吧.研究后发…
请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/54254244 前面的Android实现录屏直播(一)ScreenRecorder的简单分析一文中我们对 ScreenRecorder 这个开源 Demo 中的实现机制大概有了了解,但在继续写这个系列文章的时候发现每一个细节都太紧密了,稍微不注意就会深入每个知识点的细节导致文章又臭又长还表述不清晰,于是我决定把这7天实现该功能的整个流…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Camstudio和KeyCastOW来录屏制作软件Demo视频.…
iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyright © 2016年 caoxu. All rights reserved. // #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<…
根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 * -y 输出新文件,是否覆盖现有文件 * -s 视频比例 4:3 320x240/640x480/800x600 16:9 1280x720 ,默认值 'wxh',和原视频大小相同 * -f 等同'-formats',定义的可支持的文件格式'ffmpeg-formats',更多参考:https:/…
首发:个人博客,持续更新和纠错 主要使用技术:1)FFmpeg,用于主流格式之间的转换,例如AVI,MP4,FLV等.2)MEncoder,用于奇葩格式转主流格式,例如RMVB转AVI.这样我们可以把奇葩格式先转AVI,再由FFmpeg把AVI转成想要的格式.3)java的执行命令行操作的技术,这样安装在服务器上的↑这两个转换器就可以被java调用了.包括ProcessBuilder和Runtime这两种调法.可以参考这篇. FFmpeg的官网在这里,其文档在这里.MEncoder的官网在这里,…
命令: 高品质: ffmpeg -i E:\input\a.wmv -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -qscale 4 -y E:\output\a.flv     低品质: ffmpeg -i E:\input\a.wmv -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -b 512 -y E:\output\low.flv     =================…
一.常用视频格式分辨率 640x480p 720p格式,分辨率为1280×720p / 60Hz,行频为45kHz 1080p格式,分辨率为1920×1080逐行扫描,专业格式 二.FFmpeg部分参数说明: //参数说明 /* * -i filename(input) 源文件目录 * -y 输出新文件,是否强制覆盖已有文件 * -c 指定编码器 * -fs limit_size(outinput) 设置文件大小的限制,以字节表示的.没有进一步的字节块被写入后,超过极限.输出文件的大小略大于所请…
前言 大家应该都知道几个很常见的例子,比如在张学友的演唱会,在安检通道检票时,通过人像识别系统成功识别捉了好多在逃人员,被称为逃犯克星:人行横道不遵守交通规则闯红灯的路人被人脸识别系统抓拍放在大屏上以示警告:参加某次活动通过人脸进行签到来统计实时人流量等等, 我现在也来做一个通过电视直播,追踪画面中所有人脸信息,并捕获我需要的目标人物. 具体思路及流程 基于虹软人脸识别,对直播画面中的每一帧图片进行检测,得到图片中所有人脸信息.可以添加目标人物的照片,用目标人物的人脸特征值与直播画面帧图片中人脸…
#!/bin/bash original=$1 echo $original # check whether file is exist # if $original de chang du wei 0 huo bu $original bu shi chang gui wenjian if [ -z $original ] || [ ! -f $original ]; then echo "file $original not exist!" exit fi # check whet…
在用ffmpeg转换视频到flv过程中,需要设置关键帧的间隔,以便在播放过程中实现精确定位.在网上查找了不少,最后发现这个指令有效: -g 1 -keyint_min 2 . http://blog.csdn.net/windflow/article/details/6228088 ’-g 0’ to disable motion estimation completely (you have only I-frames, which means it is about as good as J…
下载ffmpeg 从ffmpeg官网:http://ffmpeg.org/download.html 下载最新的ffmpeg安装包,然后通过如下命令解压: 解压 ffmpeg-*.tar.bz2 文件 进入解压的文件夹 wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2 tar jxf ffmpeg-4.2.2.tar.bz2 cd ffmpeg-4.2.2 下载安装yasm 地址:http://yasm.tortall.net/Downl…
IOS : 建议采用MP3格式, Android : 建议采用Vorbis格式, 因为这两种格式分别在这两个平台上有硬件解码的支持, 硬件解码比软件解码快.…
公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需要的格式,然后发送到rtmp中转服务器上. rtmpdump: 用于实现视频的录制,从rtmp的中转服务器接受到视频流,并把视频流保存成flv文件 nginx-rtmp-module: 用户rtmp中转服务,虽然他可以做很多功能,但是我这里只是使用了这一个 screen capture: windo…
接着前面记录的3种方式实现桌面推流直播: 1.Windows 11实现录屏直播,搭建Nginx的rtmp服务 的方式需要依赖与Flash插件,使用场景有限 2.Windows 11实现直播,VLC超简单实现捕获.串流.播放 的方式需要依赖于播放器,也可以通过转换协议实现需求 3.Windows11实现录屏直播,H5页面直播 HLS ,不依赖Flash 的方式,在远程桌面最小化时会断开连接.且打开远程桌面无法重连,上同 现在用OBS来实现捕获桌面或者指定窗口,并实现推流.支持Windows.Mac…
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devices true -f dshow -i dummy 命令执行后输出的结果如下(注:中文的设备会出现乱码的情况).列表显示设备的名称很重要,输入的时候都是使用"-f dshow -i video="{设备名}""的方式. 我自己的机器上列出了以下设备: [dshow @0…
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devices true -f dshow -i dummy 命令执行后输出的结果如下(注:中文的设备会出现乱码的情况).列表显示设备的名称很重要,输入的时候都是使用“-f dshow -i video="{设备名}"”的方式. 我自己的机器上列出了以下设备: [dshow @0388f5e0] D…
最近由于工程需要开始研发基于Windows的自动录屏软件,很多细节很多功能需要处理,毕竟一个完美的录屏软件不是你随随便便就可以写出来的.首先参考了大部分的录屏软件,在研发的过程中遇到了很多的问题:比如-视频加载.麦克风加载.麦克风音量调节.视频播放进度控.视频音量控制.等等很多细节部分都需要好好规划才能开始做.录屏采用的是视频帧的思维逻辑进行编写的. 目前已经基本上成型,基于WPF采用了Model - View框架进行动态加载,每个线程与线程之间采用Async异步执行,并使用线程等待:录屏基本功…
系统键盘在密码框输入时,如果用户开启录屏,键盘在录屏得到的视频里会不可见,但是用户在录屏时却能看到. 为了实现这个效果,利用UItextfield在录屏下视频不可见的特性,将实现这一效果的私有UIview,也就是_UITextLayoutCanvasView提取出来,作为背景,其他组件在这个背景上显示.objective c代码如下 -(UIView *)initWithFrame:(CGRect)frame{ UITextField * root=[[UITextField alloc] in…
需求:把两路视频合成一路,即一个画面同时显示两路视频,其中一路缩小成小视频叠在大视频上面,和电视机的画中画效果类似. 思路:用h264编码的视频举例,文件中存储的es流是h264,经过解码成yuv,yuv可以转换成rgb格式.把小视频的rgb复制到大视频需要被覆盖的位置上.将重新合成的rgb转换成yuv,利用ffmpeg 或 x264重新编码出新的视频即可. 方法:编解码还是利用ffmpeg . ffmpeg 解码两路视频,解码后都是yuv.利用ffmpeg· 的sws_getContext 函…
这个功能的基本工作是这样的: 1.使用node运行jsmpeg库下的websocket-relay.js文件,这个文件的作用是创建一个websocket视频传输中继器 2.运行ffmpeg,将输出发送到中继的HTTP端口,这个http端口是使用node.js搭建的一个简易的http服务器 3.将浏览器中的JSMpeg连接到中继的Websocket端口,浏览器中的JSMpeg是node.js环境搭建的时候输出的一个html文件,文件里面引用了JSMpeg库,             并实例化一个新…
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式的,所以通过FFmpeg解码出来的数据不能直接发送到SDL进行播放,需要进行一个格式转换.通过网上一些资料,也能够正确的播放音频了,但是对具体的音频转换过程不是很了解,这里就对FFmpeg的对音频的存储格式及格式转换做个总结.本文主要有以下几个方面的内容: AVSampleFormat 音频samp…
视频格式转换的函数 //视频转换 public void VideoConvertFlv(string FromName, string ExportName) { string ffmpeg = HttpContext.Current.Server.MapPath("~/UploadFiles/FLV/ffmpeg.exe"); FromName = HttpContext.Current.Server.MapPath(FromName); ExportName = HttpCont…
了解过ffmpeg的人都知道,利用ffmpeg命令即可实现将电脑中摄像头的画面发布出去,例如发布为UDP,RTP,RTMP等,甚至可以发布为HLS,将m3u8文件和视频ts片段保存至Web服务器,普通的播放器就可以直接播放他们. 的确,但是,但是作为一个技术爱好者,相信大家都是对里面的机制与原理是感兴趣的,我们希望通过我们写代码来实现它.另外,ffmpeg命令发布出来的摄像头画面我们似乎要加一些水印.显示一些自定义的文字,可能就不是那么灵活了.举个例子来说,我们想画面中主要画面是电脑桌面,左上角…