查看设备源
ffmpeg -f avfoundation -list_devices true -i ""
显示 0 就是录屏源
[AVFoundation input device @ 0x7fc6dde00580] AVFoundation video devices:
[AVFoundation input device @ 0x7fc6dde00580] [0] Capture screen 0
[AVFoundation input device @ 0x7fc6dde00580] AVFoundation audio devices:
[AVFoundation input device @ 0x7fc6dde00580] [0] Built-in Microphone
1.录屏 0 就是录屏源 25 是帧率
ffmpeg -f avfoundation -i 0 -r 25 out.yuv
- 播放
录制的时候1920*1080 uyvy422 这两个参数可以看到
ffplay -s 1920*1080 -pix_fmt uyvy422 out.yuv
录音
ffmpeg -f avfoundation -i :0 out.wav
播放录音
ffplay out.wav
截取音频
vn 就是不要视频的意思 拷贝音频
ffmpeg -i out.mov -vn -acodec copy out.aac
拆出视频中的yuv 数据
-c:v rawvideo 编码 视频 以原始数据编码 an 就是 不要音频的意思
ffmpeg -i input.mov -an -c:v rawvideo -pix_fmt yuv420p out.yuv
播放yuv的数据
s 后面跟着分辨率 如果没有分辨率是不能播放的
ffplay -s 640x400 out.yuv
拆分音频pcm
-vn 不要视频
-ar 44100 采样率
-ac 2 双声道
-f s16le s 代表有符号16位 little end
ffmpeg -i input2.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
播放音频
ffplay -ar 44100 -ac 2 -f s16le out.pcm
视频裁剪
vf 视频滤镜用 crop
宽-200 高-200
编译 视频用libx264
音频直接 -c:a copy
ffmpeg -i input2.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy outkkk.mp4
视频裁剪
ss 表示 开始时间 10 表示 10秒
ffmpeg -i input2.mp4 -ss 00:00:00 -t 10 out123.mp4
再裁剪一个 从 10秒开始再裁剪10秒
ffmpeg -i input2.mp4 -ss 00:00:10 -t 10 out1234.mp4
合并刚才裁剪的两个视频
input.txt 是 需要合并的视频列表 自己新建一个txt 的文件
写上两行后保存
file 'out123.mp4'
file 'out1234.mp4'
然后执行
ffmpeg -f concat -i input.txt output.mp4
视频转图片
-r 1 是代表每秒一张图片 image2 是一种协议 image-%3d.jpeg是命名方式
例如 image-016.jpeg
ffmpeg -i output.mp4 -r 1 -f image2 image-%3d.jpeg
图片再转为视频
ffmpeg -i image-%3d.jpeg outjepg.mp4
保存服务器上拉的流文件
http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8
是苹果提供的测试网址
-c copy outk.ts 是直接复制 保存为ts文件 不转码
ffmpeg -i http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8 -c copy outk.ts