要录制屏幕,首先要知道当前笔记本支持的输入设备。
ffmpeg -devices
Devices:
D. = Demuxing supported
.E = Muxing supported
--
D avfoundation AVFoundation input device
D lavfi Libavfilter virtual input device
E sdl,sdl2 SDL2 output device
通过 ffmpeg -devices
可以知道我的 Mac 的输入设备:avfoundation
查询 avfoundation
视频和音频的索引
ffmpeg -f avfoundation -list_devices true -i ""
[AVFoundation input device @ 0x7fb5b340d6c0] AVFoundation video devices:
[AVFoundation input device @ 0x7fb5b340d6c0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fb5b340d6c0] [1] Capture screen 0
[AVFoundation input device @ 0x7fb5b340d6c0] AVFoundation audio devices:
[AVFoundation input device @ 0x7fb5b340d6c0] [0] MacBook Pro麦克风
ffmpeg -f avfoundation -i 1: -r 30 out.yuv
ffplay out.yuv
这样播放 yuv 格式的原始视频是有问题的,因为没有指定视频的分辨率
和视频的格式
ffplay -s 3360x2100 -pix_fmt uyvy422 out.yuv
如果 -s 不指定
[IMGUTILS @ 0x700001e58808] Picture size 0x0 is invalid
studyout.yuv: Invalid argument
如果不指定 -pix_fmt
就会出现花屏问题。
利用 Macbook 的麦克风,采集音频数据。
ffmpeg -f avfoundation -i :0 out.wav
ffmpeg -i testfile.mp4 -vcodec copy -acodec copy testfile.flv
or
ffmpeg -i testfile.mp4 -codec copy testfile.flv
ffmpeg -i testfile.mp4 -vcodec copy -an testfile.flv
ffmpeg -i testfile.mp4 -vn -acodec copy testfile.flv
ffmpeg -i testfile.mp4 -an -codec:v rawvideo -pix_fmt yuv420p out.yuv
ffmpeg -i testfile.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
播放:
ffplay -ar 44100 -ac 2 -f s16le out.pcm
4.1、设置声音滤镜
ffmpeg -i /Users/liaowj/Documents/media/study/Complicated.mp3 -vf volume=1 -acodec copy volume.mp3
从某一个位置00:01:10位置开始裁剪一个 mp4 文件,裁剪时间 10 s。
ffmpeg -i haha.mp4 -ss 00:01:10 -t 10 out.ts
合并两个视频文件
ffmpeg -f concat -i input.txt out.mp4
concat
-i 指定数据的数据源
input.txt 指定了两个文件的路径,格式为 file absolutefilepath
file out.mp4
file out1.mp4
ffmpeg -i testfile.mp4 -r 1 -f image2 foo-%03d.jpeg
ffmpeg -f image2 -i foo-%03d.jpeg out.avi