FFmpeg使用 ffmpeg -i input.avi output.mp4

基本使用 https://ffmpeg.org/

ffmpeg -i input.avi output.mp4
  • 输入 input.avi 输出 output.mp4

指定编码器 - 可以通过-c:v(video encoder) 去手动指定一个视频编码器,默认使用 H264

ffmpeg -i input.avi -c:v libx264 output.mp4  
ffmpeg -i input.avi -c:v h264_nvenc output.mp4
  • 这里的libx264就是FFmpeg默认提供的一个用纯软件实现的H264编码器
  • 如果你使用的是Nvidia显卡的话还可以用h264_nvenc进行硬件加速(显卡支持建议使用)  
  • 更多编码:H265(HEVC),VP9...。H264(最广泛)

转码速率

ffmpeg -i input.avi -preset ultrafast output.mp4
  • 速率升序 ultrfast > superfast > veryfast > faster > fast > medium(默认) > slow > slower > veryslow
  • 大小(质量)降序 ultrfast > superfast > veryfast > faster > fast > medium(默认) > slow > slower > veryslow

视频过滤器 - 对视频图像进行变换(改变尺寸,裁剪,旋转,添加滤镜...)

ffmpeg -i input.avi -c:v libx264 -vf "scale=256:-1,transpose=1" output.mp4

         - scale:缩放, -1表示自适应;transpose:旋转

ffmpeg -i input.avi -c:v libx264 -vf "crop=400:400:100:100" output.mp4
  • crop=w:h:x:y;w: 宽;h:高;x,y:左上角坐标
  • crop=iw/3:ih/3;将宽高设为原来的3/1。iw表示输入视频的宽度,ih表示输入视频的高度
  • 更多可以到官网查询...https://ffmpeg.org/ffmpeg-filters.html

剪切视频

ffmpeg -i input.avi -ss 00:00:03 -t 00:00:05 output.mp4
  • ss:视频起始位置,-t 剪切时长;这里时间也可以使用毫秒数
ffmpeg -i input.avi -ss 00:00:03 -to 00:01:05 output.mp4
  • to:结束位置

合并视频

file 'video1.mp4'
file 'video2.mp4'
file 'video3.mp4'
  • 将文件列表列举到一个文件(fileList.txt)里
ffmpeg -f concat -i fileList.txt -c copy output.mp4
  • -f concat 指定输入的文件是一个视频列表
  • -i 传入列表文件
  • -c copy 表示不希望重新编码而是直接拷贝原始文件

音频过滤器

ffmpeg -i input.mp4 -af "volume=1.5" output.mp4
  •  volume 调节音量大小
ffmpeg -i input.mp4 -af "loudnorm=1.5" output.mp4
  • loudnorm 统一视频音量
ffmpeg -i input.mp4 -af "equalizer=f=1000:width_type=h:width=200:g=-10" output.mp4
  • 添加高通、低通滤波器、甚至均衡器等等... 

ffmpeg -i input.mp4 -an output.mp4
ffmpeg -i input.mp4 -vn output.mp4
ffmpeg -i input.mp4 -sn output.mp4
ffmpeg -i input.mp4 -dn output.mp4
  • -an 删除音频轨
  • -vn 删除视频轨
  • -sn 删除字幕
  • -dn 删除数据流

其他功能

 ffmpeg -i input.mp4 -vf "fps=1/10,scale=-2:720" output-%03d.jpg
  • 视频缩略图 两个过滤器 fps指定输出文件的帧率,1/10表示十秒输出一帧画面,scale指定了输出画像的大小,%03d 编号,这个命令会在当前的目录下输出若干张视频的缩略图
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=0:0" output.mp4
  • 视频水印功能 准备一张水印图片 将原视频和图片输入到FFmpeg 加上过滤器 overlay 用于将水印叠加在原始视频上
ffmpeg -i input.avi -ss 0 -t 3 -filter_complex [0:v]fps=15,scale=-1:256,split[a][b];[a]palettegen[p];[b][p]paletteuse output.gif
  • GIF动图 由于gif编码格式的限制,不适合较大较长的视频,所以先进行剪切,然后通过过滤器缩放并且降低帧率,最后由于gif自身256色的限制,需要单独创建一个调色板
ffmpeg -hide_banner -loglevel error -stats -f gdigrab -framerate 60 -offset_x 0 -offset_y 0 -video_size 1920x1080 -draw_mouse 1 -i desktop -c:v libx264 -r 60 -preset ultrafast -pix_fmt yuv420p -y output.mp4
  • 屏幕录制 使用Windows上的gdigrab设备来进行屏幕录制 

转换音频

ffmpeg -i input.wav output.mp3

转换图片

ffmpeg -i input.mp4 -vf "fps=1/10, scale=2:720" output.jpg

附加内容

        视频格式: 可以理解为是视频文件的一种封装格式或者容器格式。它里面包含了视频流、音频流甚至包括字幕、章节和一些其他的元数据,而其中的音频、视频流又可以采用不同的编码格式。

        编码格式:编码是用来解决如何将没一帧的画面存储成二进制数据,然后保存在硬盘或者通过网络传输到服务器。不同的编码对于视频的质量和压缩率有很大的影响。对于mp4文件,目前最广泛的视频编码是H264。

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值