安装(Mac)
终端命令
git clone https://git.ffmpeg.org/ffmepg.git
进入ffmpeg文件夹,进行配置,大家根据自己情况进行配置
./configure --prefix=/Users/admin/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
继续执行命令
make && make install
常用命令
命令分类
基本信息查询命令
裁剪与合并命令
录制命令
图片/视频互转命令
分解/复用的命令
直播相关命令
处理原始数据命令
各种滤镜命令
处理视频流程
image.png
基本信息命令
image.png
录制命令
录制视频命令
ffmpeg -f avfoundation -i 1 -r 30 out.yuv
-f:指定使用avfoundation采集数据
-i:指定从哪儿采集数据,它是文件索引号
-r:指定帧率
查看支持格式设备命令
ffmpeg -f avfoundation -list_devices true -I ""
mine.png
录制音频命令
ffmpeg -f avfoundation -i :0 out.wav
:0代表音频设备
分解与复用
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i:输入文件
vcodec copy:视频编码处理方式
acodec copy:音频编码处理方式
音频提取出去命令
ffmpeg -i 1.mp4 -acodec copy -vn out.aac
处理原始数据命令
FFmpeg提取YUV数据
ffmpeg -i 1.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
FFmpeg提取PCM数据
ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffmpeg滤镜命令
视频裁剪命令
ffmpeg -i 1.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
宽高减去200,c:a表示音频
裁剪和合并命令
音视频裁剪
ffmpeg -i 1.mp4 -ss 00:00:00 -t 10 out.ts
-ss从什么时间点开始裁剪
-t裁剪的时长
音视频合并
ffmpeg -f concat -i inputs.txt out.mp4
inputs.txt:所有要合并视频的列表;内容为:'file filename'格式
out.mp4输出的结果
可以使用vi命令创建txt 命令:vi.txt,输入i,进行编辑
image.png
,随后使用:wq保存并退出
图片视频互转命令
视频转图片命令
ffmpeg -i 1.mp4 -r 1 -f image2 image-%3d.jpeg
-r 1表示每秒转出1张
图片转视频
ffmpeg -i image-%3d.jpeg out.mp4
直播推/拉流
直播推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
直播拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
如:拉取cctv1的流
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy dump.m3u8