ffmpeg常用命令总结

FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可轻易实现多种视频格式之间的相互转换。
ffmpeg支持的选项:
可用的bit流 :ffmpeg –bsfs
可用的编解码器:ffmpeg –codecs
可用的解码器:ffmpeg –decoders
可用的编码器:ffmpeg –encoders
可用的过滤器:ffmpeg –filters
可用的视频格式:ffmpeg –formats
可用的声道布局:ffmpeg –layouts
可用的license:ffmpeg –L
可用的像素格式:ffmpeg –pix_fmts
可用的协议:ffmpeg -protocals

将输入的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,是指编码后图像的质量。
利用ffmpeg计算ssim/psnr
ffmpeg -s 1920x1080 -i F1.yuv -s 1920x1080 -i F2.yuv -lavfi"ssim=“stats_file=stats_ssim.log”;[0:v][1:v]"psnr=“stats_psnr.log”-f null -

F1.yuv为需要计算ssim的视频 F2.yuv为参考视频 -s设置分辨率 -i设置input视频ffmpeg-filters.html -lavfi是跟-filter_complex一个意思,设置滤波器,ffmpeg支持的filter有很多种类型,在下载的ffmpeg的包里面有一个叫做ffmpeg-filters.htm的网页就是讲的支持的各种filter, 详见 https://ffmpeg.org/ffmpeg-filters.html 。ssim是其中支持的一个filter,在使用ssim的时候,要求输入的两个video要有相同的format resolution,而且帧数要一样,每一帧都会算一个ssim的值 。stats_file是将结果存在指定的文件stats_ssim.log中[0:v][1:v]指的是第一个视频的video和第二个视频的video。
ffmpeg码率控制
ffmpeg -i input.mp4 -b:v 2000k output.mp4
-b:v主要是控制平均码率上面把码率从原码率转成2Mbps码率,这样其实也间接让文件变小了。目测接近一半。不过,ffmpeg官方wiki比较建议,设置b:v时,同时加上 -bufsize ,-bufsize 用于设置码率控制缓冲器的大小,设置的好处是,让整体的码率更趋近于希望的值,减少波动。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate -maxrate就简单了,在线视频有时候,希望码率波动,不要超过一个阈值,可以设置maxrate
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
ffmpeg截取视频保存图像
ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-r 表示每一秒几帧 -q:v表示存储jpeg的图像质量,一般2是高质量。 如此,ffmpeg会把input.mp4,每隔一秒,存一张图片下来。假设有60s,那会有60张。
设置开始的时间,和想要截取的时间:
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-ss 表示开始时间 -t 表示共要多少时间,上述命令就是ffmpeg会从input.mp4的第20s时间开始,往下10s,即20~30s这10秒钟之间,每隔1s就抓一帧,总共会抓10帧
ffmpeg编码
h264编码
E:\ffmpeg.exe -s 1920x1080 -pix_fmt yuv420p -i E:\Demo_1920_1080_HD.yuv -vcodec libx264 -x264-paramsfps=25:bframes=7:keyint=24:bitrate=2000:preset=fast Demo_1920_1080_2M.h264
h265编码
E:\ffmpeg1.exe -s 720x576 -pix_fmt yuv420p -i
E:\demo_720_576.yuv -vcodec libx265 -x265-params
fps=25:bframes=7:keyint=24:bitrate=2000:preset=fast demo_720_576_2M.h265
调整视频分辨率:
ffmpeg -i input.mp4 -s 1920x1080 output.mp4
视f频缩小一倍
fmpeg -i out.mp4 -vf scale=iw/2:-1 scale.mp4
-vf scale 指定使用简单过滤器 scale,iw/2:-1 中的iw指定按整型取视频的宽度。 -1 表示高度随宽度一起变化。
图像合成视频
ffmpeg -loop 1 -start_number 000001 -f image2 -i D:\Tools\YUV\cif\image\pic-%06d.jpeg -vcodec libx264 -r 25 -t 3 video.mp4
ffmpeg -loop 1 -start_number 000001 -f image2 -i D:\Tools\YUV\cif\image\pic-%06d.jpeg -r 25 -t 3 video1.yuv
-loop 表示是否循环读入1表示循环,0表示读完结束,-start_number 从第几帧开始,-r 是输出的帧率,-t 合适视频的长度,单位是秒
mp4转换为YUV
ffmpeg -i .\video.mp4 -s 352x288 -pix_fmt yuv420p video_352x288.yuv
ffmpeglinux录制视频
ffmpeg -framerate 25 -f x11grab -s 1920x1080 -i :0.0 v-out.mp4
-f 指定使用 x11grab 采集数据
ffmpeg -f avfoundation -i 1 -r 30 out.yuv
-i 指定从哪儿采集数据,它是一个文件索引号。在我的MAC上,1和2(外界显示器)都代表桌面
先写到这吧,后续在更新

FFmpeg 4.2.8是一个开源的多媒体处理工具库,可以用于处理音频和视频文件。它提供了丰富的功能和命令行选项,可以对音频和视频进行各种操作。 引用提供了在FFmpeg中将视频加速到2倍速的命令行示例。使用此命令,您可以将一个视频文件的播放速度加快到原来的两倍。 引用提供了将视频减速到一半速度的命令行示例。使用此命令,您可以将一个视频文件的播放速度减慢到原来的一半。 引用提供了一个示例,展示了如何将音频和视频文件合并为一个输出文件。使用此命令,您可以将一个视频文件和一个音频文件合并为一个包含视频和音频的文件。 总结而言,FFmpeg 4.2.8是一个功能强大的多媒体处理工具库,可以用于处理音频和视频文件。您可以使用不同的命令行选项来实现各种操作,例如加速、减速和合并音视频文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ffmpeg常用指令及介绍(转码 水印 字幕 截图等)](https://blog.csdn.net/megary/article/details/90667975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值