http://bbs.ngacn.cc/read.php?tid=7079971&rand=665

我是斗鱼14247病床的UP,现在为大家介绍使用FFmpeg直接录屏并直播的方法。
附件请从这里下载:[http://pan.baidu.com/s/1kTyroRP] 
1.2版附件请从这里下载:[http://pan.baidu.com/s/1jGgd79O]

首先介绍一下我的系统环境:
System: Distro: Linux Mint 13 Maya
Desktop: MATE
Mainboard: MSI Z77IA-E51 (MS-7733)
CPU: Quad-Core Intel Core i7-3770T CPU (OC @ 4.10 GHz)
Memory: Type: Dual Channel DDR3-1866 CL10
Size: 16384 MB
Graphics: Card: NVIDIA GK106 [GeForce GTX 650 Ti]
Monitor: DELL E1913
Resolution: 1440x900@75Hz 
Network: Card-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Card-3: Intel Centrino Wireless-N 2230
SSD: KINGSTON SV300S37A120G
Capacity: 120 GB
HDD: ST2000VM003-1CT164
Capacity: 2.0 TB

使用的FFmpeg是ppa:jon-severinsson/ffmpeg上的0.10版本。Ubuntu/Debian官方源里的FFmpeg目前是Libav的过渡包,不建议使用。
附件中包括了自己编写的录屏的bash脚本以及斗鱼弹幕助手的Linux启动器(需要自行安装JRE),以及一些资源文件(例如金坷垃 精神污染 水印图片),不能直接使用,尤其是Windows用户。

settings.txt是用来配置斗鱼推流地址的。broadcast_lq.sh和broadcast_hq.sh分别是低/高码率的直播和录像。注意楼主使用的是MATE桌面环境,所以请自行修改使用的虚拟tty终端程序。
lib/lq.sh和lib/hq.sh是真正负责录像的脚本。录像和推流的参数在里面。

下面以更加常用的低码率为例介绍ffmpeg的参数。参数是简化了的,只能录像不能推流。
Windows用户请先阅读[http://trac.ffmpeg.org/wiki/How%20to%20grab%20the%20desktop%20(screen)%20with%20FFmpeg]。安装合适的DirectShow设备,修改Linux依赖的对应行(主要是第二行和第三行)就可以了。
ffmpeg -y -loglevel info \ # 忽略文件覆盖提示,日志输出级别为“信息”。
-f x11grab -framerate 25 -r 25 -s 1440x810 -i :0.0+0,45 -vsync vfr \ # 视频捕捉设备是x11grab(注释0),捕捉速率25帧每秒,视频帧率25帧每秒,视频原始分辨率1440x810,裁剪掉上面和下面各45像素高度区域,视频同步方式为时间码。
-f alsa -ar 44100 -ac 2 -cutoff 12000 -i pulse -async 20 \ # 音频捕捉设备是alsa(注释0),频率是44100Hz,立体声,低通滤波为12000Hz,使用pulseaudio方法,音频同步采样为20块每秒。
-vf "scale=1280:720[scaled]; movie=watermark.png[watermark]; [scaled][watermark] overlay=0:0" \ # 缩放视频尺寸为720p,添加全屏水印(水印本身是透明涂层)。
-vcodec libx264 -r 25 -pix_fmt yuv420p -preset medium -profile:v high \ # 视频编码器是libx264(即H.264输出),输出帧率25帧每秒,色彩编码是yuv420p,编码器预设为平衡速度和质量(注释1),编码器复杂度等级为高(注释2)。
-level 5.1 -crf 28 -maxrate 1500k -bufsize 1500k -refs 4 -qmin 4 \ # 视频编码器码率等级为5.1(最高)(注释3),恒定质量级别为28(注释4),最大码率为1500Kbps(斗鱼推荐值),并设置等大的编码缓冲区,调节Mac OS X系统解码器兼容性参数。
-x264opts bluray_compat=1:open_gop=1 -vsync cfr \ # 启用蓝光兼容(改善与硬件解码的兼容性),启用开放式帧组(大幅降低静态画面的码率),视频同步方式为掉帧/插帧。
-acodec libmp3lame -ar 44100 -aq 6 -compression_level 0 -async 20 \ # 音频编码器是libmp3lame(即MP3输出),频率44100Hz,变码率质量等级为6(注释5),听觉心理学模型全部启用(注释6),音频同步采样为20块每秒。
-f flv -movflags +faststart "record.flv" # 封装格式为FLV(注释7),并启用浏览器快速载入,文件名为record.flv(含路径)。

注释:
0:Windows用户请先阅读[http://trac.ffmpeg.org/wiki/How%20to%20grab%20the%20desktop%20(screen)%20with%20FFmpeg]。
1:电脑配置差一点/不少的话请设置preset为fast,veryfast。这会加大视频码率。
2:如果想让非常旧的iPhone 4S也能看视频,请设置profile:v为main。
3:如果想让非常旧的iPhone 4S也能看视频,请设置level为4.0。
4:像23-28之间的crf值都比较合理(越低质量越好),直播的话还是要考虑一下观看直播的长城宽带用户的感受。
5:像2-6这样的aq值都比较合理(越低质量越好)。如果设置aq为2-4范围的话可以把第三行的低通滤波参数修改为16000Hz。
6:电脑配置差很多的话compression_level改为3。这样做对质量影响不大,能提高不少编码速度。
7:若使用MP4封装,则最后一行为-f mp4 "record.mp4"。MP4不支持浏览器快速载入。

http://bbs.ngacn.cc/read.php?&tid=7079971

一种用FFmpeg直接录屏并直播的方法相关推荐

  1. 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

    一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一.FFm ...

  2. 前端使用html5、ffmpeg实现录屏摄像等功能

    前段时间做一个windows的桌面应用,vue + electron,涉及到录屏和摄像功能,网上相关的文档蛮少的给需要的人一些参考 如果文章描写有误或者还有更好的方法,请留言告诉我,笔芯 (´▽`ʃ♡ ...

  3. html5桌面录制,前端使用html5、ffmpeg实现录屏摄像等功能

    前段时间做一个windows的桌面应用,vue + electron,涉及到录屏和摄像功能,网上相关的文档蛮少的给需要的人一些参考 如果文章描写有误或者还有更好的方法,请留言告诉我,笔芯 (´▽`ʃ♡ ...

  4. ffmpeg录屏鼠标闪烁问题解决方法

    场景: 平台:win7 x64.显卡很差的电脑,使用ffmpeg录屏,鼠标闪烁的几乎看不到.录屏实现方法是使用ffmpeg,源采用的是gdigrab. 解决方法: 安装screen capture r ...

  5. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制 2014年 四月 19日 周六 | tags: ffmpeg, rtmp, rtmpdump, nginx, -- (perm ...

  6. QT软件开发-基于FFMPEG设计录屏与rtsp、rtmp推流软件(支持桌面与摄像头)(一)

    QT软件开发-基于FFMPEG设计录屏与rtsp.rtmp推流软件(支持桌面与摄像头)(一) https://xiaolong.blog.csdn.net/article/details/126954 ...

  7. QT软件开发-基于FFMPEG设计录屏与rtsp、rtmp推流软件(支持桌面与摄像头)(四)

    QT软件开发-基于FFMPEG设计录屏与rtsp.rtmp推流软件(支持桌面与摄像头)(一) https://xiaolong.blog.csdn.net/article/details/126954 ...

  8. electron+ffmpeg+VUE3 录屏 推流

    录屏推流 webrtc播放 简化版obs推流 electron+ffmpeg+vue3 原创录屏推流源代码 npm install 安装成功后 npm run dev 就可以跑起来 功能 录屏推流,录 ...

  9. 怎么录屏幕视频,不要错过这4种简单的电脑录屏方法

    屏幕截图和屏幕录制是我们日常生活中常用的一种手段.比如把自己感兴趣的视频录下来和朋友们分享,或者录制操作视频教程让大家知道怎么做.那怎么录屏幕视频,今天在这里小编为大家推荐4种简单的电脑录屏方法,有需 ...

  10. javacv利用ffmpeg实现录屏和录音,输出为mp4文件

    前言 不知道怎么使用配置javacv的看上一篇文章----使用javacv中的ffmpeg实现录屏,结果连运行都失败了,现在终于解决了 这篇博客是上篇博客代码的改进,因为上篇博客的代码有很多bug. ...

最新文章

  1. HashMap和HashSet原理及底层实现
  2. 有什么好的中小企业企业管理软件?
  3. 利用JS获取IE客户端IP及MAC的实现
  4. 初学laravel migrate常见错误解决
  5. MongoDB的介绍和使用场景
  6. python怎么输入两行_python交互模式下输入换行/输入多行命令的方法
  7. matlab基本编程实验1,matlab实验4MATLAB基本编程.doc
  8. android 使用外部字体
  9. 【转载】通往性能优化的天堂-地狱 JOIN方法说明
  10. mysql ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing t
  11. python 矩阵点乘_Python之Numpy库基础——矩阵运算
  12. 用python实现PR对视频处理的基本操作
  13. bing搜索崩溃无法访问?别慌,我来教你各大搜索引擎的选择
  14. nginx + tomcat 504 解决方案
  15. VML 魅力初现--美少女图(vml可以这样强大?)
  16. JAVA IDEA 第一次怎么跑起来
  17. 寒武纪裁员:软件研发部门和应届生为重灾区
  18. 如何在vue项目中引入video.js插件
  19. 通过跳绳瘦下来是一种怎么样的体验?
  20. PCL:投影滤波(二)将点云投影至球面

热门文章

  1. 武汉大学计算机网络安全学院,消息︱武汉大学计算机学院(新)与国家网络安全学院正式组建...
  2. Win10用注册表开启任务栏透明
  3. 《圈子圈套3》读后感
  4. html仿百度贴吧,利用Canvas模仿百度贴吧客户端loading小球的方法示例
  5. Permute 3 for mac(万能音视频转换器)
  6. 计算机不断重启 病毒,电脑中病毒后一直自动重启怎么样解决
  7. 计算机办公软件应用杂志,武汉计算机办公软件应用
  8. 德阳计算机办公培训,德阳2017计算机办公软件培训
  9. The RSpec Book笔记《二》Describing Features描述功能
  10. 金蝶k3服务器重装账套怎么恢复,金蝶KIS旗舰版、金蝶K3账套备份、恢复操作教程...