LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1340|回复: 14

FFcast - 巨小巧的屏幕录制工具 v2

[复制链接]
发表于 2011-10-4 16:27:34 | 显示全部楼层 |阅读模式
AUR: https://aur.archlinux.org/packages.php?ID=32158
GitHub: https://github.com/lolilolicon/FFcast2
Forum Thread: https://bbs.archlinux.org/viewtopic.php?id=127570

FFcast 让用户使用鼠标选择某个窗口或任意屏幕区域,然后结合用户在命令行指定的参数运行 FFmpeg 进行屏幕录制。

FFcast 最大的亮点就是选区的灵活性,用户可以点击鼠标选择一个或者多个窗口,或拖拽选择一个或多个屏幕区域,或是两种方式的任意组合。最终录制的区域是所有这些区域的并集。若用户不指定选区,则录制全屏。

FFcast 1.0 所有代码全部重写,与 FFcast 0.x 没有任何兼容性。FFcast 1.0 的好处在于它支持任意 FFmpeg 命令行,因此,类似于“FFcast 不支持录音”这样的问题在 FFcast 1.0 中是不存在的。

FFcast 1.0 的命令行语法如下:

  1. ffcast [...] [ffmpeg [...] [--] [...]]
复制代码


范例:

  1. ffcast -s ffmpeg -r 30 -- -vcodec libx264 cast.mkv
复制代码

FFcast 首先会请用户拖拽鼠标选择一个区域,然后它运行如下的 FFmpeg 命令进行屏幕录制:

  1. ffmpeg -r 30 -f x11grab -s 272x216 -i :0.0+187,219 -vcodec libx264 cast.mkv
复制代码


【2011.10.21 更新】

FFcast 1.0rc2 支持任意命令。新引入的命令行语法示例如下:

  1. ffcast -s % ffmpeg -f x11grab -show_region 1 -r 25 -s %wx%h -i %d+%x,%y out.mpg
复制代码

参见 README,git-log 以及 https://bbs.archlinux.org/viewtopic.php?pid=1006308#p1006308

【2011.10.22 更新】

FFcast 1.0rc3 移除 `-vh' 附加帮助,添加 ffcast(1) 手册。查看 man ffcast。

【2011.10.24 更新】

FFcast 1.0 允许用户指定多显示器中的某一个进行录制(-x)。另外 -m 选项现在要求指定一个正整数参数。
发表于 2011-10-4 18:01:15 | 显示全部楼层
这个工具不错,可以支持声音了
感谢分享
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-5 22:42:03 | 显示全部楼层
@axlrose,多谢支持!

FFcast 刚刚更新到 1.0d,增加了以 recordMyDesktop 作为“后端”的支持。例如:


  1. ffcast -w recordmydesktop -- -o cast.ogv
复制代码


如果你希望某个后端可以利用 FFcast 的区域选择功能,请在回帖中说明它的命令行语法。谢谢。
回复 支持 反对

使用道具 举报

发表于 2011-10-5 22:49:47 | 显示全部楼层
好东西,弄个 gui 吧
回复 支持 反对

使用道具 举报

发表于 2011-10-6 09:23:41 | 显示全部楼层
Post by lolilolicon;2153124
@axlrose,多谢支持!

FFcast 刚刚更新到 1.0d,增加了以 recordMyDesktop 作为“后端”的支持。例如:


  1. ffcast -w recordmydesktop -- -o cast.ogv
复制代码


如果你希望某个后端可以利用 FFcast 的区域选择功能,请在回帖中说明它的命令行语法。谢谢。


recordmydesktop  挺好用的,有gtk, qt 的GUI前端
你指的是  --  的命令行参数语法?
将 -o cast.ogv 传参 recordmydesktop
第一次用到 -- 的时候是写debian的服务脚本时,调用参数,后来看《ABS》还是啥的文章才看到 -- 的用法.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-6 09:51:12 | 显示全部楼层
Post by axlrose;2153136

你指的是  --  的命令行参数语法?
将 -o cast.ogv 传参 recordmydesktop
第一次用到 -- 的时候是写debian的服务脚本时,调用参数,后来看《ABS》还是啥的文章才看到 -- 的用法.


我不知道有谁像我这样用过 '--', 它并不代表“从这以后均不是特殊选项”,而是被与选区相关的选项所替代。
recordmydesktop的语法我已经查看过,并且加入了。例如上面的例子:


  1. ffcast -w recordmydesktop -- -o cast.ogv
复制代码

(在用户选择有个窗口后)将被转换成:

  1. recordmydesktop -display "$DISPLAY" -x 100 -y 200 -width 300 -height 400 -o cast.ogv
复制代码

另外,目前对于用户不指定 '--' 的情况,这些由FFcast决定的选项将被插入到紧跟录制命令(例如'recordmydesktop')之后。
理解了这点,对FFcast的用法应该就很明白了。(也可能是我误解你的意思,你已经知道这点了,:-)

我之前的意思是,如果用户希望某个命令可以被FFcast支持,请告诉我用来替代 '--' 的这部分命令行参数的语法。就像是上面这个recordmydesktop的例子一样。

还有,我所说的在帮助('ffcast -vh')里应该已经说的比较清楚了。另外还有README(/usr/share/doc/ffcast/README)里有更多的例子和解释。如果你认为帮助不够helpful,patches are welcome :-) 另外现在FFcast的代码应该很好理解,比如只要读一下“Insert x11grab options into cast command line.” 这行注释之后的代码,'--' 的处理方式就会一目了然了。
回复 支持 反对

使用道具 举报

发表于 2011-10-6 09:57:00 | 显示全部楼层
好东西,留记号以备不时之需
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-7 10:55:56 | 显示全部楼层
FFcast 1.0eol 发布。

  • 在使用 xrectsel 选区时,不再劫持键盘按键。这样-s选项的行为与-w更一致,且用户可以在选区前再用键盘做各种调整。
  • 新增 -l 选项:罗列支持的录制命令。
  • 新增对 byzanz-record 的支持。这个工具据说可以录制GIF,Ogg 还有 Flash。例子:
    1. ffcast -s byzanz-record -- cast.gif -l
    复制代码

    对比FFmpeg,由于FFmpeg对GIF的支持有限,仅仅生成未压缩的文件,需要使用 ImageMagick 转换:
    1. ffcast -s ffmpeg -- -r 5 -vcodec rawvideo -pix_fmt rgb24 -loop_output 0 -f gif pipe: | convert gif:- cast.gif
    复制代码



注意 byzanz-record 我没有测试过,如果你使用 byzanz-record,请帮我确认这个命令可行,谢谢。
回复 支持 反对

使用道具 举报

发表于 2011-10-19 17:36:23 | 显示全部楼层
这个版本似乎比之前的版本要好点。录制的视频感觉不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-19 18:24:09 | 显示全部楼层
Post by Havanna;2153703
这个版本似乎比之前的版本要好点。录制的视频感觉不错


哈哈,其实视频的质量跟FFcast没有多大关系啦。用 -vv 看下录制使用的 ffmpeg 选项你就知道,默认的选项是很简单的。
效果不满意的话,用户可以根据自己的需要,任意指定 ffmpeg 选项的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表