FFmpeg(1)_常用命令分类

基本查询命令

命令参数 说明
-version 显示版本
-demuxers 显示可用的demuxers
-devices 显示可用设备
-codecs 显示所有编解码器
-decoders 显示可用的解码器
-encoders 显示可用的编码器
-bsfs 显示可用的比特流filter
-formats 显示支持的格式
-protocols 显示可用的协议
-filters 显示可用的libavfilter过滤器
-pix_fmts 显示可用的像素格式
-sample_fmts 显示可用的采样格式
-layouts 显示channel名称和标准channel布局
-colors 显示识别的颜色名称
  • 分页查看所有的编解码器
    ffmpeg -codecs | more
  • 查看h264相关的编解码器
    ffmpeg -codecs | grep h264
  • 查看支持的音频格式
    ffmpeg -formats | grep mp3

录制命令

  • 录制视频
    ffmpeg -f avfoundation -i 1 -r 30 out.yuv
    -f:指定使用avfoundation采集数据
    -i:指定从哪采集数据,它是一个文件索引号,Mac上1指桌面录制
    -r:指定帧率,电影一般是60帧以上
    out.yuv:指定输出路径和文件格式

  • 播放录制的视频
    ffplay -s 3360x2100 -pix_fmt uyvy422 out.yuv
    -s:指视频分辨率大小
    -pix_fmt:视频格式

  • 配置和使用ffplay
    使用brew install ffmpeg安装ffmpeg并没有安装ffplay,所以需要单独下载ffplay,下载地址为 http://evermeet.cx/ffmpeg/ ,下载ffplay压缩包,我这下载的是ffplay-4.1.3.7z,解压后是一个ffplay文件,将此文件在.base_profile中配置环境变量,路径配置到此文件的父目录,
    如:export PATH=$PATH:/Users/renzhongrui/ffmpeg,我的是放在ffmpeg目录下,
    然后执行source .bash_profile即可。

  • 录制音频
    ffmpeg -f avfoundation -i :0 out.wav
    :0代表音频设备

  • 播放视频
    ffplay out.wav

分解/复用命令

  • 格式转换
    ffmpeg -i test.mp4 -vcodec copy -acodec copy out.flv
    -i:输入文件
    -vcodec:视频编解码
    copy:不作处理
    -acodec:音频编解码
  • 只抽取视频
    ffmpeg -i test.mp4 -vcodec copy -an out.h264
    播放视频:ffplay out.h264
  • 只抽取音频
    ffmpeg -i test.mp4 -vn -acodec copy out.aac
    播放音频:ffplay out.aac

处理原始数据命令

  • 提取视频原始数据
    命令:ffmpeg -i test.mp4 -an -c:v rawvideo -pix_fmt yuv420p yuv.yuv
    -i:指定输入文件
    -an:不处理音频
    -c:v:对视频进行编码
    rawvideo:原始视频
    -pix_fmt:像素格式,yuv420p yuv444p yuv422
    播放:ffplay -s 1920x1080 yuv.yuv
  • 提取音频原始数据
    命令:ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le pcm.pcm
    -i:指定输入文件
    -vn:不处理视频
    -ar:音频采样率,44100b
    -ac:声道,1:单声道;2:双声道;3:立体声道
    -f:格式,s16le:有符号的16字节表示一位的小头结束格式
    播放:ffplay -ar 44100 -ac 2 -f s16le yuv.yuv

滤镜命令

  • 滤镜处理流程:
    Decoded Frames -----filter------> Filtered Frames -----encoder----->Encoded Data
  • 滤镜裁剪视频大小
    ffmpeg -i test.mp4 -vf crop=in_w-1000:in_h-900 -c:v h264 -c:a copy crop.mp4
    -i:指定输入文件
    -vf:表示使用滤镜命令,参数是crop=in_w-1000:in_h-900,裁剪输入文件宽减去1000,高减去900
    -c:v:使用视频编码器是h264
    -c:a:音频解码器,copy表示直接复制

裁剪与合并命令

一.音视频裁剪
ffmpeg -i test.mp4 -ss 00:00:00 -t 10 crops.mp4
-i:指定输入文件
-ss:指定开始时间
-t:指定要裁剪多长时间
播放:ffplay crops.mp4

二.音视频合并
1.先裁剪两段短视频
ffmpeg -i test.mp4 -ss 00:00:00 -t 10 1.ts
ffmpeg -i test.mp4 -ss 00:00:10 -t 10 2.ts
2.创建input.txt文件,并输入内容

file '1.ts'
file '2.ts'

3.执行合并命令
ffmpeg -f concat -i input.txt concat.mp4
4.播放视频
ffplay concat.mp4

图片/视频互转命令

  • 视频转图片
    ffmpeg -i concat.mp4 -r 1 -f image2 image-%3d.jpg
    -i:指定输入文件
    -r:视频转图片帧率,1指1秒转1张图片
    -f:使用格式,image2格式
    打开图片:open image-001.jpg
  • 图片转视频
    ffmpeg -i image-%3d.jpg cover.mp4

直播相关命令

  • 拉流
    ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy pull.m3u8

  • 推流
    ffmpeg -re -i test.mp4 -c copy -f flv rtmp://server/live/streamName
    -re:减慢帧率速度
    -i:指定输入文件
    -c:指定编解码
    -f:指定格式

你可能感兴趣的:(音视频)