ffmpeg常用命令汇总

 查询设备信息列表

ffmpeg -f avfoundation -list_devices  true -i  "" 

录制视频命令:

ffmpeg -f avfoundation -i 1 -r 30  out.yuv

-f: 指定使用avfoundation采集数据  

-i: 指定从哪儿采集数据,它是一个文件索引号  

-r:指定帧率

播放录制的视频:

ffplay -video_size 2880x1800  -pix_fmt yuvu422 out.yuv

-video_size: 指定分辨率    

-pix_fmt :录制时的格式

录制声音命令:

ffmpeg -f avfoundation -i :0 out.wav

播放音频命令:

ffplay out.wav

录屏 + 录声音:

ffmpeg -f avfoundation -i 1:0 -r 29.97 -c:v libx264 -crf 0 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k out.flv

多媒体格式转换:

ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv

-i:输入文件

-vcodec copy: 视频编码处理方式

-acodec copy:音频编码处理方式

上面的命令表示的是音频、视频都直接copy,只是将mp4个封装格式转成了flv。

抽取音频流

ffmpeg -i input.mp4 -acodec copy -vn out.aac

acodec:指定音频编码器

copy:指明只拷贝,不做编解码

vn:v 代表视频,n代表no也就是无视频的意思

抽取视频流

ffmpeg -i input.mp4 -vcodec copy -an out.h264   

 vcodec:指定视频编码器

copy:指明只拷贝,不做编解码

an:a 代表音频,n代表no也就是无音频的意思 

提取YUV数据

ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv 

ffplay -s wxh out.yuv          wxh指视频分辨率大小

-c:v rawvideo 指定将视频转成原始数据

-pixel_format yuv420p 指定转换格式为yuv420p

提取PCM数据

ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

ffplay  -ar 44100 -ac 2 -f s16le out.pcm

-ar 44100   指音频采样率是44.1k,其他常用采样率有48k,32k,16k

-ac2  c指channel,2指双声道

-f s16le  -f:指定音频存储格式,s指有符号的,16指每一位数值用16位表示,l:letter

ffmpeg滤镜命令

ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4

-vf 指视频滤镜

crop 指滤镜名称 in_w-200:in_h-200:指输入视频的宽度减去200,输入视频的高度减去200

-c:v: libx264   使用的视频编码器是libx264

-c:a copy 不对音频编码器做特殊处理

音视频裁剪

ffmpeg -i input.mp4 -ss 00:00:00 -t 10s out.ts

音视频合并

ffmpeg -f concat -i inputs.txt out.flv

-f concat  拼接

input.txt 文件里记录了所有要合并的文件的名字,内容为‘file filename’格式

视频转图片

ffmpeg -i in.flv -r 1 -f image2  image-%3d.jpeg

-r  1:表示转换图片的帧率  1:每秒钟转出一张图片

-f image2表示把输入文件转成image2格式的

image-%3d.jpeg:表示输出的文件名称  %3d:三个数字组成的动态值

图片转视频

ffmpeg -i image-%3d.jpeg out.mp4

直播推流

ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName

-re  减慢帧率速度

-c  音视频编解码

-f  flv  表示推出去的文件格式是flv

直播拉流

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

你可能感兴趣的:(ffmpeg常用命令汇总)