ffmpeg常用命令

命令格式:
全局选项 + 输入文件选项 + 输出文件选项

usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

1 常用参数

主要参数:

-i 设定输入流 
-ss 开始时间 
-t 截取周期
-c copy 不转码
-preset ultrafast 最快速  , 放在-i输入文件后
-y 覆盖已存在同名文件

视频参数:

-b 设定视频流量(码率),默认为200Kbit/s   -b:a 128k 设定音频码率  -b:v 2048k 设定视频码率
-r 设定帧速率,默认为25 
-s 设定画面的宽与高 
-aspect 设定画面的比例 
-vn 不处理视频 
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 

音频参数:

-ar 设定采样率 
-ac 设定声音的Channel数 
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器 
-an 不处理音频

2 常用命令示例

视频格式转换
#avi转mp4
ffmpeg -i input.avi output.mp4   
#mp4转ts
ffmpeg -i input.mp4 output.ts    
提取视频中的音频
#(-vn 不处理视频 ),-acodec copy , 表示音频不转码,直接copy
ffmpeg -i input.mp4 -acodec copy -vn output.aac
去除视频中音频
#-an 不处理音频,-vcodec copy表示视频不转码,直接copy,速度快
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
合并音视频(给视频添加背景音乐)
# -c copy 表示不转码 直接copy
ffmpeg -i input.mp4 -i input.aac  -c copy output.mp4
视频剪切截取
#-ss表示开始切割的时间,-t表示要切多少。上面就是从开始,切5秒钟出来
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
#时间参数也可如下:
ffmpeg -ss 15 -t 5 -i input.mp4 -vcodec copy -acodec copy output.mp4
切换分辨率及视频裁剪
ffmpeg -i input.mp4 -s 640x360 output.mp4  #切换分辨率
ffmpeg -i input.avi -vf scale=320:240 output.avi #-vf滤镜方式,指定分辨率宽高
ffmpeg -i input.avi -vf scale=320:-1 output.avi #只指定宽,高等比缩放
ffmpeg -i input.mp4 -vf crop=1920:1080:0:0 out.mp4  #裁剪宽高1920x1080,起始坐标x y(0,0)
增加上下黑边
ffmpeg -i input.mp4 -vf pad=720:1280:0:100:black output.mp4 #720:1280是输出视频的宽高,0:100是输入视频的起始位置,black是默认的
旋转
ffmpeg -i input.mp4 -metadata:s:v rotate="90" -codec copy output.mp4
修改码率
#指定输出视频码率4096
ffmpeg -i input.mp4 -b 4096k output.mp4
字幕
ffmpeg -y -i input.mp4 -vf subtitles=input.srt -c:v libx264 -c:a libvo_aacenc -preset slow -crf 10 output.mp4 #支持srt lrc字幕
ffmpeg -i input.mp4 -vf “ass=subtitle.ass” output.mp4 #ass字幕
ffmpeg -i subtitle.srt subtitle.ass #字幕转换
ffmpeg -i input.mp4 -i test.png -filter_complex “overlay=x=main_w-273:y=main_h-113,subtitles=test.srt:force_style=‘Shadow=1,Fontsize=12,MarginV=50’” output.mp4 #同时叠加水印图片及字幕 
ffmpeg -i input.mp4 -filter_complex "subtitles=1.srt:force_style='Shadow=1,Fontsize=12,MarginV=50'" output.mp4  #字幕大小 阴影 下边距
文字水印
#添加文字水印
ffmpeg -i input.mp4 -vf "drawtext=fontfile=msyh.ttc: text='科学技术是第一生产力':x=100:y=100:fontsize=48:fontcolor=red:shadowy=3" output.mp4
去除水印
#去水印,delogo滤镜,模糊指定区域
ffmpeg -i 1.mp4 -preset ultrafast -filter_complex "delogo=x=1000:y=1:w=279:h=200" out.mp4
ffmpeg -i 1.mp4 -preset ultrafast -vf "delogo=x=1000:y=1:w=279:h=200" out.mp4
叠加图片
ffmpeg -i 1.mp4 -i 1.png -preset ultrafast -filter_complex "overlay=x=main_w-w:y=main_h-h" out.mp4
#overlay参数说明:main_w,main_h表视频的宽高; w,h表图片的宽高,可以省略x=还有y=, 写成如overlay=100:200, 相当于x=100:y=200, 再如overlay=100,相当于x=100:y=0
分屏
ffmpeg -i input.mp4 -i input1.mp4 -filter_complex vstack=inputs=2 output.mp4 #上下分屏
ffmpeg -i input.mp4 -i input1.mp4 -filter_complex hstack=inputs=2 output.mp4 #左右分屏
图片与视频互转
ffmpeg -i input.mp4 -q:v 1 -vframes 5 frame%03d.jpg #取5张图片 -q:v 1 图片质量 数字越小 质量越高
ffmpeg -i input.mp4 -vf fps=1/3 frmae%03d.jpg #每隔3称取一张

#图片转视频
ffmpeg -i frame%03d.jpg out.mp4 
快速视频拼接

H264视频首尾拼接
如果确定输入文件都是H264编码,且尺寸、帧率等都相同,先把源视频转换成用于直播的ts格式。 然后直接对多个ts文件进行文件级的拼接,然后在转换回到目标格式。这个过程中,不会发生格式转换,所以非常迅速。

ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts
ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts
ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4
屏幕录像
#录制桌面,无声音
ffmpeg -thread_queue_size 32 -f gdigrab -video_size 720*480 -offset_x 200 -offset_y 200 -i desktop -pix_fmt yuv420p record.mp4  # 录制桌面 (指定位置及大小,默认整个桌面,thread_queue_size指定处理线程数,不指定即默认) 

#录制声音
ffmpeg -f dshow -list_devices true -i dummy  # 查看当前的声音设备
ffmpeg -f dshow -rtbufsize 32M -i audio="Stereo Mix (Realtek High Defini" typing.wav  #录制声音,audio设备是通过查看命令获得,有丢帧可以设置下更大缓冲区rtbufsize

 # 同时录制桌面及声音
ffmpeg -f gdigrab -i desktop -f dshow -i audio="Stereo Mix (Realtek High Defini" -pix_fmt yuv420p record.mp4 

注:在windows下可保存为.bat文件, 最后一行加上pause,出错不会立即退出,可以查看出错信息
ffplay播放
#窗口宽640,指定窗口标题“1”,1.5倍速播放
ffplay -x 640 -window_title 1  -vf setpts=PTS/1.5 -af atempo=1.5 test.mp4

#在播放中的几个实用的控制参数
'空格'            暂停
'w'                 切换显示模式(视频/音频波形/音频频带)
's'                 步进到下一帧
'left/right'        快退/快进 15 秒
'down/up'        快退/快进 60秒
'鼠标右击'       跳转到鼠标点击的位置(根据鼠标在显示窗口点击的位置计算百分比)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值