• 2015-02-08

    OS X 屏幕录制视频转 GIF 动画

    Views: 7749 | No Comments

    本篇文章告诉你如何在 Mac OS X 上用免费的工具来将屏幕录制视频转成 GIF 动画, 这些免费的工具是: QuickTime, ffmpeg, and gifsicle.

    ffmpeg -i in.mov -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
    

    参数说明:

    • -r 10 告诉 ffmpeg 将视频的帧率转成 10fps, 这样可以减小视频体积
    • -s 600x400 这是你的视频的尺寸, 600x400(注意, 去掉这个参数可以保持原来的画质)
    • --delay=10 告诉 gifsicle GIF 每帧之间的时间间隔是 100ms(也就是帧率为 10fps, 1000ms/10fps = 100ms = 10x10ms), gifsicle 使用的单位是 10ms, 不是 ms
    • --optimize=3 让 gifsicle 优化一下, 设置为 3 即可

    相关软件安装:

    • QuickTime, 系统自带
    • ffmpeg, gifsicle, 开源的免费命令行软件, 安装:
      brew install ffmpeg 
      brew install gifsicle
      

    更多信息请参考: https://gist.github.com/ideawu/5b385c9ff4d160efc9d4

    用 QuickTime Player 在 Mac 下录制屏幕

    Posted by ideawu at 2015-02-08 13:29:48
  • 2014-10-15

    Mac 下创建隐藏用户

    Views: 6944 | No Comments

    Mac 下创建隐藏用户, 例如 nobody, nginx, mysql 用户等等, 这些是 Apache, Nginx, Mysql, PHP-fpm 等软件要用到的. 但是, 这些用户又不想它能登录系统.

    sudo dscl . create /Groups/nginx PrimaryGroupID 390
    sudo dscl . create /Users/nginx UniqueID 390
    sudo dscl . create /Users/nginx PrimaryGroupID 390
    sudo dscl . create /Users/nginx UserShell /bin/false
    sudo dscl . create /Users/nginx RealName nginx
    sudo dscl . create /Users/nginx NFSHomeDirectory /dev/null
    sudo dscl . create /Groups/nginx GroupMembership nginx
    
    Posted by ideawu at 2014-10-15 14:49:28
  • 2014-02-13

    用 QuickTime Player 在 Mac 下录制屏幕

    Views: 8456 | 1 Comment

    用 Windows 的朋友可能会遇到过到处找盗版软件来录制屏幕操作经历. 对于 Mac 用户, OS X 自带的 QuickTime Player 就是一个非常棒的屏幕录制软件, 而且功能强大!

    QuickTime Player 可以录制屏幕的操作, 还可以录制你用鼠标划出来的任何一个矩形区域.

    使用方法很简单:

    1. 启动 QuickTime Player
    2. 从"文件(File)"菜单时选择"新建屏幕录制(New Screen Recording)".
    3. 然后会在屏幕正中央弹出一个浮云的提示条, 上面提示你怎么开始录制.
    4. 你可以直接单击鼠标, 然后就开始录制整个全屏了. 录完后点击顶部图标区域的一个按钮结束. 或者, 你用鼠标在屏幕上拖曳划出一个矩形区域, 只录制这个区域内的画面.

    Posted by ideawu at 2014-02-13 21:37:44
  • 2013-09-27

    Mac下改变文件关联(打开方式)的方法

    Views: 21474 | 6 Comments

    苹果的 Mac 操作系统不允许程序主动地修改文件的打开方式, 只能一种一种后缀名地修改. 下面以 Tovi(Mac 下的看图软件)为例.

    1. 打开 Finder. 如果你想修改 .jpg 文件的打开方式, 找到一个 .jpg 文件.

    2. 右键点击该文件, 从菜单中选择"显示简介(Get Info)"

    3. 从简介窗口中的"Open With..."区域内的下拉菜单中选中"Tovi.app", 然后点击"全部改变(Change All)".

    Posted by ideawu at 2013-09-27 11:13:15 Tags:
  • 2013-06-12

    遍历NSString每一个字符的正确方式!

    Views: 23674 | No Comments

    最近在处理Cocoa NSString时, 遇到一些字符编码的问题, 从而引出一个遍历NSString每一个字符的"正确"方式! 很有趣.

    NSString是UTF-16编码的, 也就是16位的unichar字符的序列. 所以, 一般遍历其每一个字符的方法就是:

    for(int i=0; i<str.length; i++){
        unichar ch = [str characterAtIndex: i];
    }
    

    但是, 我们平常书写的字符, 并不全部都是用唯一的一个16位字符来表示, 而是有一部分用两个16位字符来表示, 这就是surrogate pairs的概念. 如果还是用上面的方法遍历字符串, 就会出现"断字". 例如图中这个Apple Color Emoji的"THUMBS UP SIGN"字符, 其实是用2个16位unichar来表示, 它的Unicode是U+1F44D, 用(U+D83D U+DC4D)两个字符来表示.

    还好, NSString的rangeOfComposedCharacterSequencesForRange:rangeOfComposedCharacterSequenceAtIndex:两个方法可以用来处理这种情况. 所以, 真正正确的遍历NSString的每一个字符的方法就是这样了:

    NSRange range;
    for(int i=0; i<str.length; i+=range.length){
        range = [str rangeOfComposedCharacterSequenceAtIndex:i];
        NSString *s = [str attributedSubstringFromRange:range];
    }
    

    一次遍历一个子串, 而不是遍历一个unichar了.

    相关资料:

    Posted by ideawu at 2013-06-12 12:26:39
  • 2013-05-22

    Mac OSX下的看图软件Tovi

    Views: 22209 | 23 Comments

    Mac OSX 自带的看图软件是 Preview, 虽然和操作系统整合很紧密, 但有几个非常致命的缺点.

    一是无法播放gif动画. 二是不能自动生成幻灯片查看同目录下的所有图片.

    Xee 是一个可选的替代品, 也是免费的, 但 Xee 也有一些缺点, 比如快捷键不方便, 不能用方向键浏览, 缩放也不方便. 为此我做了 Tovi, 用来在 Mac OSX 下浏览图片. Tovi 是一个收费软件, 下面是一批兑换码, 想要的同学请自取, 兑换后麻烦回来通知一声, 我将它从列表中删除.

    63KRREAF6XNJ
    J9JX747N7ERJ
    K4JA3MNFW6J9
    FFTM447HTKT7
    967FJXKT9RHX
    FAHENJYP6KYE
    X73LNPNRPL49
    NTRT3P63FHMM
    F7NNK97LAKWH
    PJANEP3L69N6
    



    Posted by ideawu at 2013-05-22 13:15:55
|<<<12345>>>| 4/5 Pages, 27 Results.