指令用到的windows ffmpeg工具下载地址如下:
链接:https://pan.baidu.com/s/1OE2o9WOZJmT0x1r8G2laBA?pwd=jv4l
提取码:jv4l
//MAC/Linux/Windows都可以用-version 显示版本‐demuxers 显示可用的demuxers-muxers 显示可用的muxers-devices 显示可用的设备-codecs 显示所有编解码器-decoders 显示可用的解码器‐encoders 显示所有的编码器-formats 显示可用的格式‐protocols 显示可用的协议-filters 显示可用的过滤器-pix_fmts 显示可用的像素格式-sample_fmts 显示可用的采样格式-layouts 显示channel名称-colors 显示识别的颜色名称-bsfs 显示比特流filter
//Windos平台下的使用方法//windows下不能使用avfoundation来执行操作//需要使用dshow来操作 dshow需要提前安装,下载地址如下://链接:https://pan.baidu.com/s/1vwtHNjYS23jrLOUC4zGh-Q//提取码:2y9m//查看支持的设备列表信息ffmpeg -list_devices true -f dshow -i dummy//录制桌面视频ffmpeg -f dshow -i video="screen-capture-recorder" screen_capture.mp4ffplay screen_capture.mp4//这里发现一个问题,直接用windows自带播放器播放会出现播放失败问题//用ffplay播放正常,可能是编码格式的问题//录制音频(设备列表可以通过指令查询)ffmpeg -f dshow -i audio="麦克风 (Realtek(R) Audio)" audio-out.aacffplay audio-out.aac//同时录制音视频ffmpeg -f dshow -i video="screen-capture-recorder":audio="麦克风 (Realtek(R) Audio)" full-out.mp4ffplay full-out.mp4//这里采用windows自带的播放器也会播放失败//查看视频/音频录制支持的参数列表ffmpeg -f dshow -list_options true -i video="screen-capture-recorder"ffmpeg -f dshow -list_options true -i audio="麦克风 (Realtek(R) Audio)"//指定具体的视频录制参数ffmpeg -f dshow -video_size 1920x1080 -framerate 30 -pixel_format yuv420p -ivideo="screen-capture-recorder" output.mp4-f dshow 使用dshow录制-video_size 采用的分辨率是1920x1080-framerate 30 采用的帧率是30-pixel_format yuv420p 像素格式为yuv420p-i video="screen-capture-recorder"指定录制设备
//首先安装x11grab,安装方法自行检索//录制视频ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0,0.0 output.mp4-video_size 1920x1080 分辨率是1920*1080-framerate 25 帧率是25-i 0.0,0.0从屏幕左上角开始录制ffplay output.mp4//同时录制音频和视频ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0,0.0 -f pulse -ac 2 -i default output.mkv-f pulse 使用pulse录制音频//还可以指定alsa 录制音频ffplay output.mkv
//MAC平台下的使用方法//avfoundation是MAC下的采集源,windows下不可以使用//录制屏幕ffmpeg -f avfoundation -i 1 -r 30 raw_output.yuv -f avfoundation:指定使用avfoundation采集数据源-i:指定从哪儿采集数据 索引1代表着屏幕-r:指定录制的帧率raw_output.yuv 指定原始数据输出的文件名称//原始数据必须指定数据格式才能播放ffplay -s 1920*1080 -pix_fmt uyvy422 raw_output.yuv-s:指定分辨率是1920*1080-pix_fmt:指定数据格式为uyvy422raw_output.yuv:输入数据的文件名称//查询支持的设置列表ffmpeg -f avfoundtaion -list_devices true -i ""//录制音频ffmpeg -f avfoundation -i :0 out_audio.wav-i :0 指定录制的音频输入设备out_audio.wav :指定输出的音频文件名称//播放音频ffplay out_audio.wav提取音视频命令//多媒体格式转换ffmpeg -i input.mp4 -vcodec copy -acodec copy output.flv-i:输入文件-vcodec copy:视频编码处理方式-acodec copy:音频编码处理方式//抽取视频信息ffmpeg -i input.mp4 -an -vcodec copy output.h264ffplay out.h264//抽取音频信息ffmpeg -i input.mp4 -acodec copy -vn output.aacffplay out.aac提取音视频原始数据命令123456789101112131415161718192021222324252627282930313233343536//提取YUV数据ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p output.yuv-i 指定文件-an 不处理音频-c:v 指定编码方式 rawvideo-pix_fmt 指定像素格式 yuv420p//指定分辨率播放原始数据ffplay -s 638x358 out.yuv//提取PCM音频数据ffmpeg -i input.mp4 -vn -ar 44100 -ac2 -f s16le output.pcm-i 指定文件-vn 不要视频-ar 44100 指定音频采样率-ac2 双声道-f 指定音频数据的存储格式为s16le signed 16bit littleendile//播放音频ffplay -ar 44100 -ac 2 -f s16le out.pcm视频裁剪/合并命令//裁剪视频ffmpeg -i input.mp4 -ss 00:00:00 -t 10 output.ts-i 输入文件-ss 开始时间-t 裁剪时长//拼接视频ffmpeg -f concat -i inputs.txt out.flv-f concat 指定拼接模式-i 指定拼接文件 inputs.txt存储文件列表out.flv 指定输出结果inputs.txt 内容为 'file filename' 格式//file '1.ts'//file '2.ts'
//视频转图片ffmpeg -i input.flv -r 1 -f image2 image-%4d.jpeg-i 指定文件-r 指定转出图片的帧率-f 将输入文件转成什么格式的image-%4d.jepg(%4d四个数字)//图片转视频ffmpeg -i image-%4d.jpeg output.mp4
//直播推流ffmpeg -re -i output.mp4 -c copy -f flv rtmp://server/live/streamName-re 保持帧率-i out.mp4 指定文件-a 音频 -v 视频 -c 音视频-f 推出的格式为 flv//直播拉流ffmpeg -i rtmp://server/live/streamName -c copy dump.flv-i 指定流地址-c copy 音视频流直接拷贝不编码dump.flv 指定本地文件//拉取的什么格式存储成什么格式
//视频裁剪fmpeg -i input.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy output.mp4crop格式:crop=out_w:out_h:x:y-i 指定文件-vf crop 指定视频滤镜,crop 裁剪滤镜in_w-200宽度减少200in_h-200高度减少200-c:v libx264视频编码器为libx264-c:a copy 不对音频进行处理//播放视频ffplay output.mp4