LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: lolilolicon

ffcast: 巨小巧的屏幕录制工具

[复制链接]
 楼主| 发表于 2009-11-27 10:17:28 | 显示全部楼层
@Havanna
使用--debug运行ffcast, 把你录的compiz视频再录制一次, 发到网上(例如omploader.com). 然后贴出命令行的输出和视频链接.
我猜测开启(3D) composition的桌面可能会引起问题; 也有可能跟驱动有一定关系.

PS: ffcast的ffmpeg命令行目前还没有仔细研究, 最近的更新更多集中在 选区/选择窗口/选择屏幕 这些问题上.

编辑: Havanna, 升级到最新的ffcast, 用--debug运行ffcast, 查看输出中的`(DD) ffmpeg: commind line: ffmpeg .*' 然后在终端直接运行这个命令, 不过在 输出文件前加上 -sameq 选项. 我不确定, 试一下看看结果. (我没有安装compiz自己不方便试验)

编辑2:
Post by Nixie Pixel@ubuntuforums.org

Wait, after talking in #compiz I chose Force synchronization between X and GLX in the Compiz settings and it has all but wiped out the problems!
试试, 如何?
回复 支持 反对

使用道具 举报

发表于 2009-11-27 10:43:19 | 显示全部楼层
录制没啥问题,估计还是驱动
本人的glxgears好像记得500fps左右
  1. $ ffmpeg -r 15 -v 1 -s 1366x744 -an -f x11grab -i :0+0,23 -vcodec libx264 -vpre main -vpre lossless_slow -crf 0  -sameq  "ffcast.avi"
  2. FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  3.   configuration: --prefix=/usr --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libfaac --enable-libfaad --enable-libxvid --enable-libx264 --enable-libtheora --enable-postproc --enable-shared --enable-pthreads --enable-x11grab --enable-swscale
  4.   libavutil     49.15. 0 / 49.15. 0
  5.   libavcodec    52.20. 0 / 52.20. 0
  6.   libavformat   52.31. 0 / 52.31. 0
  7.   libavdevice   52. 1. 0 / 52. 1. 0
  8.   libswscale     0. 7. 1 /  0. 7. 1
  9.   libpostproc   51. 2. 0 / 51. 2. 0
  10.   built on Apr 18 2009 20:24:32, gcc: 4.3.3
  11. [x11grab @ 0x1ef1a60]device: :0+0,23 -> display: :0 x: 0 y: 23 width: 1366 height: 744
  12. [x11grab @ 0x1ef1a60]shared memory extension  found
  13. Input #0, x11grab, from ':0+0,23':
  14.   Duration: N/A, start: 1259289672.278709, bitrate: 487825 kb/s
  15.     Stream #0.0: Video: rawvideo, rgb32, 1366x744, 487825 kb/s, 15 tbr, 1000k tbn, 15 tbc
  16. Output #0, avi, to 'ffcast.avi':
  17.     Stream #0.0: Video: libx264, yuv420p, 1366x744, q=10-51, 200 kb/s, 90k tbn, 15 tbc
  18. Stream mapping:
  19.   Stream #0.0 -> #0.0
  20. [libx264 @ 0x1f00a60]using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
  21. [libx264 @ 0x1f00a60]profile High 4:4:4 Predictive, level 3.2
  22. Press [q] to stop encoding
  23. frame=  129 fps=  7 q=-1.0 Lsize=    2344kB time=18.13 bitrate=1059.1kbits/s   
  24. video:2332kB audio:0kB global headers:0kB muxing overhead 0.511944%
  25. [libx264 @ 0x1f00a60]slice I:2     Avg QP: 0.00  size:184468
  26. [libx264 @ 0x1f00a60]slice P:127   Avg QP: 0.00  size: 15887
  27. [libx264 @ 0x1f00a60]mb I  I16..4: 67.8%  5.2% 27.0%
  28. [libx264 @ 0x1f00a60]mb P  I16..4:  3.0%  0.9%  1.3%  P16..4:  0.5%  0.1%  0.2%  0.1%  0.1%    skip:93.8%
  29. [libx264 @ 0x1f00a60]8x8 transform  intra:14.6%  inter:24.9%
  30. [libx264 @ 0x1f00a60]ref P L0  82.2% 17.8%
  31. [libx264 @ 0x1f00a60]kb/s:2220.1
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-28 22:45:33 | 显示全部楼层
小更新

增加了配置文件, 虽然还是觉得没有多大必要(选项很少)
关于配置文件, 需要注意的几点:
1. 只能且必须使用单引号: 比如 SELMODE='XWININFO' 是可以的, 但 SELMODE=“XWININFO” 却是不行的, 它将被忽略
2. 如果要在单引号内使用单引号, 你必须使用'"'"'
3. 用户配置文件的位置: $XDG_CONFIG_HOME/ffcast/ffcast.conf, 也就是 $HOME/.config/ffcast/ffcast.conf
4. 示例配置文件在/usr/share/ffcast/doc/ffcast.conf

另外去除了-g -G两个选项, 你可以使用 -f '' -c '' 获得以前-g选项的行为
更新了Makefile和man page.
回复 支持 反对

使用道具 举报

发表于 2009-11-29 10:07:52 | 显示全部楼层
这个man page 写的让人看不懂
好些特殊符号的说
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-29 11:55:26 | 显示全部楼层
@easycat, 具体是指什么阿?
显示格式有问题?
(这个man page不是用工具写的, 只自己看了一下别的man page, 学了一点格式符号, 写了一个小脚本生成一个man page然后再自己手动添油加醋的.. 所以不能保证没有问题...)
不过我这边的显示是正确的:


或者你是指内容本身有难懂的地方吗?
那样的话就把具体哪里难懂贴上来, 我再去修改

谢谢
回复 支持 反对

使用道具 举报

发表于 2009-11-29 12:04:46 | 显示全部楼层
建议楼主:每次更新时(包括新增功能、Bugfix),都在顶楼帖子里按时间顺序一一列出,同时编辑一下顶楼标题加上“xx年xx月xx日更新”,有patch等补丁就在更新说明下加个链接或者说明在xx楼有补丁下载;再发个新帖说明一下同时也把你自己的帖子顶上去。这样既能统一记录和展现ffcast的演进历程,又能让Fans们及时了解最新进展。例如下面这样可不可以:
功能简介:
引用:*调用ffmpeg录制所选屏幕区域
*支持ffmpeg所支持的所有编码格式
*选择录制区域的方式有多种:
>a) 全屏(-a选项)
>b) 鼠标点选; 支持选择多个窗口(-n选项)
>c) 命令行指定窗口ID; 支持选择多个窗口(-i选项)
>d) 鼠标拖拽选择, 就如同`scrot -s'(-s选项)
>e) 命令行自由指定选区 (-j选项)
*对于选区方式b)和c), 可选择考虑或者忽略窗口边框(-B/-b选项)
*默认采用无损x264编码,输出视频体积相当小巧
*可选所有ffmpeg预置的x264 presets, 使得视频质量控制更简便
*CLI

我在Michal Witkowski原来的小脚本的基础上, 增加/调整了相当数量的代码
另外从scrot的main.c中提取/修改了xrectsel.c, 以实现鼠标拖拽选择矩形区域的功能

安装后在/usr/bin/下会增加两个文件: ffcast 和 xrectsel

欢迎使用, 试验, 报错, 索要新功能
欢迎提供patch以及money


[color="Red"]09-11-28, 22:45 更新:
(A)增加了配置文件, 虽然还是觉得没有多大必要(选项很少)
关于配置文件, 需要注意的几点:
引用:1. 只能且必须使用单引号: 比如 SELMODE='XWININFO' 是可以的, 但 SELMODE=“XWININFO” 却是不行的, 它将被忽略
2. 如果要在单引号内使用单引号, 你必须使用'"'"'
3. 用户配置文件的位置: $XDG_CONFIG_HOME/ffcast/ffcast.conf, 也就是 $HOME/.config/ffcast/ffcast.conf
4. 示例配置文件在/usr/share/ffcast/doc/ffcast.conf
(B)去除了-g -G两个选项, 你可以使用 -f '' -c '' 获得以前-g选项的行为
(C)更新了Makefile和man page.

[color="#ff0000"]xx-xx-xx更新:
xrectsel现在采用十字形鼠标(XC_crosshair), 既有提示作用, 选择也更加准确.

[color="#ff0000"]09-11-26, 15:30 更新:
(A) 添加 -j,--xjustcap <geometry> 选项:
这个选项让用户可以直接在命令行准确指定任意屏幕区域进行录制, 而不需要手动选区.
目前支持的 geometry 格式有:
1) 两点选区: 用两个对角点的 (x,y) 坐标指定矩形区域. 例子:
ffcast -j '20%,30% 960,600' -o cast.mkv
是的, 20% == 20% * 1280 == 256 (1280是我屏幕的横向分辨率)
2) 长x宽+位+置: 例子:
ffcast -j '848x640+4-6 southwest' -o cast.mp4
将指定一个 848x640 大小的区域, 它的左边界距离屏幕左边缘 4 像素(+4), 它的下边界高于屏幕下缘 6 像素(-6)
其中 southwest 是 gravity, 它的作用相当于将这个 848x640 的区域初始位置固定在屏幕左下角,
尔后 +4-6 将这个选区向相应的方向(+为向下或向右, -则相反)移动指定像素(4,6)
正如你的预料, gravity 可以是 northwest(默认), north, northeast, east, southeast, south, southwest, west, center 九个方向
(B) 修改旧选项: -S 现在变成 -w, 这样更符合逻辑(-s,-w,-j) ; -m 更改为 -M, 因为你通常不会用到它.
(C) 修正了一些小bug.

[color="#ff0000"]09-11-25, 21:07 更新:
添加了manpage

[color="#ff0000"]09-11-24, 19:11 更新:
xrectsel.c代码重写。大家有没有注意到 -s 选项引起高CPU使用的现象? 没发现的拿htop瞄一眼然后拍大腿~好消息是, 这个问题已经修正

[color="#ff0000"]09-11-24, 00:54 更新:
刚刚加了新选项, -t,--duration : 用来限制录制的最大时长. 这样就不必每次都按[q]才可以结束了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-29 12:26:16 | 显示全部楼层
@糊涂
历史记录全部可以在这里找到:
http://github.com/lolilolicon/ffcast/commits/master/

或者更简单, 更新, cd 到 $srcdir/ffcast, git log :-)

基本上, 如果你发现什么问题, 你应该首先更新, 如果问题还是没有解决, 就在这里发贴, 把你的 --debug 命令输出发上来, 描述问题(最好发一个视频 sample )

另外就是 ffcast 录制视频本身是靠的 ffmpeg, 如果问题出在 ffmpeg 自身的 bug, ffcast 是无能为力的

每次都在首楼更新会很麻烦 。。。 其实我比较懒啦。。
回复 支持 反对

使用道具 举报

发表于 2009-11-29 13:27:50 | 显示全部楼层
哦。那里有更新消息阿,那就不必在这儿更新了。我只是先收藏了还没试用
回复 支持 反对

使用道具 举报

发表于 2010-4-15 12:53:23 | 显示全部楼层
这个工具确实非常好用
楼主有空整个基于imagemagic的convert impot display等脚本出来吧
回复 支持 反对

使用道具 举报

发表于 2010-4-15 13:46:27 | 显示全部楼层
这个太强了~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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