FFMPEG常用命令-格式转换-持续更新中

ffmpeg是一个强大的工具,在工作者各种格式转换,编码,提取视频中的帧需要用到,记录下工作中常用的一些ffmpeg命令,持续更新中...

 

将输入的infile视频文件通过avc编码成h264的视频流

ffmpeg -i infile.mp4 -an -vcodec libx264 -crf 23 outfile.h264

-i  input file     -an   disable audio    -vcodec 指定编码类型  -crf  采用cf的编码方式并设定level为23(CRF和QP的区别详见另一篇博文

 

将输入的handshake视频文件转码成dest1视频文件

ffmpeg -i handshake.avi -c:v libx264 -preset slow -qp 37 -c:a copy dest1.mp4

-i input file    -c:v  和-codec:v以及-vcodec是一个意思,设置video的codec方式    

-preset 设置一些编码参数,有很多level

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium – default preset
  • slow
  • slower
  • veryslow
  • placebo(一般不用)

可以省略,默认是"medium",越慢质量越高

-qp 设置固定的量化参数  -c:a  等同于-acodec和-codec:a 设置audio的codec方式是copy

 

将一个文件夹的所有视频每隔一定帧数提取出图片

for %%i in (*.mov) do (
ffmpeg -i %%i -vf "select=not(mod(n\,50))" -vsync vfr  "%%~ni_%%03d.bmp"
)

for %%i in (*.mov) 遍历文件夹中所有mov为后缀的文件

-i   input video    -vf  等同于-filter:v 具体信息参见ffmpeg官方文档  select选择哪些输入帧会输出,这边选择的是所有整除50的需要输出  第0,50,100...    -vsync    设置视频的同步方式  这里的vfr是指传timestamp,如果两帧相同的timestamp需要丢掉            最后"%%~ni_%%03d.bmp"是指输出的bmp的名字是输入的video的名字后面加上001 002 003等

 

从一个input raw 视频中抽取出每一帧

ffmpeg -f rawvideo -framerate 25 -s 1280x720 -pixel_format yuv420p -i in.yuv -c copy -f segment -segment_time 0.01 frames%d.yuv

-f 指定输入的format为rawvideo  -framerate设置帧率    -s 设置输入视频的分辨率   -pixel_format设置输入视频的格式     -i  输入的raw视频   -c 设置输入到输出的codec方式,这里为copy,不需要编解码     -f   指定输出格式,把输入的video分成好多个小段,只要后面设置的segment_time(0.01)比一帧的时间短(这里是1/25=0.04),就会把一帧分成一段,然后存入到yuv中

 

转载于:https://www.cnblogs.com/sunny-li/p/9991816.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值