通常我们的MAC录制视频后文件都非常大,15min的视频可以达到2G大小,哪怕是三五分钟视频也有好几遍M !!! 
所以需要转换,压缩,但是不能降低太多的分辨率。 这里我的御用视频编辑师推荐了一款非常轻量级的命令行工具FFmpeg 可以做到,下面是FFmpeg 的简短介绍: FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward”。
还专门有人分享了学习它的笔记:https://github.com/feixiao/ffmpeg 我这里因为只用到了一个格式转换及视频压缩的功能,就只抛砖引玉提一下。 安装在mac下面安装ffmpeg 只需要两行代码即可: /usr/bin/ruby -e "$(curl -fsSL https://raw./Homebrew/install/master/install)" brew install ffmpeg
其实就是借用了brew来安装ffmpeg。 使用示例代码是: ffmpeg -i old.mov -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1920:-1" -acodec libmp3lame -ab 128k new.mp4
参数解释如下: '-i filename (input)’ 输入文件名 '-y (global)’ 覆盖输出文件而不询问 '-vf filtergraph (output)’ 创建 filtergraph 指定的过滤图,并使用它来过滤流。 '-vcodec codec (output)’ 设置视频 codec。 '-acodec codec (input/output)’ 设置音频codec。
值得注意的是这里的 acodec 可能设置的并不好,因为它出来的视频在很多视频播放器出现声音无法识别。 所以我学习了这个示例代码后,写的真实代码是: ffmpeg -i linux-01-命令行操作的魅力.mov \ -vcodec libx264 -preset fast -crf 20 -y \ -vf "scale=1920:-1" -acodec libmp3lame -ab 128k \ linux-01-命令行操作的魅力.mp4
效果如下: 2.1G May 1 15:35 linux-01-命令行操作的魅力.mov 124M May 1 21:04 linux-01-命令行操作的魅力.mp4
批处理既然使用命令行程序,当然是批量处理哦。 ls *mov|while read id;do (ffmpeg -i "$id" -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1920:-1" -acodec libmp3lame -ab 128k "${id%%.*}.mp4" );done
最后结果如下:1.2G Apr 29 14:37 linux-00-课程序言.mov 62M May 1 22:44 linux-00-课程序言.mp4 2.1G May 1 15:35 linux-01-命令行操作的魅力.mov 124M May 1 21:04 linux-01-命令行操作的魅力.mp4 1.3G May 1 15:56 linux-02-云服务器.mov 110M May 1 23:17 linux-02-云服务器.mp4 1.3G May 1 16:22 linux-03-文件目录操作-上.mov 102M May 1 23:30 linux-03-文件目录操作-上.mp4 1.1G May 1 16:51 linux-03-文件目录操作-下.mov 89M May 1 23:42 linux-03-文件目录操作-下.mp4 1.0G May 1 17:16 linux-04-绝对路径和相对路径.mov 80M May 1 23:53 linux-04-绝对路径和相对路径.mp4 990M May 1 21:39 linux-05-通配符和变量扩展.mov 84M May 2 00:00 linux-05-通配符和变量扩展.mp4 943M May 1 22:04 linux-06-文本处理-上.mov 84M May 2 00:08 linux-06-文本处理-上.mp4 848M May 1 22:35 linux-06-文本处理-下.mov 113M May 2 00:26 linux-06-文本处理-下.mp4 这就是命令行的魅力!
|