FFmpeg
A complete, cross-platform solution to record, convert and stream audio and video.
简单来说就是一个全功能且跨平台的音视频录制
转换
以及数据流
解决方案。
FFmpeg的安装方式详见官网,下载二进制或者通过源码编译安装,macOS平台下可以通过Homebrew
安装
brew install ffmpeg
然后就可以通过ffmpeg
程序进行相关音视频操作,比如把一个mp4
格式视频转换为avi
格式可以用以下命令
ffmpeg -i input.mp4 output.avi
输入源是URL
也是可以的哦
ffmpeg -i http://www.your-video-server.com/input.mp4 output.avi
拆分音频左右声道
ffmpeg -i record.mp3 -map_channel 0.0.0 left.mp3 -map_channel 0.0.1 right.mp3
macOS下录屏录音到文件
-
列出音视频设备索引
ffmpeg -f avfoundation -list_devices true -i ""
输入内容大概如下,取决于您的设备
(隐去部分输出) ... [AVFoundation input device @ 0x7f9bdee12970] AVFoundation video devices: [AVFoundation input device @ 0x7f9bdee12970] [0] FaceTime HD Camera [AVFoundation input device @ 0x7f9bdee12970] [1] Capture screen 0 [AVFoundation input device @ 0x7f9bdee12970] AVFoundation audio devices: [AVFoundation input device @ 0x7f9bdee12970] [0] Built-in Microphone
可以看到2个视频设备及1个音频设备
- 摄像头
FaceTime HD Camera
索引0
- 显示器
Capture screen 0
索引1
- 麦克风
Built-in Microphone
索引0
- 摄像头
-
录制屏幕和麦克风到文件
ffmpeg -f avfoundation -i 1:0 output.mp4
其中指令
avfoundation
的参数1:0
指示视频索引:音频索引
结束录制键盘按
q
稍后即可。同理如果要通过摄像头录制,命令如下
ffmpeg -f avfoundation -i 0:0 output.mp4
至于其他平台上的指令参数有所区别,详见官方文档 https://trac.ffmpeg.org/wiki/Capture/Desktop
回顾一下哈,通过以上示例,我们可以看到FFmpeg
的音视频转换,编辑,设备音视频流抓取等功能。通过已有的技能我们可以实现
- 音视频格式转换器
- 录音机
- 录像机
- 屏幕录制
如果再稍微扩展一下,我们可以实现
- 音乐播放器
- 视频播放器
- 远程教育,屏幕共享
- 直播
- 搭建个音视频对话系统,和女朋友果聊(这里有个悖论,有妹子的缺技术,过度关注技术可能导致妹子缺失)
结语
FFmpeg是一个伟大的软件,开源,功能完善。当你在浏览网页时候看到心仪的小视频想下载珍藏的时候,可以执行
ffmpeg -i http://sth.movies.com/aa/bb/cc.m3u8 output.mp4