1. 背景
有些时候我们不得不对视频做一些格式转换,有可能是以下原因的其一或者多个:
- 当前视频过大,需要转换成体积小的视频
- 视频格式不兼容,需要转换成更加通用的格式,如 mp4
- ……
2. 视频转换方案
2.1 方案1、使用格式转换软件
比较常见的方案,就是使用一些格式转换软件,比如说格式工厂。有一些视频播放软件本身可能也会提供格式转换的功能,比如说迅雷(印象里是这样),如果需要的话可以自行搜索,这里就不再赘述。
2.2 方案2、使用 ffmpeg
ffmpeg 是一个比较常见的用来做视频处理的底层程序,如果不想使用一些套壳软件的话,通常可以选择 ffmpeg 来实现需求。
2.2.1 安装
brew install ffmpeg
2.2.2 基本使用
ffmpeg -i input.avi output.mp4
2.3 方案3、使用快捷指令来执行 ffmpeg
方案 2 的痛点很明显,就是每次都要找到文件的目录所在,并且在控制台里面执行 ffmpeg 的命令,整个过程比较繁琐。
好在 macOS 本身提供了快捷指令,并且快捷指令是支持执行 shell 脚本的,因此我们可以利用快捷指令来集成视频格式转换的功能。
2.3.1 获取文件路径
我们要转换格式,首先就要拿到文件的具体路径。
快捷指令本身提供了这个功能,我们可以在右侧找到这样一个模块:
一顿操作之后:
这样就拿到了文件路径,但是要在代码里面执行,就需要用变量存一下,同样也是在右侧找到并选中即可:
2.3.2 执行 shell 脚本
接下来就是要执行我们的 shell 脚本,具体代码如下:
path="input_video_path"
dir="${path%.*}"
new_video_path="${dir}.mp4"
/opt/homebrew/bin/ffmpeg -i "$path" "$new_video_path"
需要注意的是,ffmpeg 需要用实际的路径来执行~
完整的配置如下图所示:
总结
上面总结了几个常见的用来做视频格式转换的方案,方案3是一个相对完美但是依然有缺陷的解决方案,痛点在于无法知道什么时候视频转换完成了,如果说视频比较大或者转换的视频比较多,那么会比较麻烦。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。